r - R 中用于 3D 表面预测的薄板样条

标签 r spline

我尝试过这个答案

get a surface plot in R

但这并没有真正帮助。 我想在 XYZ 数据帧上执行 TPS(使用 Fields{} 中的 Tps),其中 xy 是坐标,z 是厚度。然后我想首先在 TPS 之前可视化情节,然后在 TPS 之后可视化..?这可能吗。 然后我想提取给定的一组新 xy 坐标的预测厚度..?

如果可行,请告诉我

我的数据框看起来像这样,数据框称为LSP:

time   PART   MEAS    PARTSUB   XLOC   YLOC
xxxx   1      1.956   a         -3465  -94350
xxxx   1      1.962   a         -3465  -53850
xxxx   1      1.951   a         50435  -40350
xxxx   1      1.958   a         -57365 -40350

所以我尝试了这个:

LSP.spline <- Tps(LSP[,5:6], LSP$MEAS)
out.p <- predict.surface(LSP.spline, xy = c(1,2))
plot.surface(out.p, type="p")

但是 out.p 只是 NULL..?

所以尝试情节给了我:

Error in nrow(z) : argument "z" is missing, with no default

感谢任何帮助。 保罗。

最佳答案

predict.surface 现在是一个过时/已弃用的函数。请改用 predictSurface

fit<- Tps( BD[,1:4], BD$lnya)  # fit surface to data 

# evaluate fitted surface for  first two 
# variables holding other two fixed at median values

out.p<- predictSurface(fit)
surface(out.p, type="C") 

enter image description here

Thanks for that - how about my second question....how can I extract predicted surface thickness values for a given set of XY locations..?

使用预测函数。阅读 ?predict.Tps。对于上面的例子,假设我们想要预测 BD[, 1:4] 中的前 4 个位置,我们可以这样做

predict(fit, x = BD[1:4, 1:4])

#          [,1]
#[1,] 11.804124
#[2,] 11.804124
#[3,]  8.069056
#[4,]  9.501551

一般来说,传递x一个两列矩阵。

关于r - R 中用于 3D 表面预测的薄板样条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40528507/

相关文章:

python - 二维线性插值产生数据范围之外的结果

r - 根据 dplyr 中的字符串(或字符串向量)应用过滤器向量

R 无效的下标类型 double

c++ - 究竟什么是结(b 样条)

算法:如何在追踪的直线或曲线上找到位置?

python - 如何在 python 中执行三次样条插值?

computational-geometry - 实现数据点的闭合 B 样条插值

r - 使用 R 中的 mutate 一次生成多个列

r - R中的加权欧几里得距离

r - 使用变量调用 R 中的特定列?