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

1 什么叫反距离权重插值?反距离权重:距离未知点最近的点分配的权重较大,且权重作为距离的函数而减小。

插值:利用已知点数据计算未知点数据,如下图所示:

红色为已知点,蓝色为未知点,可通过线性插值得到。

近点的影响比远点的大,可通过设定固定的最近邻居个数来计算紫色未知点。

此外,还可通过设置查找半径的方式进行空间插值。

插值点是根据它们与已知像元值的距离来估计的。更接近已知值的点将比更远的点受到更大的影响。如果幂为1,则是平滑插值曲面。

如果幂为2,峰值更加局部化,不像 1 那样平均。

假设选定最近的3个邻居,邻居与紫色点的距离为:

则根据反距离权重的公式:

当幂为1时,得到紫色点的值为:

((12/350) + (10/750) + (10/850)) / ((1/350) + (1/750) + (1/850)) = 11.1

当幂为2时,得到紫色点的值为:

((12/350^2) + (10/750^2) + (10/850^2)) / ((1/350^2) + (1/750^2) + (1/850^2)) = 11.4

从公式中可以发现,权重与反距离(数据点与未知点之间)的p次幂成正比。随着距离的增加,权重将迅速降低。权重下降的速度取决于p值。如果p=0,则表示权重不随距离减小,且因每个权重的值均相同,未知点的值将是搜索邻域内的所有数据值的平均值。随着p值的增大较远数据点的权重将迅速减小。如果p值极大,则仅最邻近的数据点会对未知点产生影响。

可通过最小化均方根预测误差(RMSPE)确定最佳幂值。RMSPE是在交叉验证过程中计算出的统计数据。提供最小化均方根预测误差的幂为最佳幂

2 python 实现1) 使用scipy插值https://github.com/mengjizhiyou/inverse_distance_weighting

2) 使用pyidw插值https://github.com/yahyatamim/pyidwfrompyidw import idw

idw.regression_idw_interpolation(input_point_shapefile="Bangladesh_Temperature.shp",input_raster_file="Bangladesh_Elevation.tif",extent_shapefile="Bangladesh_Border.shp",column_name="Min_Temp",power=2,polynomial_degree=1,search_radious=5,output_resolution=250,)

参考:

https://gisgeography.com/inverse-distance-weighting-idw-interpolation/

「点点赞赏,手留余香」

赞赏

  • 0人赞过
0
0
0
评论 0 请文明上网,理性发言

相关文章

  • 现状揭秘:Python岗位大厂50K起?程序员:心态崩了! 屠杀各种榜单,拿下语言排行榜的Python,薪酬真的如同网传开挂了吗?笔者在脉脉上发现了这样的一个信息: 但Python真的这么火?笔者准备去全网帮你们"打探"一下,让大家了解真实的Python市场。 (数据来自看准网2019年11.4日数据)从上图看,P
    饯莸抟 9 2 0 条评论
  • 一些科学家开始使用比Python性能更强大的新编程语言了,它和Python一样能够"立等可取",而且计算能力还更强。 原文作者:JeffreyM.Perkel2015年,生物信息学家JohannesK?ster还是(用他自己的话说)"差不多全职写Python的"。他当时已经用Python写过一个备受欢迎的工具--流程管
    乱世知己琪哪 8 1 0 条评论
  • 为什么Python不是未来的编程语言? 作者|RheaMoutafis 译者|弯月,责编|郭芮 出品|CSDN(ID:CSDNnews) 以下是译文:Python经过了几十年的努力才得到了编程社区的赏识。自2010年以来,Python得到了蓬勃发展,并最终超越了C、C#、Java和JavaScript。 但是,这种趋
    天王地虎happy 4 0 0 条评论
  • Python之父,现在成了微软的打工人。 没错,全世界程序员们最喜欢的编程语言的创造者,自述耐不住退休生活的寂寞,重返岗位发光发热。 GuidoVanRossum,打算去微软做些什么?又为什么选择微软? Python之父加入微软干什么? 几个小时前,GuidoVanRossum本人发推宣布了这个消息,他说:"退休生
    路茫之间 5 2 0 条评论
  • 大数据文摘出品 来源:medium 编译:陈之炎、coolboy 自从20世纪90年代初发布以来,Python一直相当火爆,在这二十多年里,它的流行程度远远超过了C、C#、Java甚至Javascript。 虽然Python在数据科学和机器学习领域占主导地位,甚至是科学和数学计算领域的主角,但与Julia、Swift
    ahdhtang 5 0 0 条评论
  • Bottle是一个超轻量级的python库。说是库,其本身只由一个4000行左右的文件构成,并且不需要任何依赖,只靠python标准库即可运作。 和它本身的轻便一样,Bottle库的使用也十分简单。相信在看到本文前,读者对python也已经有了简单的了解。那么究竟何种神秘的操作,才能用百行代码完成一个服务器的功能?让我
    超级超级 4 3 0 条评论
  • 终于,Python3.11正式版发布了! 2020年1月1日,Python官方结束了对Python2的维护,这意味着Python2已完全退休,进入了Python3时代。打从进入3版本以来,Python官方已经发布了众多修改分支,现在来到了最新的版本Python3.11。 其实研究界有个不公开的秘密,那就是Python
    書与南柯RD 6 0 0 条评论
  • 据澎湃新闻近日消息,山东省在其最新出版的小学信息技术六年级教材中,加入了Python的内容。在此之前,编程界也一直有传言,称浙江省将对中学信息技术教材进行改动,弃VB(VisualBasic6.0)而选用Python。 事情真的会如程序员们期待的那样发展吗?Python语言又为什么突然受到了格外的重视呢? VB做错了什
    高数次 4 1 0 条评论
  • 模拟键盘操作执行自动化任务,我们常用的有pyautowin等自动化操作模块。但是这些模块有一个很大的缺点,编译的时候非常依赖windows的C语言底层模块。 今天介绍的这个模块叫做keyboard它有一个最大的优点:纯Python原生开发,编译时完全不需要依赖C语言模块。一行命令就能完成安装,非常方便。 1.准备 首
    爱在你身边白羊 6 8 0 条评论
  • 来源:内容由半导体行业观察(ID:icbank)编译自hpcwire,谢谢。 近日,加州大学洛杉矶分校引入了一种新的硬件描述语言PyGears,以实现基于可重用组件和高级Python构造的敏捷芯片设计理念。PyGears是对快速发展的软件世界的回应,这要求硬件设计与可扩展和智能未来的需求保持同步。 据官网介绍PyGea
    文仔230 7 0 0 条评论