菌菌:移动窗口法原理是什么?然后我给他找了一个栅格计算的原理教程
什么是地图代数Map Algebra(栅格计算Raster Math)
大年初四的下午,菌老板就来提问了,问“有没有推荐的,讲移动窗口法原理的文章==”?
然后我就按照卷王菌的说法找到了一篇不错的文章,英文的,给大家搬运过来。
什么是地图代数(栅格计算)?
地图代数(Map algebra) 就是给地图做代数运算。但是它通常只用于栅格数据,这就是为什么我们一般称它为栅格计算(raster math)。
接下来我们先看看地图代数的几种类型,然后实战一下。
地图代数的类型
就像你学到的,地图代数使用数学运算。例如,你可以使用简单的数学计算如“相加”或“相乘”来更新栅格像元值。
最常用的地图代数方法是逐像元的计算,适用于彼此对齐的像元格网。也可以更改配置,使其不仅仅适用于逐像元,常用的地图代数运算类型有以下四种:
Local局部 Focal焦点(移动窗口) Zonal区域 Global全局
Local Operations局部运算
最简单的就是逐像元的地图代数,例如,你有两个格网对齐的栅格,你可以对他们逐像元的相加。
如果栅格像元代表温度,您可以在不同的时间段将它们都减去。通过使用局部运算,您可以找到每个像元的温度差异。
Global Operations全局运算
全局运算将批量更改应用于栅格中的所有像元。如果要为所有像元单元添加 1 的值,这是一个全局操作。
例如,欧几里得距离就是全局运算的一个例子。通过计算距源的最近距离,它在栅格中全局应用该函数。
Focal Operations焦点运算
焦点运算是使用每个像元的临近像元计算得到本像元的值。例如卷积运算(convolution)、核运算(kernel)和移动窗口法(moving windows)。
移动窗口:移动窗口是一个矩形排列的单元格,位置会发生变化。通过从移动窗口对每个像元应用操作,它通常会平滑栅格中的值。
Zonal Operation区域运算
区域运算是给一组特定区域内的像元应用一个数学公式计算。这个区域可以是矢量也可以是栅格。
如果你想知道一个流域内的降雨量,那么你可以使用区域计算,使用降水量栅格数据,使用流域作为求和范围进行计算。
其实就是分区统计,具体可以查阅:栅格数据分区统计转面板数据,单波段、多波段数据都可以找到合适的方法
数学函数
可以用于地图代数的运算方法:
算术运算:加减乘除(+ - × ÷) 统计运算:最大最小均值中值 关系运算:大于小于等于 三角函数运算:sin/cos/tan/arcsin 指数和对数运算
地图代数实例
2014和2015年4月的地表温度如下图所示:
相减获得两个时期地表温度的差值:
这是局部运算的一个示例,因为它将每个像元从一年减去另一年。它也是算术运算符的一个示例,因为它使用减法。
这样做的特别之处在于,您可以查明差异最大的像元。如果值为正,则意味着 2015 年的地表温度更高。但如果值为负数,则意味着 2015 年的地表温度较低。
当你有空值时会发生什么?Null 不是数值。如果任何栅格像元中有空值,则它们在输出栅格中将保持为空值。
地图代数实际操作
ArcGIS里的地图代数
启用ArcGIS Spatial Analyst拓展模块; ArcToolbox > Spatial Analyst Tools > Map Algebra双击打开Raster Calculator栅格计算器工具
选择栅格数据和运算符 输入函数 指定输出栅格
参考文献
https://gisgeography.com/map-algebra-global-zonal-focal-local/ 栅格数据分区统计转面板数据,单波段、多波段数据都可以找到合适的方法
更多栅格计算相关内容请点击阅读原文