Bagaimana cara mewakili tren dari waktu ke waktu?

34

Saya memiliki serangkaian waktu raster di mana sel-sel dari setiap raster mewakili beberapa nilai pada waktu tertentu.

Saya ingin membuat peta yang menyoroti besarnya tren positif atau negatif dalam nilai ini dari waktu ke waktu untuk setiap sel.

Pendekatan saya yang agak naif adalah menyesuaikan regresi linier sederhana (X = waktu dan Y = nilai) untuk setiap sel dan output array lereng ke raster (seperti contoh gambar di bawah). Ini dapat disaring dengan hanya mengekspor hasil yang signifikan.

seri waktu dari empat sel individu

Lereng dari regresi linier

Bagaimana lagi saya bisa mewakili tren dari waktu ke waktu dalam waktu raster?

Saya tertarik pada teknik umum, bukan instruksi spesifik peranti lunak.

pengguna2856
sumber

Jawaban:

15

Merencanakan lereng yang diperkirakan, seperti dalam pertanyaan, adalah hal yang hebat untuk dilakukan. Namun, alih-alih memfilter berdasarkan signifikansi - atau dalam hubungannya dengan itu - mengapa tidak memetakan seberapa baik setiap regresi cocok dengan data? Untuk ini, kesalahan kuadrat rata-rata dari regresi mudah ditafsirkan dan bermakna.

Sebagai contoh, Rkode di bawah ini menghasilkan serangkaian waktu dari 11 raster, melakukan regresi, dan menampilkan hasilnya dalam tiga cara: di baris bawah, sebagai grid terpisah dari perkiraan kemiringan dan rata-rata kuadrat kesalahan; di baris atas, sebagai hamparan kisi-kisi tersebut bersama dengan kemiringan yang mendasarinya (yang dalam praktiknya tidak akan pernah Anda miliki, tetapi diberikan oleh simulasi komputer untuk perbandingan). Hamparan, karena menggunakan warna untuk satu variabel (perkiraan kemiringan) dan kecerahan untuk yang lain (MSE), tidak mudah untuk ditafsirkan dalam contoh khusus ini, tetapi bersama dengan peta yang terpisah di baris bawah mungkin berguna dan menarik.

Peta

(Harap abaikan legenda tumpang tindih pada hamparan. Perhatikan juga, bahwa skema warna untuk peta "Lereng benar" tidak persis sama dengan yang digunakan untuk peta perkiraan lereng: kesalahan acak menyebabkan beberapa perkiraan lereng menjangkau span). kisaran yang lebih ekstrem daripada lereng sejati. Ini adalah fenomena umum yang terkait dengan regresi menuju rata-rata .)

BTW, ini bukan cara paling efisien untuk melakukan sejumlah besar regresi untuk rangkaian waktu yang sama: sebagai gantinya, matriks proyeksi dapat dihitung dan diterapkan ke setiap "tumpukan" piksel lebih cepat daripada mengkomputasi ulang untuk setiap regresi. Tapi itu tidak masalah untuk ilustrasi kecil ini.


# Specify the extent in space and time.
#
n.row <- 60; n.col <- 100; n.time <- 11
#
# Generate data.
#
set.seed(17)
sd.err <- outer(1:n.row, 1:n.col, function(x,y) 5 * ((1/2 - y/n.col)^2 + (1/2 - x/n.row)^2))
e <- array(rnorm(n.row * n.col * n.time, sd=sd.err), dim=c(n.row, n.col, n.time))
beta.1 <- outer(1:n.row, 1:n.col, function(x,y) sin((x/n.row)^2 - (y/n.col)^3)*5) / n.time
beta.0 <- outer(1:n.row, 1:n.col, function(x,y) atan2(y, n.col-x))
times <- 1:n.time
y <- array(outer(as.vector(beta.1), times) + as.vector(beta.0), 
       dim=c(n.row, n.col, n.time)) + e
#
# Perform the regressions.
#
regress <- function(y) {
  fit <- lm(y ~ times)
  return(c(fit$coeff[2], summary(fit)$sigma))
}
system.time(b <- apply(y, c(1,2), regress))
#
# Plot the results.
#
library(raster)
plot.raster <- function(x, ...) plot(raster(x, xmx=n.col, ymx=n.row), ...)
par(mfrow=c(2,2))
plot.raster(b[1,,], main="Slopes with errors")
plot.raster(b[2,,], add=TRUE, alpha=.5, col=gray(255:0/256))
plot.raster(beta.1, main="True slopes")
plot.raster(b[1,,], main="Estimated slopes")
plot.raster(b[2,,], main="Mean squared errors", col=gray(255:0/256))
whuber
sumber
4

Apa yang Anda gambarkan adalah "Ubah Deteksi". Ada banyak teknik untuk mendeteksi perubahan menggunakan raster. Mungkin yang paling umum adalah perbedaan gambar di mana Anda mengurangi satu gambar dari yang lain untuk menghasilkan yang ketiga. Padahal, itu tergantung pada jenis data yang Anda coba bandingkan. Dari gambar Anda, sepertinya Anda membandingkan perubahan kemiringan dari waktu ke waktu (kecuali jika area ini menjadi lokasi pekerjaan lahan utama, ini tidak akan banyak berubah). Namun, jika Anda membandingkan perubahan kelas tanah dari waktu ke waktu, Anda mungkin menggunakan pendekatan yang berbeda.

Saya menemukan artikel ini oleh D. Lu et al. di mana mereka membandingkan berbagai metode deteksi perubahan. Berikut abstraknya:

Deteksi perubahan fitur permukaan bumi yang tepat waktu dan akurat sangat penting untuk memahami hubungan dan interaksi antara fenomena manusia dan alam untuk mendorong pengambilan keputusan yang lebih baik. Data penginderaan jauh adalah sumber utama yang banyak digunakan untuk deteksi perubahan dalam beberapa dekade terakhir. Banyak teknik deteksi perubahan telah dikembangkan. Makalah ini merangkum dan mengulas teknik ini. Literatur sebelumnya telah menunjukkan bahwa perbedaan gambar, analisis komponen utama dan perbandingan pasca-klasifikasi adalah metode yang paling umum digunakan untuk deteksi perubahan. Dalam beberapa tahun terakhir, analisis campuran spektral, jaringan saraf tiruan dan integrasi sistem informasi geografis dan data penginderaan jauh telah menjadi teknik penting untuk aplikasi deteksi perubahan. Algoritme pendeteksi perubahan yang berbeda memiliki kelebihan masing-masing dan tidak ada pendekatan tunggal yang optimal dan berlaku untuk semua kasus. Dalam praktiknya, algoritma yang berbeda sering dibandingkan untuk menemukan hasil deteksi perubahan terbaik untuk aplikasi tertentu. Penelitian tentang teknik deteksi perubahan masih merupakan topik aktif dan teknik baru diperlukan untuk secara efektif menggunakan data penginderaan jauh yang semakin beragam dan kompleks yang tersedia atau diproyeksikan akan segera tersedia dari sensor satelit dan udara. Makalah ini adalah eksplorasi komprehensif dari semua pendekatan deteksi perubahan utama diimplementasikan seperti yang ditemukan dalam literatur. algoritma yang berbeda sering dibandingkan untuk menemukan hasil deteksi perubahan terbaik untuk aplikasi tertentu. Penelitian tentang teknik deteksi perubahan masih merupakan topik aktif dan teknik baru diperlukan untuk secara efektif menggunakan data penginderaan jauh yang semakin beragam dan kompleks yang tersedia atau diproyeksikan akan segera tersedia dari sensor satelit dan udara. Makalah ini adalah eksplorasi komprehensif dari semua pendekatan deteksi perubahan utama diimplementasikan seperti yang ditemukan dalam literatur. algoritma yang berbeda sering dibandingkan untuk menemukan hasil deteksi perubahan terbaik untuk aplikasi tertentu. Penelitian tentang teknik deteksi perubahan masih merupakan topik aktif dan teknik baru diperlukan untuk secara efektif menggunakan data penginderaan jauh yang semakin beragam dan kompleks yang tersedia atau diproyeksikan akan segera tersedia dari sensor satelit dan udara. Makalah ini adalah eksplorasi komprehensif dari semua pendekatan deteksi perubahan utama diimplementasikan seperti yang ditemukan dalam literatur.

Fezter
sumber
4

Ada add-on ArcGIS yang dikembangkan oleh Pusat Ilmu Lingkungan Upper USwest Midwest yang disebut Curve Fit: Alat Regresi Raster Tingkat Pixel yang mungkin sesuai keinginan Anda. Dari dokumentasi:

Curve Fit adalah ekstensi untuk aplikasi GIS ArcMap yang memungkinkan pengguna untuk menjalankan analisis regresi pada serangkaian dataset raster (geo-referenced images). Pengguna memasukkan array nilai untuk variabel penjelas (X). Dataset raster yang mewakili variabel respons terkait (Y) dipasangkan dengan setiap nilai X yang dimasukkan oleh pengguna. Curve Fit kemudian menggunakan teknik regresi linier atau nonlinear (tergantung pada pilihan pengguna) untuk menghitung model matematika yang unik pada setiap piksel dari dataset raster input. Kurva Fit menghasilkan permukaan raster estimasi parameter, kesalahan, dan inferensi multi-model. Curve Fit adalah alat penjelasan dan prediktif yang menyediakan pemodel spasial dengan kemampuan untuk melakukan fungsi statistik utama pada skala terbaik.

Harun
sumber