首页 > 解决方案 > R-interp:相同的输入和输出坐标(x,y,xo,yo),多个数据值向量(z)。我可以跳过一些步骤吗?

问题描述

我必须从相同的输入坐标(x,y)到相同的输出坐标(xo,yo)执行多个二维线性插值。每次只有数据值 (z) 发生变化 (z1,z2,z3,...)。

我一直在 R 上使用包 interp。到目前为止,我已经多次调用命令“interp”。像这样:

# create data 
y <- rep(1:5,5)      # input coords
x <- rep(1:5,each=5)
z1 <- 1:25           # data
z2 <- 25:1
xo <- c(1.1,2.2,3.3) # output coords
yo <- c(2.2,3.3,4.4)

# interpolate 
library(interp)
z1.int <- interp(x,y,z1,xo,yo,output="points")[[3]]; z1.int
z2.int <- interp(x,y,z2,xo,yo,output="points")[[3]]; z2.int

# plot (optional)
layout(t(1:2))
plot(x,y,type='n'); text(x,y,z1,col='red'); text(xo,yo,z1.int)
plot(x,y,type='n'); text(x,y,z2,col='red'); text(xo,yo,z2.int)

但是,我怀疑有一种方法可以大大加快我的计算速度。插值过程由多个步骤组成。我认为其中一些只需要执行一次,然后将它们的结果多次用于多个数据向量。

有没有办法做到这一点?

标签: rinterpolationlinear-interpolationspatial-interpolation

解决方案


推荐阅读