r-autoKrige函数的投影错误



我对autoKrig函数有问题,我试图在这里做一个可复制的例子:

library(automap)
library(raster)
library(dismo)
bio <- getData("worldclim", var="bio", res=10)
bio1 <- raster(bio, layer=1)
bio12 <- raster(bio, layer=12)
predictors <- stack(bio1, bio12)
bg <- randomPoints(bio1, 50)
data <- extract(predictors, bg)
data <- cbind(bg,data)
data <- data.frame(data)
coordinates(data)=~x+y
proj4string(data) = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
kg <- autoKrige(bio1~bio12, data, new_data=predictors)

这将导致:

Error in autoKrige(bio1 ~ bio12, data, new_data = predictors) : 
  Either input_data or new_data is in LongLat, please reproject.
   input_data:  +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
   new_data:    +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

我的原始数据也出现了同样的错误。我感谢你的帮助。

如果你阅读了帮助文件,它会告诉你为什么会抛出这个错误。

autoKrige对input_data的坐标系进行一些检查和new_ data。如果其中一个或两个都是NA,则为其指定的投影另一个。如果它们有不同的投影,就会出现错误。如果其中一个或两个都有非投影系统(即经纬度),则会引发错误。由于'gstat确实使用然而,当数据在地理坐标中时,球面距离通常的变差函数模型在球体,没有合适的模型可用"(Edzer Pebesma onr-sig-geo)

看起来您需要在调用autoKrige之前对数据进行投影。