编程语言
首页 > 编程语言> > 反距离权重插值Matlab函数程序

反距离权重插值Matlab函数程序

作者:互联网

本人从事水文气象学的教学和研究,会经常遇到气象资料的空间插值问题。虽然Matlab提供了最邻近法、线性、样条等空间插值方法,但是没有反距离权重IDW(Inverse Distance Weighted)插值法。故这里编了IDW的函数程序如下: 测试了程序的正确性,计算结果画图如下。其中mesh网格为原始资料,散点为插值结果。

 

 

气象资料大多为nc格式,为了将资料处理成插值程序的输入格式,这里也编了插值点资料处理函数程序如下。这里的输入资料为三维矩阵(纬度*经度*时间)的资料,输出即为上面IDW函数所需要的X,Y,V。

 

 

这里的IDW插值程序,对于一般应用即可。关于反距离权重插值,还可以设置两个参数:一个是距离的方次,二是最邻近点的个数。这里用的2次方,变成参数的话设成输入变量即可。关于最邻近点的个数,对距离矩阵r,用sort函数排序一下再计算也很容易实现。ArcGIS里面默认用的2次方和最邻近的12个点。 欢迎交流和批评指正! 

标签:邻近,权重,插值,IDW,程序,距离,Matlab,资料
来源: https://blog.csdn.net/dengpeng83/article/details/79875482