在QGIS中将空值栅格值更改为0?


13

我需要帮助... QGIS出现问题。我有一些栅格似乎具有空值,即使我将它们重新分类以获得布尔栅格:(

如何将NULL值更改为0?

Answers:


14

除了@RK答案,您也可以在草丛中使用r.null

r.null-管理给定栅格地图的NULL值。

例子

将分类映射的特定值设置为NULL:

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

将映射的NULL值设置为特定值:

 r.null map=fields null=99

我希望它可以帮助您...


9

我认为RasterCalc插件应该能够解决您的问题。安装后,可以使用以下查询(假设NULL值对应于-9999;您可以在“图层属性”的“透明度”选项卡中检查该值):

eq([您的光栅] @ 1,-9999,0)

eq等于。这告诉RasterCalc栅格中所有值为NULL的像素都应将其值设置为0。我假设您有一个单波段栅格。


1
这似乎不起作用(QGIS 1.8 / Rastercalc 0.2.5)-使用已加载的栅格给出“表达式无效”,例如eq( EL_hm@1, NULL, 0 )
Simbamangu 2012年

1
@Simbamangu,如果您将实际值用作NULL(例如,-9999),则可以使用。例如eq(EL_hm @ 1,
-9999,0

1
@SS_Rebelious-您可能要在编辑中提到可以在首选项()中设置 NULL值,General|Representation for NULL values并且该值应反映在表达式中。
Simbamangu

2

不知道你解决了吗 可能有一种更简化的方法,但这在最新的QGIS(v2.8.1)中对我来说很好用:

  1. 创建一个带有高度/水平属性列的新多边形。绘制比您要更改的栅格范围更大范围的多边形。
  2. 使用栅格>转换>栅格化工具栅格化此多边形。
  3. 使用GDAL分析工具>不填充数据>,然后将栅格化的多边形作为有效性图层。
  4. 现在,生成的栅格文件应具有以前没有数据的值。这些将是小于0(例如-9999)或0以下的某个随机值。如果为0,那么您将拥有所需的内容。如果不是,请执行步骤5。
  5. 使用SAGA>栅格-工具> Mosaick栅格图层输入填充的栅格图层和栅格化的多边形。在重叠区域中,选择[3]最大,然后将输出范围设置为原始栅格。这将导致一个新的栅格,该栅格将保留所有超过0的值,同时为先前的无数据值提供新的值0。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.