2013-07-19 28 views
1

我有autoKrig功能的問題,我試圖在這裏做重複的例子:與autoKrige功能投影錯誤

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 

我得到同樣的錯誤與我的原始數據。我感謝任何幫助。

回答

3

如果您閱讀幫助文件,它會告訴您爲什麼它會拋出該錯誤。

autoKrige對input_data 和new_data的座標系執行一些檢查。如果其中一個或兩個都是NA,則分配其他投影 。如果他們有不同的預測,則會產生錯誤。 如果其中一個或兩個都有非投影系統(即緯度 - 經度),則會引發錯誤。由於'gstat在地理座標中使用 球面距離,但是 通常的變異函數模型通常不是非負確定球體,並且沒有合適的模型可用'(Edzer Pebesma on r -sig-GEO)。

看起來您需要在調用autoKrige之前投影您的數據。

+0

謝謝,但由於錯誤顯示我的輸入和輸出都有相同的投影。 –

+0

@ N16您的數據在'longlat'投影中,幫助文件詳細描述爲「非投影系統(即緯度 - 經度)」。 – ialm

+0

所以在這種情況下,你推薦什麼?我的數據集是全球性的。 –