我想使用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 here收到以下代码(归功于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数据,但是我想将通用克里金法应用于其他没有自己的网格数据的数据。
答案 0 :(得分:0)
我认为这里的问题是你在没有预测变量dist
的情况下执行英国r_meuse
。这是一个问题,因为线性需要信息来进行预测。因此,r_meuse
必须是定义SpatialPointsDataFrame
的{{1}}。