分享

白话空间统计二十九:空间插值(五)

 godxiasad 2023-04-21 发布于北京

前文再续,书接上一回……上回书说道虾神晒出了一张狗爬一样的手写草稿,记录了一次手算插值的过程,那今天我们就来详细解析的一下插值分析里面最简单的IDW插值的全套计算流程:

第一步,是要获取影响插值结果的观测点的子集,这个子集一般是通过参数设定来决定获取方法的,比如我们用可变模式,认为需要获取到5个点(如果有的话):

这里的标黄的格子,就是我们要插值的区域,而p1-p5这个五个点,就是我们要参与计算的观测点子集。

何一个位置获取最近的N个位置,也就是空间计算里面的临近分析,是最常见的分析手段,各种算法汗牛充栋,我就不啰嗦,如果对空间分析算法不熟悉的,你可以认为我们就暴力查找所有的点,然后按照距离排序,选最前面的N个就好了。

第二步,就是计算权重,这个权重又是按照距离来获得的,所以第一步,就是要获取要插值的位置,与进行插值的子集之间的一个距离集合:

比如我们通过临近分析,得到这样一个距离数据的集合:

有距离,我们就可以来计算每个点,对于要插值的位置的影响权重了。计算的公式如下:

好吧,我知道很多同学有公式恐惧症……那么我们就把这个公式拆成小学三年级的期中考试水平好了:

首先,我们先看这个权重的分子是如何计算的:

我们的子集一共是5个点,所以公式下半部分的n= 5,而取p = -2,那么公式的下半部分就是:

有了公共的分母部分,接下去再逐个来计算每个点的权重:

每个点的权重就计算完成了,是不是灰常简单啊……

下面,就可以把每个观测点的值,带入到这个权重中进行预测计算了:

到此,一个需要预测的位置计算完成。

那么我们插值的结果如果是一个栅格,那么每个栅格都需要进行预测,就需要进行若干次循环,最终完成插值。

所以在插值工具里面,还有这样个参数:

这个参数就是你后面用来承载插值结果的栅格的每个格子的大小,越,结果越平滑,但是计算量越大,生成的栅格也越大,而且是几何级数的增长;越速度越,但是锯齿也越严重。

选择一个合适的大小是比较重要,一般来说,系统会先给一个默认值,那么用默认值插值之后,根据需要去调整就行了,记住,调整的规则是几何级数的:

如果大小为1,需要10秒的话,那么你设置大小为0.1(缩小10倍),就有可能需要1000秒(增大了100倍)才会出结果了,几何级数。

下面我们来看看如何用ArcGIS进行IDW插值:

在ArcGIS里面,一共三个模块有插值分析,分别是

3D 分析:

地统计分析:

空间分析:

三者的核心算法是一模一样的,只是稍微有几个参数不太一样(主要是地统计模块里面设置更为详细一些),所以我们这次以空间分析这个模块里面的IDW工具为例来讲一下:

ArcGIS的这些通用插值工具,都是用点数据进行插值的,需要有一份点的数据,最好采用投影坐标系(地理坐标系虽然不会报错,但是会被质疑正确性)。比如我下面这份华北区城市的天气观测数据,用的是web墨卡托的投影:

用于插值的字段,必须是数值型的,如果是文本类型,会无法查找到,这份数据里面,只有日最高和最低温度是数值型的:

有了数据之后,就很容易做了,比如我们要最高温度来进行插值,首先找到工具:

然后双击打开,填入参数,各参数的意义如下:

实际上做探索性分析的话,第一次仅需要选择插值的点图层,然后选择插值的字段就行,其他的全部用默认,之后再逐步去调整各个参数,全部设置完之后,直接点击OK:

因为数据量很小,所以很快就能分析完,比如我机器上,2.7秒就完成了。

查看结果:

一张默认的插值结果就出来了,我们还可以适当的设置一个色带,比如用冷-暖色带,那么最后就得到这样以一个插值结果,是不是灰常容易啊。

那么IDW还有那么多的参数,分别是用来干嘛的?我们下期继续。

下期预告:ArcGIS IDW工具不同参数的调优

最后测试数据的存放地址:

https://github.com/allenlu2008/PythonDemo

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多