需要 Spatial Analyst 许可。
与所有语言一样,地图代数采用特定的规则来组合各种语言组成部分。
地图代数语句的一般结构是用赋值运算符 (=) 将右侧的操作与左侧的输出(栅格对象)名称分隔开。 语句采用以下代数形式:
Output_Name = Action
地图代数组成部分
地图代数表达式由五个部分组成:工具和函数、运算符、输入、工具参数和输出数据。
工具和函数
在地图代数表达式中,可使用地理处理工具和函数(如 Sin、坡度和重分类)。
例如,要计算栅格中每个像元的坡向,可使用坡向工具:
outRas = Aspect("C:/Data/inraster.tif")
运算符
运算符是用于表示对输入所应用的数学运算的符号。
例如,以下语句用于将两个栅格相加:
outRas = Raster("inraster1.tif") + Raster("inraster2.tif")
许多运算符会同时用于地图代数和 Python;运算符会被重载。 将运算符应用到栅格数据集时,必须使用 Raster 转换数据集,如上面的语句所示。 转换栅格表示该运算需应用于栅格,因此会调用该运算符的 Spatial Analyst 实现,从而生成输出栅格对象。
如果在语句中仅输入数字,则将使用运算符的 Python 实现,生成输出数字。 请参阅以下示例:
# In the following statement outVar will be set to 15
outVar = 6 + 9
有关 Spatial Analyst 的可用运算符的完整列表,请参阅地图代数运算符概述。
输入元素
输入元素(例如栅格、要素、数字、常量、对象和变量)是应用语句的组件。
例如,使用以下语句可将正弦计算应用到输入栅格中的每个像元:
outRas = Sin("inraster.tif")
工具参数
工具参数可定义如何运行工具。 每个工具均具有一组唯一的参数。 一些参数是必需的;它们必须具有值,工具才能运行。 其他参数是可选的,这意味着您可以将其留空或接受其默认值。
例如,要计算栅格的坡度,请使用 PERCENT_RISE 关键字设置可选的输出测量参数:
outRas = Slope("inraster.tif", "PERCENT_RISE")
输出数据
地图代数表达式的输出是引用临时栅格数据的 Raster 对象。
例如,以下语句将坡度计算的结果存储为名为 outRas 的 Raster 对象:
outRas = Slope("inraster.tif")
注:
与所有地理处理工具相同,地图代数语句也支持环境设置和所选集。
与 Python 一致,每个输入参数之间需要添加逗号。 可选择在参数之间添加空格,但为了提高可读性,建议使用空格。 您可以使用以井号 (#) 为开头的行来向脚本添加注释:
# The following statement takes the slope of the input elevation in degrees.
outRas = Slope("elevation.tif", "DEGREE", 0.3043)