不规则网格的双线性插值填补数据空白

2024-04-27 10:21:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对高度数据的不规则网格执行双线性插值。这张草图粗略地展示了我的网格,一对x,y对。我只有米色的数据点,我想在中间插入所有的数据点。插值

我的y值在1-10之间,x值在70-290之间。对的z值在4880到5000之间变化,最小值在较小的x值上。 到目前为止,我只是用一个线性方程进行插值(这次不可能),所以我不太确定如何解决这个问题。我在考虑用Python或R来做

enter image description here

编辑: 一些示例数据:

v1 = (85,1,4880); v2 = (284,1,5008); v3 = (91,10,4883); 
v4 = (288,10,5008); v5 = (79,3,4879); v6 = (275,3,4995)

Tags: 数据网格编辑示例高度v3v2v4
1条回答
网友
1楼 · 发布于 2024-04-27 10:21:33

在R中,您可以使用来自akima的函数interp(),它使用了Akima, H. (1978)中提出的双线性插值算法。在

library(akima)

v1 = c(85,1,4880); v2 = c(284,1,5008); v3 = c(91,10,4883); 
v4 = c(288,10,5008); v5 = c(79,3,4879); v6 = c(275,3,4995)

dat <- as.data.frame(rbind(v1, v2, v3, v4, v5, v6))
colnames(dat) <- c("x", "y", "z")

ip <- with(dat, akima::interp(x, y, z))
with(ip, filled.contour(x, y, z))

enter image description here


转换为Raster对象并导出

^{pr2}$

相关问题 更多 >