python反距离权重法_反距离权重插值(IDW)的python实现

反距离权重法(N-P法)是一种常见的网格化方法,用于将非规则分布点转换为规则分布点。其原理是离估算点越近的数据点影响越大。本文介绍了如何使用Python计算距离,并基于此实现反距离权重插值,通过遍历、排序和应用公式计算插值点的高程。代码示例中展示了具体的插值函数和距离计算函数,其中P取值为2。
摘要由CSDN通过智能技术生成

定义:

反距离加权法又称N-P法,是非规则分布点变成规则分布点常用的网格化方法之一。该方法的基本思想是离所估算的网格点距离越近的离散点对该网格点的影响越大,越远的离散点影响越小,甚至可以认为没有影响。在估算某一网格点的值时,假设离网格点最近的N个点对其有影响,那么这N个点对该网格点的影响与他们之间的距离成反比。

首先,需要计算所有离散数据点与所求网格点的距离,在二维平面空间,离散点(xi,yi)到网格(A,B)的距离Di为:

然后,需要找出离网格点(A,B)最近的N个离散点的距离,则网格点(A,B)上的估算值为:

其中, 为离散点 上的观测值, 为网格点(A, B)上的估算值, 为参与计算的样本个数, 为插值点与第 个站点间的距离, 是距离的幂,一般取2。

需求:

根据一些离散点(包含x,y,z坐标),定义一个包含着些离散点的的M*N的网格,求网格上的没一点的高程。

设网格点的x,y分别为lon,lat。离散采样点的集合为:lst

代码实现:

# lon和lat分别是要插值的点的x,y

# lst是已有数据的数组,结构为:[[x1,y1,z1],[x2,y2,z2],...]

# 返回值是插值点的高程

def interpolation(lon, lat, lst):

p0 = [lon, lat]

sum0 = 0

sum1 = 0

t

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值