簡體   English   中英

雙線性插值用於不規則網格以填充數據間隙

[英]Bilinear interpolation for irregular grid to fill data gaps

我想對高度數據的不規則網格執行雙線性插值。 草圖粗略地向我的網格顯示了x,y對的一些示例。我只有米色數據點,並且想要對兩者之間的所有值進行插值。 插補

我的y的范圍是1-10,我的x的范圍是70-290。 該對的z在4880和5000之間變化,最小值在較小的x值上。 到目前為止,我僅使用線性方程式進行插值(這是不可能的),因此我不確定如何解決此問題。 我正在考慮在Python或R中執行此操作。

在此處輸入圖片說明

編輯:一些示例數據:

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

在R中,您可以使用來自akima的函數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))

在此處輸入圖片說明


轉換為Raster對象並導出

ip.r <- raster(ip$z)
extent(ip.r) <- extent(ip[1:2])
ip.r <- t(ip.r)

writeRaster(ip.r, "bilinear.tif")

ip.r_norm <- ip.r-minValue(ip.r)
ip.r_norm <- ip.r_norm/maxValue(ip.r_norm)

writeRaster(ip.r_norm, "bilinear_norm.tif")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM