# 栅格计算器
栅格运算是进行栅格数据处理和分析的最常用方法。通过算数、关系、逻辑、组合、布尔、位运算和具有特定功能的运算,或由它们构成的地图代数表达式来完成比如数学运算、查询/选择数据、图像处理等功能。
# 操作说明
1. 单击“栅格编辑”菜单下的“栅格计算器”命令,系统弹出“栅格运算”对话框,如下图所示:
2. 输入待运算数据。在“输入数据”框中,可以单击下拉箭头,选择已添加到当前地图文档中的栅格图层;也可以单击“打开文件”按钮,弹出打开文件对话框,可以打开其他位置的栅格文件。可输入多个栅格图层,已输入的图层会在图层变量列表中列出。
图层变量列表中,列出了待计算数据的名称、波段信息,并对应相应的变量名。在进行公式设置时,变量名代表对应的栅格数据。在图层变量列表中,可以进行以下操作:
【选择波段】:输入数据后,图层变量列表中每个栅格数据层对应处理的波段为第1波段,用户还可以单击对应层的波段列,在其波段选择列表中,选择需要处理的波段,如下图所示:
【删除数据】:在图层变量列表中,鼠标右键需要删除的数据,出现右键菜单如下图所示,选择“删除此项”,完成对选中项的删除。
【作为输出分辨】:要将输入的某个栅格数据的分辨率作为输出的结果数据的分辨率。在图层变量列表中,右键对应数据,在其右键菜单中,选择“作为输出分辨率”即可。
3. 在公式设置框中,自定义表达式及其说明。在公式设置窗口右侧,单击“编辑器”按钮,编辑器窗口被打开,编辑界面如下图:
在编辑器窗口中,用户根据需求,通过计算器按钮输入表达式。公式设置窗口会显示当前运算的表达式,输入表达式“(I1-I2)/(I1+I2)”表示计算两个波段对应点处像元值差值与和值之比,并将计算结果赋予结果图像,I1,I2表示参与运算的两个图层。也可以通过“导入公式”、“导出公式”导入导出已有的公式(*.txt格式)。
系统定义了一套图像算术运算语法,以支持各种专业模型分析和空间分析的需求。图像算术运算语法由图像操作符、图像处理函数和图像运算分界符构成,下面分别进行介绍:
操作符:
图像处理函数:
图像运算分界符:( )
图像操作符的优先级:
(、)、图像处理函数
not、NOT、~
and、AND
*、/、&、mod、MOD、div、DIV
+、-、or、OR、xor、XOR、|
=、<、<=、<>、>、>=
提示:
语句中有多项判断条件时注意加上"()",如: 有变量I1、I2、I3,当I2值最大时,像元值赋为2,否则像元值为0,语句可以写为:if((I2>I1) and (I2>I3),2,0) 。
4. 完成公式设置,进行计算结果的输出设置。在“输出设置”栏中,单击“输出路径”框后的“”按钮,设置结果的保存路径和名称。
- 【结果类型】:选择计算结果栅格的像元类型。系统提供了7种像元类型,包括:8位无符号整数、16为无符号整数、16为有符号整数、32为无符号整数、32位有符号整数、32位浮点数、64位浮点数。用户可以需根据计算的结果值范围,选择适合的结果类型,若选择的值范围不合适,可能会导致结果数据异常。
- 【结果波段数】:设置输出结果的波段数目。必选要与对应变量波段数一致。
- 【X/Y分辨率】:设置输出栅格的分辨率。可以将图层变量列表中的某个输入栅格的分辨率作为输出栅格的分辨率,也可以按需要,由用户自定义输入对应的X/Y分辨率值。
5. 完成设置,点击"确定",系统会自动对栅格运算公式进行判断,若公式有错,将弹出错误提示信息;若公式正确,系统会按照计算式,计算并输出结果到指定位置。
提示:
多个栅格数据进行公式计算时,需保证数据范围、行列值、分辨率一致,否则会失败。