我有一个按位置排列的海洋深度数据网格,并且正在尝试为选定的 GPS 点插入深度值。
我们一直在使用 RSAGA::pick.from.points,它对于小数据集效果很好。
require(RSAGA)
depthdata <- cbind.data.frame(x=c(74.136, 74.135, 74.134, 74.133, 74.132, 74.131, 74.130, 74.129, 74.128, 74.127),
y=rep(40, times=10),
depth=c(-0.6, -0.6, -0.9, -0.9, -0.9, -0.9, -0.9, -0.9, -0.6, -0.6))
mylocs <- rbind(c(-74.1325, 40), c(-74.1305, 40))
colnames(mylocs) <- c("x", "y")
results <- pick.from.points(data=mylocs, src=depthdata, pick=c("depth"), method="nearest.neighbour")
mydepths <- results$depth
但我们的深度数据集包含 6900 万个数据点,并且需要估计深度的 500 万个 GPS 点,而 pick.from.points 对于该数据集花费的时间太长(> 2 周)。我们认为我们可以在 MATLAB 或 ArcMap 中更快地完成此任务,但我们正在尝试将此任务合并到 R 中更长的工作流程中,我们正在编写该工作流程供其他人重复运行,因此部分时间切换到专有软件该工作流程不太理想。
我们愿意为了速度而牺牲一定程度的准确性。
我已尽我所能寻找最好的解决方案,但我对网格数据和插值相当陌生,因此可能使用了不适当的语言,因此缺少一个简单的解决方案。