在ArcGIS Spatial Analyst中处理NoData?


10

使用Spatial Analyst时,我经常会遇到在数据中出现NoData值的问题。

各种工具似乎可以定期引入NoData值。

这些值会导致其他工具出现问题,必须通过重新分类将其消除,通常会导致其他问题。

NoData值应如何处理?有没有一种简单的方法可以将NoData值替换为零?可以完全避免NoData吗?


3
通常-但并非总是-NoData值必须存在。这样可以防止整个操作在仅几个单元格分别失败时失败。很好的例子是被零除,非正数的对数以及沿着网格边界尝试的各种本地操作。我知道的关于应该在何处引入NoData值的几个很好的例子之一是多数/少数族裔,通过将它们设置为NoData来解决联系!
ub

1
而且,在有限的NoData(例如-9999)和1.#QNANNoData 之间存在区别。在ArcGIS中,前者是透明的,而1.#QNANNoData是不透明的黑色。
Mike T

Answers:


6

我本来可以将栅格计算器与以下表达式一起使用:

Con(IsNull([raster]), 0, [raster])

它假定您的栅格称为“栅格”。


10.x栅格计算器工具的语法略有不同。在此示例中,“栅格”是地图中的图层:

Con(IsNull("raster"), 0, "raster")

4

您可以使用条件运算符Set Null(ArcGIS 9.3ArcGIS 10)将NoData值设置为任何值。不过,我不知道一种防止NoData出现的方法。


我意识到我应该像@AndOne所提到的那样写/链接到Con运算符。

从文档中,如果您使用python:

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")

1
+1。许多操作具有限制NoData结果的参数。 例如,当计算邻域(“焦点”)统计信息时,您可以指定输入中的NoData(必须在边缘附近发生)只是被忽略而不是传播到输出。请注意,每个平面网格都有一个边界,超出边界则为NoData。
ub

可以实际将NoData转换为零吗?
马修·斯内普

是的,您正在使用哪个版本的ArcGIS?
djq 2011年

我使用的版本是Arcgis 10.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.