设为空函数 (空间分析)
摘要
“设为空函数”根据指定条件将所识别的像元位置设置为 NoData。如果条件评估为真,则返回 NoData;如果条件评估为假,则返回由另一个栅格指定的值。
插图
用法
-
如果 where 子句的评估结果为真,则为输出栅格上的像元位置赋予 NoData。如果评估结果为假,则输出栅格将由输入条件为假时所取的栅格数据或常量值进行定义。
-
如果未指定 where 子句,则只要条件栅格不为 0,输出栅格就具有 NoData。
-
输入条件栅格不会影响输出数据类型是整型还是浮点型。如果输入条件为假时所取的栅格数据(或常量值)包含浮点值,则输出栅格数据将为浮点型。如果其中包含所有整数值,则输出将为整型栅格。
-
逻辑表达式的最大长度为 4,096 个字符。
-
在 Python 中,{where_clause} 应该以引号括起,例如,"Value > 5"。
语法
SetNull (in_conditional_raster, in_false_raster_or_constant, {where_clause})
参数 | 说明 | 数据类型 |
in_conditional_raster |
表示所需条件结果为真或假的输入栅格。 | Raster Layer |
in_false_raster_or_constant |
条件为假时,其值作为输出像元值的输入。 可为整型或浮点型栅格,或为常数值。 | Raster Layer | Constant |
where_clause (可选) | 决定输入像元为真或假的逻辑表达式。 表达式遵循 SQL 表达式的一般格式。 有关在 ArcGIS 中使用的查询表达式的 SQL 参考以及使用 Python 指定查询的详细信息,请查阅文档。 | SQL Expression |
返回值
名称 | 说明 | 数据类型 |
out_raster |
输出栅格。 如果条件评估为真,则返回 NoData。如果为假,则返回第二个输入栅格的值。 | Raster |
代码示例
SetNull 示例 1(Python 窗口)
在此示例中,将输出栅格中值小于 0 的输入像元设置为 NoData,而其余像元则保持原始值。
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outSetNull = SetNull("elevation", "elevation", "VALUE < 0") outSetNull.save("C:/sapyexamples/output/outsetnull.img")
SetNull 示例 2(独立脚本)
在此示例中,将输出中值不等于 7 的输入像元设置为 NoData,将值等于 7 的输入像元设置为值 1。
# Name: SetNull_Ex_02.py # Description: Returns NoData if a conditional evaluation is # true and returns the value specified by another # raster if it is false, on a cell-by-cell basis. # Requirements: Spatial Analyst Extension # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables inRaster = "landclass" inFalseRaster = 1 whereClause = "VALUE <> 7" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute SetNull outSetNull = SetNull(inRaster, inFalseRaster, whereClause) # Save the output outSetNull.save("C:/sapyexamples/output/outsetnull")
相关主题
许可信息
ArcView: 需要 Spatial Analyst
ArcEditor: 需要 Spatial Analyst
ArcInfo: 需要 Spatial Analyst
7/10/2012