地图代数的规则概述
与所有语言一样(不管是口头交流用的语言、计算机编程语言还是其他沟通方法用的语言),地图代数也采用特定的规则来组合各种语言组成部分。
地图代数语句的一般结构是用赋值运算符 (=) 将右侧的操作与左侧的输出(栅格对象)名称分隔开。语句采用以下代数形式:
Output_Name = Action
地图代数组成部分
地图代数表达式由五个部分构成。
工具和函数
地图代数表达式使用地理处理工具和函数(如 Sin、坡度和重分类)。
例如,要计算栅格中每个像元的坡向,可使用坡向工具:
outRas = Aspect("C:/Datat/inraster")
运算符
运算符是用于表示对输入所应用的数学运算的符号。
例如,以下语句用于将两个栅格相加:
outRas = Raster("inraster1") + Raster("inraster2")
许多运算符同时在地图代数和 Python 中使用;这些运算符会被重载。将运算符应用到栅格数据集时,必须使用 Raster 转换数据集,如上面的语句所示。转换栅格表示应该将运算应用到栅格,从而调用 Spatial Analyst 运算符实现,进而生成输出栅格对象。
如果只是将数字输入到语句中,则将使用 Python 运算符实现,从而输出数字。例如:
# In the following statement outVar will be set to 15
outVar = 6 + 9
输入
输入元素(如栅格、要素、数字、常量、对象和变量)是语句要应用到的目标组成部分。
例如,使用以下语句可将正弦计算应用到输入栅格中的每个像元:
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")