【问题标题】:Inverse Distance Weighted interpolation in a grid(Python)网格中的反距离加权插值(Python)
【发布时间】:2018-05-07 10:57:40
【问题描述】:

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

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

【问题讨论】:

  • 你想计算所有那些单元格的值吗?我一定是错过了什么......
  • 是的,我知道,但现在我只有这四个措施,也许我可以得到更多的措施,更重要的是如何面对一般的问题,有一个带有标签的网格和未标记的细胞

标签: python pandas interpolation


【解决方案1】:

我想出了如何解决它。 首先,我使用这个函数计算了每个标记单元格和每个未标记单元格之间的距离

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 的函数,它使用标准公式应用反加权距离插值。 之后,我能够为每个单元格获取一个标签,结果如下图:

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2021-07-05
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多