Nilai-nilai NoData dikenali dalam raster di ArcGIS Desktop tetapi tidak mengikuti aturan simbologi?

9

Saya memiliki raster GeoTIFF di ArcGIS Desktop, yang dapat diunduh dari dua tautan berikut:

  1. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tfw
  2. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tif

Jika Anda memuat ini ke dalam ArcGIS Desktop Anda akan melihat area seragam yang besar. Mengklik pada area-area ini dengan alat Info menunjukkan nilai pixel menjadi No Data. Namun, ketika Anda memilih untuk menampilkan nilai No Data sebagai transparan (atau warna apa pun) di preferensi Simbologi untuk layer, nilai No Data tidak mengikuti aturan itu.

Menariknya, nilai-nilai No Data di luar area utama gambar benar-benar mengikuti aturan (atur warna menjadi merah untuk melihatnya), tetapi yang di dalam gambar tidak.

Saya benar-benar berjuang untuk mencoba dan memperbaiki masalah ini - dan tidak bisa menyelesaikannya sama sekali.

Adakah yang punya ide?

Robintw
sumber

Jawaban:

3

Saya mengunduh file dan mengubahnya menjadi array numpy dan ketika saya loop nilai-nilai dalam array saya bisa melihat bahwa saya mendapatkan -3,40282347e + 38 dan NaN sebagai nilai nodata. Mungkin Anda bisa mengklasifikasi ulang ini ke nilai ke satu atau yang lain, jadi semua nilai nodata adalah sama.

Anda dapat menggunakan alat reklasifikasi, arcpy.sa.setnullatau saya yakin numpy memiliki beberapa fungsi mewah yang dapat melakukan ini jika Anda mengonversi gambar ke array numpy.

Terjemahan Gdal juga bisa berguna jika Anda ingin pergi ke jalur open source.

dango
sumber
Apakah Anda tahu bagaimana saya dapat mengklasifikasikan ulang nilai-nilai ini? Saya sepertinya tidak bisa membuat ArcGIS mengenali apa pun untuk NaN, dan sepertinya tidak berurusan dengan nilai yang sangat rendah (pada dasarnya NaN tampaknya - karena itu adalah kisaran float di Arc) juga.
robintw
Jika itu saya, saya akan mengkonversi setiap gambar ke array numpy, loop atas array yang mengkonversi semua nilai nodata ke -9999 atau apa pun dan kemudian membawa array kembali ke gambar. Saya yakin ada cara yang lebih cerdas untuk melakukannya, tetapi saya belum pernah bekerja dengan terlalu banyak.
dango
jika Anda memutuskan untuk menggunakan metode yang saya sarankan di atas, Anda mungkin ingin melihat menggunakan fungsi python math.isnan () untuk mengidentifikasi nilai-nilai NaN.
dango
4

Pasti ada sesuatu yang sangat funky terjadi dengan file / data itu.

Anda benar bahwa ArcGIS menunjukkan dua jenis NoData yang berbeda walaupun atribut keduanya menunjukkan hal yang sama. QGIS juga melakukan ini. Saya sama sekali tidak tahu apa yang terjadi dalam data (tapi dugaan saya adalah bahwa ada dua nilai "noData" yang berbeda yang digunakan di belakang layar, satu mungkin "null" yang lain "-9999" misalnya) tetapi akan tertarik untuk tahu, mungkin orang lain bisa mencerahkan kita.

Namun, ada beberapa kemungkinan solusi:

Ekspor data - Jika Anda mengekspor data yang dipastikan "menggunakan penyaji" data akan mulai berfungsi dengan benar. Jika Anda tidak mencentang use-renderer, file baru Anda akan memiliki masalah yang sama. Pada sisi negatifnya ini mengubahnya menjadi data 8 bit (0-255). Beberapa alat lain mungkin dapat merendernya kembali sambil menjaga data sebagai 32bit mengapung.

Use Classified - Metode simbologi Rahasia tampaknya menampilkan kedua jenis NoData dengan benar (yaitu sebagai hal yang sama) jadi gunakan itu jika memungkinkan dan Anda tidak ingin mengubah data. Membentang menunjukkan bug yang dilaporkan dan "Nilai Unik" tidak menunjukkan apa-apa.

(Menggunakan ArcGIS 9.3.1)

GIS-Jonathan
sumber
Terima kasih atas tanggapannya - Saya senang bukan hanya saya yang menganggap ini aneh. Sayangnya simbologi rahasia tidak cocok untuk apa yang harus saya lakukan, tetapi saya akan melakukan ekspor menggunakan renderer saat ini. Yang membuat frustrasi adalah ini terjadi untuk semua file yang saya dapatkan dari satelit MODIS menggunakan sistem pemrosesan online MODIS. Saya pikir masalahnya mungkin dua jenis NoData - saya pikir dalam kasus ini mereka mungkin "null" dan NaN, tapi saya tidak tahu.
robintw
Saya pikir 'Use Classified' sejauh ini paling tidak memberatkan semua teknik yang disarankan untuk mengatasi bug ini. Anda dapat memperkirakan hampir semua yang dapat Anda lakukan di menu 'Membentang' di menu 'Diklasifikasikan'.
Alexander
2

Saya baru saja menemukan masalah yang sama - dan menemukan "solusi". Jika Anda mengalikan raster dengan 1.0 dengan kalkulator raster, ArcMap akan mengenali nilai-nilai NoData.

Hellski
sumber
1

Punya masalah yang sama dengan grid ESRI 32 bit. Yang 16 bit bekerja dengan baik dan NoData tidak terlihat tetapi akan muncul hitam untuk yang 32bit. Memperbaikinya dengan mengekspor secara individual dan mengubah nilai nodata ke -32768 yang bertentangan dengan -2147483647 yang biasanya dimiliki 32bit.

Kai
sumber
1

Saya memiliki masalah yang sama. Yang berhasil bagi saya adalah mengekspor raster pada folder geodatabase. Jika raster diekspor ke geodatabase, arcmap menampilkan nilai-nilai NoData dengan benar.

Fernando Ribeiro
sumber
0

Saya memiliki masalah serupa dengan gambar Landsat 8-OLI saat melakukan mosaik. Nilai "NoData" di bagian luar (latar belakang) tidak melakukan apa-apa, tetapi setiap blok data yang hilang, seperti cloud / shadow removal di bagian dalam akan mengubah warna lapisan mosaik referensi. Saya melakukannya di ERDAS dan Arcmap, keduanya hasilnya sama. Untuk beberapa alasan ini memiliki efek pada simbologi, tetapi jika Anda menggunakan alat "Identifikasi", nilai piksel sudah benar. Jika Anda mengejar hasil dan tidak ditampilkan, Anda harus baik-baik saja.

Zman3
sumber