我有一组非常稀疏的数量测量值,在一个大陆的不同位置大约有 10 个测量值。位置分布极不规则。我想将这些平滑成整个大陆上规则间隔的网格上的值。
实际上,我们对相关数量有更密集的一组观察结果,并且正在开发技术以使用两组测量结果创建第一个数量的地图。目的是使用留一法交叉验证来估计这种混合方法的准确性(依次测试 10 个站点中的每一个,并使用所有其他站点加上额外的测量值创建地图)。作为基线,我首先需要看看使用 LOOCV 的地图有多准确,该地图仅由 10 个站点的原始网络创建。我还应该指出,这个数量会随着时间尺度的变化而变化,我们希望近乎实时地生成地图。
我不是地理空间技术方面的专家,但我了解克里金法的基础知识,并且在检查了 CRAN 的任务视图之后,似乎 automap 包中的 autoKrige 将是一个合适的功能。我得到的结果与我预期的完全不同,因此我们将不胜感激。
以下是一组输入训练数据的示例(一个特定时间的所有可用数据):
lat lon value
-27.53 152.92 98
-35.32 149.00 79
-34.05 150.67 81
-12.45 130.95 92
-42.92 147.32 73
-22.25 114.08 91
-29.03 167.97 108
-31.94 115.95 89
正如您所看到的,目标数量在大范围内具有一系列值。
我通过执行从包含 lat、lon 和值的数据框转换为 spatialPointsDataFrame
coordinates(xtrain) = ~lon + lat
coordinates(xtest) = ~lon + lat
proj4string(xtrain) <-CRS("")
proj4string(xtest) <-CRS("")
其中 xtest 包含我想要对地图进行采样的点网格。然后我使用 Krige
result <- autoKrige(value~1,xtrain,xtest)
我绘制结果
plot(result)
并得到以下图像
如您所见,结果本质上是所有点的平均值。我的理解是 autoKrige 应该已经确定了 Kriging 参数的最佳值,并产生了比这更现实的东西。只是为了说明,网格上预测值的范围是 0.22,这显然比输入值中看到的 30 点散布要小得多。
那么,我哪里错了?我是在滥用 R 包,还是在尝试使用克里金法时我的问题更根本?