Spatial Analyst 中的运算类型
ArcGIS Spatial Analyst 扩展模块中,基于像元的可用分析运算可分成五类:
- 作用于单个像元的运算(局部 (local) 运算)
- 作用于邻域内的所有像元的运算(焦点 (focal) 运算)
- 作用于区域内的所有像元的运算(分区 (zonal) 运算)
- 作用于栅格内所有像元的运算(全局 (global) 运算)
- 执行特定应用的运算(例如,水文分析运算)
每种运算类别都可能基于数据的空间或几何表示或受其影响,而不单单取决于像元表示的属性。例如,将两个图层相加(基于单个像元)的工具取决于该像元的位置和第二个图层中相对应部分的值。应用于邻域或区域内像元的工具取决于邻域或区域的空间结构以及该结构中的像元值。
局部 (local) 运算
局部 (local) 运算(或逐像元函数)计算栅格输出数据集,其中每个位置(像元)的输出值取决于与一个或多个栅格数据集上的该位置相关联的值。也就是说,单个像元的值(不考虑相邻像元的值)对输出值有直接的影响。可将逐像元运算应用到单个栅格数据集或多个栅格数据集。对于单个数据集而言,逐像元运算的示例包括三角函数工具(例如 Tan)或对数工具(例如 Log2)。
对多个输入栅格也可以执行局部 (local) 运算。在这种情况下,会基于应用到每个输入栅格的相应像元的某种运算为每个像元返回一个值。此类运算的示例之一就是使用像元统计工具:对于每个输出像元而言,会在相应位置对所有输入栅格的像元值执行统计计算(例如,平均值或范围)。
焦点 (focal) 运算
焦点 (focal) 运算(或邻域运算)会生成一个输出栅格数据集,其中每个像元位置的输出值取决于某个像元的输入值及其周围指定邻域中的像元值。因为输入中的每个像元都会得到处理,所以邻域本质上是一个随像元平移的移动窗口。邻域的结构(大小和形状)具体确定待处理像元周围的哪些像元将应用于每个输出值的计算。最典型的邻域类型是 3 × 3 像元,包括待处理的像元和最邻近的八个像元。
分区 (zonal) 运算
分区 (zonal) 运算的输出栅格数据集中每个像元的输出值取决于其自身的像元值以及制图区域内所有与其相关联的像元的值。分区 (zonal) 运算与焦点 (focal) 运算相似,不同点在于分区 (zonal) 运算中的邻域是区域本身的结构,而非指定的邻域形状。一个区域可以是任意形状和大小,而且各部分之间可以离散分布。区域可以定义为栅格数据或要素数据。对于栅格数据,区域就是值相同的所有像元。对于要素数据,区域就是属性值相同(例如,LandClass = 4)的所有要素。
返回落在第二个数据集指定区域内的第一个数据集的平均值就是分区 (zonal) 运算的一个示例。
全局 (global) 运算
全局 (global) 运算(或逐栅格运算)会计算输出栅格数据集,其中每个像元位置处的输出值都可能取决于各输入栅格数据集组合而成的所有像元。全局 (global) 运算有两种主要类别:欧氏距离和加权距离。
欧氏距离全局 (global) 运算
欧氏距离全局 (global) 运算会为输出栅格数据集中的每个像元指定其与最近源像元的距离。举例来说,源可以是一条新道路的起点。还可以将最近源像元的方向指定为其他输出栅格数据集中每个像元位置的值。
非欧氏(加权)距离全局 (global) 运算
非欧氏距离运算确定:在除了欧氏距离外还要考虑某种成本加权的表面上,从目标像元移动至最近源像元的成本。例如,要计划从点 A 到点 B 修建一条道路,如果要修路的表面很陡峭或地面结构过软(如沼泽),则修建一条最短、最直接的道路实际上花费会更多。
在所有全局 (global) 计算中,了解整个表面对于获得解决方案是必要的。
应用运算
一些基于像元的建模运算已经开发出来,用于解决某些特定的应用。应用运算会执行特定于某个领域的分析。例如,水文运算会创建河流网络并描绘流域。局部 (local)、焦点 (focal)、分区 (zonal)、全局 (global) 运算都是常规运算,不特定于任何应用。在应用运算以及局部 (local)、焦点 (focal)、分区 (zonal)、全局 (global) 运算的分类中有某些重叠情况(例如,即便坡度运算经常用于表面分析,从技术上来讲,它实际上也是一种焦点 (Focal) 运算)。有些应用运算的使用范围更为广泛,如表面分析;而其他一些应用功能的范围则更为狭窄,如水文分析功能。将应用运算分组有助于理解这些运算的范围和特定功能。
应用运算包括以下功能:
- 更改栅格分辨率
- 密度分析
- 水文分析
- 图像分类
- 制图综合
- 表面分析
- 表面生成