Mengapa ada perbedaan antara NDVI menggunakan Sentinel 2, di ArcMap & QGIS?

8

Saya telah mencoba menghitung NDVI untuk sebuah adegan menggunakan Sentinel 2 band 4 (merah) & 8 (NIR). Saya pertama kali melakukannya di ArcMap dan kemudian QGIS. Di kedua perangkat lunak, saya menggunakan kalkulator raster dan termasuk rumus NDVI dasar = (NIR-Red) / (NIR + Red).

ArcMap memberi saya kisaran 0-9221 (ini bervariasi dengan rentang yang diterapkan) sementara QGIS memberi saya nilai yang lebih masuk akal dari 0,0258-0,5255.

Saya telah membaca secara singkat bahwa Sentinel 2 adalah reflektansi TOA dan memiliki faktor penskalaan 10000, yang tampaknya dapat ditemukan dalam file xml yang diunduh dengan gambar. Saya tidak pernah menemukan faktor penskalaan ini yang disebutkan dalam file xml yang saya unduh.

Mengapa ada perbedaan ini? Bagaimana perhitungan dilakukan pada QGIS?

tg110
sumber
Bagaimana Anda menghitung NDVI, dengan kalkulator raster atau beberapa alat / plugin? Jelas ada yang tidak beres dalam perhitungan Arcmap, dapatkah Anda mengedit posting untuk menyatakan dengan tepat bagaimana Anda menghitungnya?
HDunn
@ HDunn- Saya telah memasukkan detail seperti yang Anda sarankan. Saya tidak menggunakan plugin apa pun, hanya kalkulator raster di ArcMap & QGIS.
tg110
Coba paksakan Arcmap untuk memperlakukannya sebagai pelampung, bukan 8 / 16bit. untuk melakukannya, kalikan salah satu argumen dengan 1.0, catat .0. Sesuatu seperti ((NIR-Merah) * 1.0) / (NIR + Merah).
HDunn
@ HDunn- itu berhasil! tetapi rentang nilai dalam ArcMap -0,75468 hingga 0,877372 sangat berbeda dari rentang yang saya dapatkan menggunakan QGIS (0,0258 hingga 0,5255) Yang mana yang benar? Dan mengapa ada perbedaan ini?
tg110
Apakah peregangannya serupa? coba hitung statistik, atau coba identifikasi piksel individual di kedua program, harus sama, atau hanya digit pembulatan presisi
HDunn

Jawaban:

3

Arcmap terkenal karena mempertahankan tipe raster dan tidak memperlakukan nilai sebagai desimal / float ketika dihitung dari raster integer 16bit.

Untuk memaksa Arcmap untuk memperlakukan hasil perhitungan raster sebagai float, Anda harus mengalikan salah satu argumen dengan 1.0, atau cukup menambahkan '.0' ke angka konstan atau nyata dalam rumus.

Dalam kasus Anda (NIR-Red)*1.0/(NIR+Red)sudah cukup.

HDunn
sumber
@ HDunn- Saya menerapkan peregangan yang sama dan juga menghitung statistik QGIS- Minimum = -0,684, Maksimum = 0,817, Mean = 0,252, StdDev = 0,113 ArcMap- Min = -0,7546, Max = 0,87737, Mean = 0,252, StdDev = 0,113 Maksudku hampir sama. Saya bertanya-tanya mengapa sedikit perbedaan masih.
tg110
0

Apakah Anda memeriksa histogram awal masing-masing band yang Anda gunakan? Ada kemungkinan bahwa setiap perangkat lunak menginterpretasikan nilai-nilai tanpa data yang berbeda yang dapat membelokkan hasilnya ....

Alexander
sumber
@ Alexander- Jadi itu pertanyaan lain yang saya punya. Nilai-nilai untuk band NIR di QGIS adalah 527-3234, tetapi di ArcMap adalah 0-9212. Saya tidak mengerti bagaimana dan mengapa.
tg110
Ini bisa menjadi sumber masalah Anda. Ketika Anda melihat histogram - Anda akan mengetahui nilai no-data Anda sering karena itu muncul di awal atau akhir histogram Anda - seringkali dengan sejumlah besar piksel. Yang perlu Anda lakukan adalah klip histogram - dan hapus nilai-nilai tidak-data - kemudian lakukan kembali indeks Anda dan beri tahu kami hasil Anda :)
Alexander
@ Alexander- Saya tidak tahu cara melakukan klip histogram. Bagaimana saya melakukannya?
tg110
hmmm- Saya hanya tahu bagaimana melakukannya di erdas yaitu dengan menggunakan fungsi skala ulang. Namun, apakah Anda pernah mencoba melakukan NDVI Anda tanpa kalkulator band di Arcmap? periksa tautan ini: desktop.arcgis.com/en/arcmap/10.3/manage-data/raster-and-images/…
Alexander
pada dasarnya, Anda dapat mengubah skala histogram di jendela analisis gambar (sering kali itu akan mengecualikan tidak ada data secara default) - pastikan Anda memiliki band yang benar ditugaskan dengan masuk ke menu opsi analisis gambar. coba ndvi Anda sesudahnya dan lihat apakah itu berhasil.
Alexander