需要 Spatial Analyst 许可。
获得 Image Analyst 许可后可用。
在栅格计算器工具中构建表达式时,单击或双击对话框中的各个图层、变量、按钮和工具名称,将有助于避免在输入时可能以其他方式造成的语法错误。
由于在栅格计算器工具中输入的表达式将在 Python 中执行,而且 Python 区分大小写,所以使用大小写正确的工具名称非常重要。 例如,要使用 IsNull 工具,请确保将其输入为 IsNull,而不是 Isnull 或 isnull。
当在一个序列中使用多个关系或布尔运算符时,表达式需要使用括号。 有关详细信息,请参阅栅格计算器工具帮助中所列出的使用提示。
栅格计算器工具中的表达式示例
在“栅格计算器”和直接在 Python 中使用“地图代数”时,您应注意语法上存在以下差异。
- 当使用栅格计算器时,由于在栅格计算器工具对话框中有指定的输出参数,“地图代数”表达式不包括输出名称和等号 (=)。
- 只有在栅格计算器工具对话框中,图层名称才可以直接与运算符一起使用。 在 Python 中进行处理时,图层必须首先转换为栅格对象。
- 同样,“栅格计算器”变量仅在工具对话框中才能包含在百分号 (%) 或引号 (") 之内。
栅格计算器工具对话框示例
以下是可在栅格计算器工具中执行的“地图代数”表达式的若干示例。 在这些表达式中,栅格图层名称被包含在引号内,例如 "dist"。
- ("pop" > 150) & ("dist" > 10)
- ("Band4" - "Band3") / Float("Band4" + "Band3")
- Con("elev" <= 3000, 1, 0)
- Con(IsNull("elev"),0, "elev")
- Con(("landuse1" == 1) & ("landuse2" == 5), "landuse1" + "landuse2", 99)
- Con(Raster('elev') != 0,'elev')
- (Con('elev', 'elev', "", "elev_feet <> 0")) + Raster("tree_height")
- Con("inRas" < 45,1, Con(("inRas" >= 45) & ("inRas" < 47),2, Con(("inRas" >= 47)&("inRas" < 49),3, Con("inRas" >= 49,4))))
模型构建器中的示例栅格计算器表达式
在“模型构建器”中使用栅格计算器工具时,唯一的区别是变量可用作输入和图层。 有关 ModelBuilder 中的语法、可用的变量类型以及栅格计算器工具的连接行为的详细信息,请参阅栅格计算器工具帮助。
变量和图层在表达式中的显示方式
下例显示了正在模型中使用的栅格计算器工具的“地图代数”表达式语法。
注:
在本例中,一些图层由重分类工具创建,这要求具有 Spatial Analyst 或 3D Analyst 扩展模块许可。 模型的“栅格计算器”工具部分可以通过 Spatial Analyst 或 Image Analyst 扩展模块许可执行。
在本例中,使用了栅格数据集变量、长整型变量和栅格图层。
请注意,不同变量的语法略有不同:
变量或图层名称 变量类型 语法在表达式中首次出现的方式 Reclass Road
栅格数据集变量 "%Reclass Road%" Rd weight
长整型变量 %Rd weight% Reclass Landuse
栅格图层 "Reclass Landuse" 要使输入中添加正确的语法,请完成以下步骤:
- 请在表达式框中的适合位置放置指针。
- 双击相应图层。
单击确定关闭栅格计算器工具对话框之后,代表 Reclass Landuse 图层的变量将被作为模型变量添加到模型中。
当栅格计算器工具对话框重新打开时,请注意以下事项:
- Reclass Landuse 变量将添加到此列表。
- 表达式中的语法已从图层语法 ("Reclass Landuse") 更新为变量语法 ("%Reclass Landuse%")。