网格中的反距离加权插值(Python)

Inverse Distance Weighted interpolation in a grid(Python)

我的问题设置如下: 我有一个由细胞组成的网格,每个细胞都有相同的尺寸。 只有 4 个单元格被标记(包含一个度量)并在图像中由一些点指示。 在我的 python 程序中,我有一个数据框,其中每一行代表一个网格 cell.Each 单元格具有其协调和标签(即 None 用于除包含的 4 个单元格之外的所有单元格一个措施)。

我想做的是:使用反加权插值法为我的网格中每个未标记的单元格获取一个度量(标签)。 你对如何面对这个问题有什么建议吗,或者你知道是否有类似的代码示例可以做同样的事情。任何帮助表示赞赏。 谢谢!

我想出了解决办法。 首先,我计算了每个标记细胞和每个未标记细胞之间的距离,使用这个函数

def haversine(lon1, lat1, lon2, lat2):
"""
Calculate the great circle distance between two points 
on the earth (specified in decimal degrees)
"""
# convert decimal degrees to radians 
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
# haversine formula 
dlon = lon2 - lon1 
dlat = lat2 - lat1 
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a)) 
# Radius of earth in kilometers is 6371
km = 6371* c
return km

然后我创建了一个名为 iwd 的函数,它使用标准公式应用反加权距离插值。 之后我能够为每个单元格获得一个标签,结果如下图: