ArcGIS教程:ArcGIS中的栅格计算
  栅格计算是栅格数数据空间分析中数据处理和分析中最为常⽤的⽅法,应⽤⾮常⼴泛,能够解决各种类型的问题,尤其重要的是,它是建⽴复杂的应⽤数学模型的基本模块。 ArcGIS 9 提供了⾮常友好的图形化栅格计算器,利⽤栅格计算器,不仅可以⽅便的完成基于数学运算符的栅格运算,以及基于数学函数的栅格运算,⽽且它还⽀持直接调⽤ArcGIS ⾃带的栅格数据空间分析函数,并且可以⽅便的实现多条语句的同时输⼊和运⾏。
  ⼀ 数学运算
  数学运算主要是针对具有相同输⼊单元的两个或多个栅格数据逐⽹格进⾏计算的。主要包括三组数学运算符:算术运算符,布尔运算符和关系运算符。
  1. 算术运算
  算术运算主要包括加、减、乘、除四种。可以完成两个或多个栅格数据相对应单元之间直接的加、减、乘、除运算。
  例如,以今年与去年的降⽔量数据为基础,⽤公式(今年降⽔量-去年降⽔量)/去年降⽔量,可以计算出去年降⽔量的变化程度,如图8.65。(单位:毫⽶)
  图1 算术运算⽰意图
  2. 布尔运算
  布尔运算主要包括:和(And)、或(Or)、异或(Xor)、⾮(Not)。它是基于布尔运算来对栅格数据进⾏判断的。经判断后,如果
为“真”,则输出结果为1,如果为“假”, 则输出结果为0。
  (1) 和(&):⽐较两个或两个以上栅格数据层,如果对应的栅格值均为⾮0 值,则输出结果为真(赋值为1),否则输出结果为假(赋值为0)。
  (2) 或(|):⽐较两个或两个以上栅格数据层,对应的栅格值中只要有⼀个或⼀个以上为⾮0 值,则输出结果为真(赋值为1),否则输出结果为假(赋值为0)。
  (3) 异或(!):⽐较两个或两个以上栅格数据层,如果对应的栅格值在逻辑真假互不相同(⼀个为0,⼀个必为⾮0 值),则输出结果为真(赋值为1),否则输出结果为假(赋值为0)。
  (4) ⾮(^):对⼀个栅格数据层进⾏逻辑“⾮”运算。如果栅格值为0 ,则输出结果为1;如果栅格值⾮0,则输出结果为0。
  例如,以过去及现在的地表类型为基础,说明⽤“和”来提取从未被沙漠化过的地表的⽅法,如图2(其中沙漠为0,其它数值代表了不同的地表类型)。
  图2布尔运算⽰意图
  3. 关系运算
float()函数
  关系运算以⼀定的关系条件为基础,符合条件的为真,赋予1 值,不符条件的为假,赋予0 值。关系运算符包括六种:
=,<,>,<>,>=,<=。
  例如,需要提取出温度介于20 度到30 度之间的地区(包括20 度和30 度),公式为:20 <= [温度] <= 30。
  ⼆ 函数运算
  栅格计算器除了提供给⼤家简单的数学运算符来进⾏栅格计算外还提供给⼤家⼀些相对复杂的函数运算,包括数学函数运算和栅格数据空间分析函数运算。数学函数主要包括:算术函数、三⾓函数、对数函数和幂函数。
  1. 算术函数(Arithmetic)
  算术函数主要包括六种:Abs(绝对值函数)、Int(整数函数)、Float(浮点函数)、 Ceil(向上舍⼊函数)、Floor(向下舍⼊函数)、IsNul(输⼊数据为空数据者以1 输出,有数据者以0输出)。
  2. 三⾓函数(Trigonometric)
  常⽤的三⾓函数包括:Sin(正弦函数)、Cos(余弦函数)、Tan(正切函数)、Asin(反正弦函数)、Acos(反余弦函数)、Atan(反正切函数)。
  3. 对数函数(Logarithms)
  对数函数可对输⼊的格⽹数字做对数或指数的运算。指数部份包括:Exp (底数e)、Exp10 (底数10)、Exp2 (底数2)三种;对数部份包括:Log (⾃然对数)、Log10 (底数10)、log2 (底数2)等三种。
  4. 幂函数(Powers)
  幂函数可对输⼊的格⽹数字进⾏幂函数运算。幂函数包括三种:Sqrt (平⽅根)、Sqr (平⽅)、Pow (幂)。
  5. 栅格数据空间分析函数
  栅格计算器也直接⽀持ArcGis ⾃带的⼤部分栅格数据分析与处理函数,如栅格表⾯分析中的slope、hillshade
  函数等等,在此也不⼀⼀列举,具体⽤法请参阅相关⽂档。它与数学函数不同的是,这些函数并没有出现在栅格计算器图形界⾯中,⽽是由计算者⾃⼰⼿ 动输⼊。
  三 栅格计算器
  1. 启动栅格计算器
  点击Spatial Analyst 的下拉箭头,选择Raster Calculator。栅格计算器由四部分组成(图3),左上部 Layers 选择框为当前Arcmap 试图中已加载的所有栅格数据层名列表,双击 任⼀个数据层名,该数据层名便可⾃动添加到左下部的公式编辑器中,中间部位上部是常 ⽤的算术运算符、0~10、⼩数点.、关系和逻辑运算符⾯板,单击所需按钮,按钮内容便可 ⾃动添加到公式编辑器中。右边可伸缩区域为常⽤的数学运算函数⾯板,同样单击任⼀个 按钮,按钮内容便可⾃动添加到公式编辑器中。
  2. 编辑计算公式
  (1) 简单算术运算
  如下图3 所⽰,在公式编辑器中先输⼊计算结果名称,再输⼊等号(所有符号两边需要加⼀个空 格),然后在Layers 栏中双 击要⽤来计算的图层,则选择的图层将会进⼊公式编辑器参与运算。其中“-” 和“^”为单⽬运算符,运算符前可以不加内容,⽽只在运算符后加参与计算的对象,如a = - [slope]等。在公式编辑器如果引⽤Layers 选择框的数据层,数据层名必须⽤[ ]括起来。
  图3 栅格计算器的数学算术运算
  图4 栅格计算器的数学函数运算
  (2) 数学函数运算
  数学函数运算需要注意的是它输⼊时需要先点击函数按钮,然后在函数后⾯的括号内加⼊计算对象, 如图4所⽰。应该注意⼀点,三⾓函数以弧度为其默认计算单位。
  (3) 栅格数据空间分析函数运算
  栅格数据空间分析函数没有直接出现在栅格计算器⾯板中,因此需要计算者⾃⼰⼿动输⼊。需要时引⽤它们时,⾸先必须查阅有关⽂档,查清楚它们的函数全名、参数、引⽤ 的语法规则等。然后在栅格计算器输⼊函数全名,并输⼊⼀对⼩括号,再在⼩括号中输⼊相关参数或计算对象,如图5所⽰。
  图5 栅格数据空间分析函数运算
  (4) 多语句的编辑
  ArcGIS 栅格计算器多表达式同时输⼊,并且先输⼊的表达式运算结果可以直接被后续语句引⽤,如图6所⽰。⼀个表达式必须在⼀⾏内输⼊完毕,中间不能回⾏。此外,如果后输⼊的函数需要引⽤前⾯表达式计算结果,前⾯表达式必须是⼀个完整的数学表达 式,如图8.70 中的“d = [straightline]*100”,等号左边为输出数据⽂件名,右边为计算式。 此外,引⽤先前表达式的输出对象时,直接引⽤输出对象名称,对象名称不需要⽤中括号 括起来,如e = d >= 2500 中d。
  图6栅格计算器的多语句编辑
  3. 检查计算公式准确⽆误后,点击Evaluate 来完成运算,计算结果会⾃动加载到当 前ArcMap 视图窗⼝。