反距离加权插值(Inverse Distance Weight,IDW)主要是基于地理学第一定律,根据待插值点与样本点之间的距离的倒数来确定待插值点的值,即待插值点距离样本点越远,则受到的影响越小,反之则越大。

有关地理学第一定律的内容可以参照该博文:地理学第一定律

反距离加权插值方法计算简单,计算效率和精度也较高,是较为常用的一种插值方法,通常用于温度、降雨等二维场的插值当中。其计算公式如下:

反距离加权法python 反距离加权法求值_C++

反距离加权法python 反距离加权法求值_arcgis_02


式中的k即为权重,一般取1-2,在计算时通常取2。

插值实现

反距离加权插值在计算时常用的方法主要为自己编写代码实现和使用软件,这里提供两种方法,分别为使用ArcGIS编写C++代码实现。

1.使用ArcGIS实现反距离加权插值

首先打开ArcGIS,在工具箱中找到“Geostatistical Analysis”----“插值分析”----“反距离权重法”,如下图

反距离加权法python 反距离加权法求值_反距离加权法python_03


接着分别输入需要计算的要素,输入要素需要输入点要素,然后选择所要插值的字段,如温度、降水等,这两个输入好后,其他的可以不选,或者根据需要来进行设置。

反距离加权法python 反距离加权法求值_插值算法_04


最后点击确定,等待计算完成就可以了。

2.使用C++代码实现

使用C++代码实现也比较简单,主要是需要计算待插值点与样本点之间的距离,涉及到一个领域选取的问题,其他的按照公式计算就可以了。这里基于C++实现了多种插值算法,包括反距离加权插值,提供了源代码和界面,有需要的可以直接下载使用。