1

我的 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 

我的原始数据出现同样的错误。我很感激任何帮助。

4

1 回答 1

3

如果您阅读帮助文件,它将告诉您为什么会抛出该错误。

autoKrige 对 input_data 和 new_data 的坐标系进行一些检查。如果一个或两个都是 NA,则分配另一个的投影。如果它们有不同的预测,则会引发错误。 如果一个或两个具有非投影系统(即纬度-经度),则会引发错误。出现此错误是因为“当数据位于地理坐标中时,gstat 确实使用球面距离,但是通常的变异函数模型在球面上通常不是非负定的,并且没有合适的模型可用”(R-sig-geo 上的 Edzer Pebesma )。

看起来您需要在调用autoKrige.

于 2013-07-19T17:54:46.327 回答