Ubah nilai null nilai raster ke 0 di QGIS?

13

Saya butuh bantuan ... Saya mengalami masalah dengan QGIS. Saya memiliki beberapa raster yang tampaknya memiliki nilai nol, meskipun saya mereklasifikasi mereka untuk mendapatkan raster Boolean :(

Bagaimana saya bisa mengubah nilai NULL menjadi 0?

Nadia
sumber

Jawaban:

14

selain jawaban @RK, Anda juga dapat menggunakan r.null di rumput .

r.null - Mengelola NULL-nilai peta raster yang diberikan.

CONTOH

Tetapkan nilai tertentu dari peta rahasia ke NULL:

r.null map=landcover.30m setnull=21,22

Setel nilai NULL peta ke nilai tertentu:

 r.null map=fields null=99

Saya harap ini membantu Anda ...

Aragon
sumber
9

Saya pikir plugin RasterCalc harus dapat menyelesaikan masalah Anda. Setelah Anda menginstalnya, Anda dapat menggunakan kueri berikut (dengan asumsi bahwa nilai NULL sesuai dengan -9999; Anda dapat memeriksa nilai ini di tab Transparansi pada Layer Properties):

eq ([your_raster] @ 1, -9999, 0)

eq artinya sama dengan. Ini memberi tahu RasterCalc bahwa semua piksel dalam raster Anda dengan nilai NULL seharusnya nilainya diatur ke 0. Saya berasumsi Anda memiliki satu band raster.

RK
sumber
1
Ini sepertinya tidak berhasil (QGIS 1.8 / Rastercalc 0.2.5) - memberikan "ekspresi tidak valid" dengan raster yang dimuat, misalnyaeq( EL_hm@1, NULL, 0 )
Simbamangu
1
@Simbamangu, jika Anda akan menggunakan nilai aktual yang digunakan sebagai NULL (-9999 misalnya) - ini akan berhasil. mis. eq (EL_hm @ 1, -9999, 0)
SS_Rebelious
1
@SS_Rebelious - Anda mungkin ingin menyebutkan dalam edit Anda bahwa nilai NULL dapat diatur dalam preferensi ( General|Representation for NULL values) dan ini harus tercermin dalam ekspresi.
Simbamangu
2

Saya tidak tahu apakah Anda menyelesaikan ini? Mungkin ada cara yang lebih ramping tetapi ini berfungsi baik untuk saya di QGIS terbaru (v2.8.1):

  1. Buat poligon baru dengan kolom atribut untuk tinggi / level. menggambar bentuk poligon dengan tingkat yang lebih besar daripada tingkat raster yang ingin Anda ubah
  2. rasterise poligon ini menggunakan raster> konversi> alat rasterise.
  3. menggunakan alat Analisis GDAL> tidak mengisi data> dan poligon yang dirasterisasi sebagai lapisan validitas.
  4. File raster yang dihasilkan sekarang harus memiliki nilai di mana sebelumnya tidak ada data. Ini akan berupa beberapa nilai acak di bawah 0 (-9999 misalnya) atau 0. Jika 0 maka Anda sudah mendapatkan yang Anda inginkan. Jika tidak, lakukan langkah 5.
  5. menggunakan SAGA> Grid -Tools> Mosaick Raster Layers masukan layer raster yang terisi dan poligon rasterised. di area yang tumpang tindih pilih [3] Maksimum dan atur batas output ke raster asli Anda. Ini akan menghasilkan raster baru yang mempertahankan semua nilai Anda lebih dari 0 sambil memberikan sebelumnya nilai tidak ada data Anda nilai baru 0.
Peter
sumber