Thay đổi giá trị null giá trị raster thành 0 trong QGIS?


13

Tôi cần giúp đỡ ... Tôi đang gặp vấn đề với QGIS. Tôi có một số raster dường như có giá trị null, mặc dù tôi đã phân loại lại chúng để lấy raster Boolean :(

Làm cách nào để thay đổi giá trị NULL thành 0?

Câu trả lời:


13

bên cạnh câu trả lời @RK, bạn cũng có thể sử dụng r.null trong cỏ .

r.null - Quản lý giá trị NULL của bản đồ raster đã cho.

VÍ DỤ

Đặt giá trị cụ thể của bản đồ được phân loại thành NULL:

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

Đặt giá trị NULL của bản đồ thành một giá trị cụ thể:

 r.null map=fields null=99

Tôi hy vọng nó sẽ giúp bạn...


9

Tôi nghĩ rằng plugin RasterCalc sẽ có thể giải quyết vấn đề của bạn. Sau khi bạn đã cài đặt nó, bạn có thể sử dụng truy vấn sau (giả sử rằng các giá trị NULL tương ứng với -9999; bạn có thể kiểm tra giá trị này trong tab Độ trong suốt của Thuộc tính lớp):

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

eq có nghĩa là bằng. Điều này cho RasterCalc biết rằng tất cả các pixel trong raster của bạn với các giá trị NULL sẽ được đặt giá trị của chúng thành 0. Tôi giả sử bạn có một raster băng tần duy nhất.


1
Đây dường như không làm việc (QGIS 1.8 / Rastercalc 0.2.5) - cho "biểu hiện không hợp lệ" với một raster tải, ví dụ:eq( EL_hm@1, NULL, 0 )
Simbamangu

1
@Simbamangu, nếu bạn sẽ sử dụng giá trị thực tế được sử dụng làm NULL (ví dụ -9999) - điều này sẽ hoạt động. ví dụ: eq (EL_hm @ 1, -9999, 0)
SS_Rebelious

1
@SS_Rebelious - bạn có thể muốn đề cập trong chỉnh sửa của mình rằng giá trị NULL có thể được đặt trong tùy chọn ( General|Representation for NULL values) và điều này sẽ được phản ánh trong biểu thức.
Simbamangu

2

Tôi không biết nếu bạn giải quyết điều này? Có thể có một cách hợp lý hơn nhưng điều này hoạt động tốt với tôi trong QGIS mới nhất (v2.8.1):

  1. Tạo một đa giác mới với một cột thuộc tính cho chiều cao / cấp độ. vẽ một hình đa giác với mức độ lớn hơn mức raster bạn muốn thay đổi.
  2. rasterise đa giác này bằng cách sử dụng raster> chuyển đổi> công cụ rasterise.
  3. sử dụng các công cụ Phân tích GDAL> không điền dữ liệu> và đa giác rasterised làm lớp hợp lệ.
  4. Tệp raster kết quả bây giờ sẽ có các giá trị mà trước đó không có dữ liệu. Đây sẽ là một số giá trị ngẫu nhiên dưới 0 (ví dụ -9999) hoặc 0. Nếu là 0 thì tuyệt vời bạn đã có những gì bạn muốn. Nếu không, thực hiện bước 5.
  5. sử dụng SAGA> Grid -Tools> Mosaick Raster Layer nhập vào lớp raster đầy và đa giác rasterised. trong các khu vực chồng lấp, chọn [3] Tối đa và đặt phạm vi đầu ra cho raster ban đầu của bạn. Điều này sẽ dẫn đến một raster mới giữ lại tất cả các giá trị của bạn trên 0 trong khi cho giá trị dữ liệu trước đó của bạn không có giá trị mới bằng 0.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.