Saya memiliki raster DEM dengan nilai piksel antara sekitar 3000 dan -0.0003. Saya perlu mengatur semua piksel dengan nilai 0 dan smaler (<= 0) menjadi "nodata" (untuk perhitungan raster selanjutnya dan untuk mengurangi ukuran file).
Tampaknya bagi saya bahwa ini adalah tugas untuk kalkulator raster (menetapkan nilai piksel <= 0 ke "nodata") atau klasifikasi ulang (menetapkan nilai piksel <= 0 ke "nodata" dan menyimpan semua nilai lainnya) tetapi saya tidak tahu caranya.
Jawaban:
Saya tidak menemukan solusi satu alat, tetapi Anda pertama-tama dapat menggunakan kalkulator raster untuk mengubah semua nilai di bawah ambang batas tertentu menjadi nol dan kemudian menggunakan gdal_translate dengan -a_nodata 0 untuk mengubah 0 menjadi nodata.
sumber
Berikut ekspresi GRALCAL mapcc untuk menetapkan rentang ke NULL:
sumber
Ini dapat dilakukan dalam satu langkah dalam QGIS dalam kalkulator raster.
Di QGIS3, untuk layer raster bernama "x", gunakan ekspresi berikut:
Trik ini memetakan nilai raster x> 0 ke dalam rasio x / 1 = x, dan nilai raster x <= 0 ke dalam rasio 0/0 = NaN. NaN ini diterjemahkan sebagai FLOAT_MIN (alias -3.402832 ... e + 38) jika rasternya adalah float 4-byte.
Anehnya, pertanyaan ini tampaknya sudah ada sejak lama, dengan (sejauh pencarian Google cepat saya hari ini) sebagian besar responden mengatakan itu tidak dapat dilakukan dalam satu langkah. Seharusnya tidak perlu diretas seperti ini. Dokumentasi QGIS juga bisa lebih baik.
sumber
Banyak terima kasih kepada Dominik. Jawaban pertama saya tidak benar untuk QGIS 2.8.3 (ekspresi
"myraster@1" > 0
mengembalikan 0 atau 1 untuk input non- nodata , untuk input nodata ia mengembalikan nodata ).Ekspresi Kalkulator Raster QGIS berikut harus memadai (lapisan raster bernama "myraster"), karena Kalkulator Raster QGIS menetapkan semua piksel yang tidak memenuhi kondisi untuk nodata :Solusi berikut didasarkan pada https://docs.qgis.org/2.8/en/docs/training_manual/processing/no_data.html , dan berfungsi untuk QGIS 2.8.3 dengan SAGA 2.1.2.
Dalam Pemrosesan QGIS, gunakan kalkulator SAGA Raster dan masukkan yang berikut ini dalam Formula :
atau
Ini akan mengubah semua nilai kurang dari atau sama dengan 0 menjadi nodata (0/0).
sumber
Anda juga dapat menyimpan layer (klik kanan, simpan sebagai ...) dan tentukan rentang nodata. Ini akan mempertahankan nodata asli dan membuat nodatas baru untuk rentang nilai yang ditentukan.
sumber
Saya memiliki masalah yang sama, tetapi memiliki KEDUA nilai yang ingin saya konversi menjadi tidak ada data DAN nilai tidak ada data di dalam raster.
Saya datang ke halaman ini untuk meminta bantuan, tetapi saya pikir ada peringatan untuk pendekatan di sini. Metode @underdark dan @Micha tampaknya hanya berfungsi di mana tidak ada nilai no-data di raster.
Untuk mengatasinya, Anda perlu mengonversi nilai no-data, dan nilai yang ingin Anda konversi ke no-data, ke angka yang konsisten. Maka boleh saja menggunakan langkah kedua @underdark.
Untuk melakukan ini, gunakan Processing Toolbox> Reclassify Grid Values (SAGA) untuk mengonversi nilai dan nilai no-data ke nomor umum (misalnya -999), pada saat yang sama. Secara khusus, gunakan metode "rentang" dan tentukan rentang. Kemudian dalam mengganti nilai tidak ada data, pilih nilai yang sama ini (mis. -999). Hapus centang nilai-nilai lain. Ini berfungsi untuk perubahan nilai tunggal atau perubahan yang lebih kompleks juga.
Kemudian ikuti metode @underdark, dan simpan raster menggunakan Raster> Conversion> Translate, dan centang no-data, masukkan nilai yang Anda gunakan (mis. -999).
sumber
Klik kanan pada raster, pergi ke properti raster, pilih opsi ketiga "transparansi", di tab tidak ada nilai data, tambahkan nilai tambahan 0 dan klik berlaku. Ini adalah opsi yang sama "tampilan nilai latar belakang" di arcgis.
sumber