Apa aturan aritmatika yang mengatur nilai Nodata? Terlepas dari bagaimana nilai-nilai nol ini didefinisikan? Saya menggunakan ArcMap Raster Calculator.
Saya berpikir secara khusus tentang operasi seperti 1 * Nodata (atau 1 * null), 1 / Nodata, 1 + Nodata, 1-Nodata, Nodata-1 dll ...
arcgis-desktop
python
arcgis-10.1
raster-calculator
pengguna32882
sumber
sumber
Jawaban:
Oke, belum ada yang memberikan jawaban untuk pertanyaan ini jadi saya pikir saya akan berpadu. Saya menduga bahwa semua GIS yang memberikan dukungan untuk nilai NoData melakukannya dengan cara yang persis sama. Setiap operasi matematika yang diterapkan pada gambar raster mencari kasus khusus sel kisi yang berisi nilai-nilai NoData dan kemudian mengeksekusi jalur yang secara efektif mengabaikan operasi dan menghasilkan nilai NoData untuk sel grid yang sesuai pada gambar output . Berikut ini contoh yang diambil dari alat Tambah di open-source GIS Whitebox GAT:
Kebetulan, ini adalah kode yang juga dijalankan jika Anda menambahkan dua gambar di Kalkulator Raster Whitebox. Di Whitebox, setiap raster dapat memiliki nilai NoData yang unik karena ditentukan dalam file header raster. Dengan demikian, itu tidak harus sama untuk kedua gambar yang ditambahkan dan itu sebabnya Anda melihat variabel noData1 dan noData2 didefinisikan dalam kode di atas. Yang penting, Anda akan melihat bahwa ketika kode melewati setiap sel kisi di tumpukan raster, kode akan mengambil dua nilai dalam gambar input yang sesuai untuk sel (z1 dan z2), lalu memeriksa untuk melihat bahwa keduanya tidak sama dengan NoData . Dengan demikian, penambahan hanya terjadi jika kedua raster mengandung nilai yang valid dalam input. Jika ini bukan masalahnya, tidak ada yang dimasukkan ke dalam sel kisi keluaran. Bahkan, gambar output dibuat dan diinisialisasi dengan nilai NoData-nya sendiri, jadi dengan tidak memasukkan nilai tambah untuk sel kisi (karena setidaknya salah satu input adalah NoData) output akan memiliki nilai NoData juga. Operasi serupa terjadi untuk masing-masing operasi matematika dan pada kenyataannya sebagian besar alat yang melibatkan dataset raster input akan mengikuti pendekatan yang sama untuk menangani kasus khusus nilai-nilai NoData. Dua pengecualian umum untuk aturan ini bahwa operasi menghasilkan nilai NoData untuk input NoData ditemukan di sebagian besar SIG diAlat Con dan Set Null . Alat Con dari ArcGIS menyatakan, "Jika NoData tidak memenuhi, itu tidak menerima nilai dari, dan itu tetap NoData." Jadi, jika 'NoData' adalah bagian dari pernyataan kondisional dan sel kisi dengan nilai ini dikurangi menjadi 'BENAR', nilai non-NoData dapat dihasilkan. Demikian pula, alat Set Null sebenarnya akan menampilkan nilai non-NoData untuk sel input yang mengandung NoData.
Saya harap ini membantu Anda untuk memahami cara kerja nilai NoData yang misterius itu. Dan ingat nol tidak sama dengan NoData! (Kecuali tentu saja nol telah ditandai sebagai nilai NoData untuk raster tertentu).
sumber
Masing-masing dari contoh Anda jawabannya adalah NoData
1 * Nodata (atau 1 * null) = NoData
1 / Nodata = NoData
1 + Nodata = NoData
1-Nodata = NoData
Nodata-1 = NoData
Saya harus menambahkan bahwa banyak operasi memberi Anda opsi untuk "melewati" NoData dalam suatu fungsi.
sumber