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 に答える