2

我想使用 R 中的 autokrige 函数对数据集应用通用克里金法。我想为预测点创建自己的自定义空间网格(用于 autokrige 的 new_data 参数)。我正在使用 R 版本 3.2.2(64 位)和 RStudio 版本 0.99.486。以下是我到目前为止所做的:

library(automap)
library(sp)
library(gstat)
library(raster)
library(rgdal)

data(meuse)
coordinates(meuse) <- ~x + y
proj4string(meuse) <- CRS("+init=epsg:28992")

以下代码是从此处的 stackexchange 收到的(感谢 Jeffrey Evans),用于为预测值创建自定义空间网格:

ext_meuse <- as(extent(meuse), "SpatialPolygons")
r_meuse <- rasterToPoints(raster(ext_meuse, resolution = 59), spatial = TRUE)
proj4string(r_meuse) <- proj4string(meuse)

然后我尝试使用 autoKrige 应用通用克里金法(“dist”列上的回归):

kriging_result = autoKrige(zinc~dist, meuse, r_meuse)

然后收到以下错误:

model.frame.default 中的错误(terms.f,newdata,na.action = na.action,:对象不是矩阵另外:警告消息:'newdata' 有 3102 行,但找到的变量有 1 行

我在创建网格 (r_meuse) 时犯了错误吗?有没有“更好”的方法来为预测数据创建网格?到目前为止,我发现的所有示例都使用了 meuse.grid 数据,但我想将通用克里金法应用于其他还没有自己的网格数据的数据。

4

1 回答 1

0

我认为这里的问题是您在执行 UK 时没有预测器dist, 存在于r_meuse. 这是一个问题,因为线性进行预测需要这些信息。所以,r_meuse需要一个SpatialPointsDataFramewithdist定义。

于 2017-02-23T16:08:35.277 回答