R中的双三次/双线性插值

机器算法验证 r 插值
2022-04-01 10:49:48

我有一组x,y,z数据,我想做一个双三次插值。x 和 y 是空间坐标,z 是温度。

下面有两张图。第一个是我的数据集的(gnuplot)图,第二个是插值版本(set pm3d interpolate 10,10)。

现在我想在 R 中进行这种插值,但我想要一个值矩阵作为结果而不是绘图。climates软件包似乎在 R 中提供了此功能,但在 R 2.13 中不再适用。

是否有另一种方法/包可以按照我想要的方式在 R 中进行插值?

在此处输入图像描述 在此处输入图像描述

3个回答

查看akima包裹的interp.

这些函数在网格上为不规则间隔的输入数据实现二元插值。使用来自 Akima 的不同版本的算法应用双线性或双三次样条插值。

用法

interp(x, y, z, xo=seq(min(x), max(x), length = 40), yo=seq(min(y), max(y), length = 40), linear = TRUE, extrap=FALSE,重复=“错误”,dupfun = NULL,ncp = NULL)

我认为如果您的数据也有规律地间隔,它将起作用。

您可以image.smoothfields包装中使用。

要导出您插值的数据,您可以使用以下方式:

model <- interp(x, y, z, xo=seq(min(x), max(x), length = 40), yo=seq(min(y),
    max(y), length = 40), linear = TRUE, extrap=FALSE, duplicate = "error", 
    dupfun = NULL, ncp = NULL)
interpData <- model$z

加载以下库

library(rJava)
library(xlsxjars)
library(xlsx)

在您的硬盘中使用标题 multivariateInterp 在 Excel 中导出您的插值数据

write.xlsx (interpData, "c:/multivariateInterp.xlsx")