地图代数的规则概述

需要 Spatial Analyst 许可。

与所有语言一样(不管是口头交流用的语言、计算机编程语言还是其他沟通方法用的语言),地图代数也采用特定的规则来组合各种语言组成部分。

地图代数语句的一般结构是用赋值运算符 (=) 将右侧的操作与左侧的输出(栅格对象)名称分隔开。语句采用以下代数形式:

Output_Name = Action

地图代数组成部分

地图代数表达式由五个部分构成。

工具和函数

在地图代数表达式中,可使用地理处理工具和函数(如 Sin坡度重分类)。

例如,要计算栅格中每个像元的坡向,可使用坡向工具:

outRas = Aspect("C:/Data/inraster")

运算符

运算符是用于表示对输入所应用的数学运算的符号。

例如,以下语句用于将两个栅格相加:

outRas = Raster("inraster1") + Raster("inraster2")

许多运算符同时在地图代数和 Python 中使用;这些运算符会被重载。将运算符应用到栅格数据集时,必须使用 Raster 转换数据集,如上面的语句所示。转换栅格表示应该将运算应用到栅格,从而调用 Spatial Analyst 运算符实现,进而生成输出栅格对象。

如果只是将数字输入到语句中,则将使用 Python 运算符实现,从而输出数字。例如:

# In the following statement outVar will be set to 15
outVar = 6 + 9

有关 Spatial Analyst 的可用运算符的完整列表,请参阅地图代数运算符概述

输入

输入元素(如栅格、要素、数字、常量、对象和变量)是语句要应用到的目标组成部分。

例如,使用以下语句可将正弦计算应用到输入栅格中的每个像元:

outRas = Sin("inraster")

工具参数

工具参数定义工具的执行方法。各工具自己都有唯一一组参数。某些参数是必需参数;这些参数必须具有值才能执行工具。而某些参数则为可选参数,也就是说,您可以将这些参数留空,也可以接受其默认值。

例如,要计算栅格的坡度,可使用 PERCENT_RISE 关键字设置可选输出测量参数:

outRas = Slope("inraster", "PERCENT_RISE")

输出数据

地图代数表达式的输出是指引用临时栅格数据的栅格对象。

例如,以下语句将坡度计算的结果存储为名为 outRas栅格对象:

outRas = Slope("inraster")
注:

与所有地理处理工具相同,地图代数语句也支持环境设置和所选集。

为了与 Python 保持一致,需要在各输入形式参数之间使用逗号;而在实际参数之间可以选择使用空格,但为了增加可读性,建议您加上空格。可以向脚本添加注释,注释行以井号 (#) 开头:

# The following statement takes the slope of the input elevation
outRas = Slope("elevation")

相关主题


在本主题中
  1. 地图代数组成部分