0

gstat()と を使用して逆距離加重ラスターを作成しようとしていますraster::interpolate()。gstat 関数の数式引数に列名を渡す際に問題が発生しています。

列名のハードコーディングは問題なく機能します。

gs <- gstat(formula=v1~1, locations = data)
r <- raster(shape, res=1000, crs = crs(data))
idw <- raster::interpolate(r, gs)
idwr <- mask(r, gs)
plot(idwr)

ここに画像の説明を入力

これを関数にラップして、複数の列名をループできるようにすると、エラーがスローされます。

apply_gstat <- function(col_name, data = data, shape = shape) {
    gs <- gstat(formula=col_name~1, locations = data)
    r <- raster(shape, res=1000, crs = crs(data))
    ## interpolate() throws an error because of issue with gstat
    idw <- raster::interpolate(r, gs)
    idwr <- mask(r, gs)
    plot(idwr)
}

col_names <- c("v1", "v2", "v3")
lapply(col_names, function(x) {
    gstat_apply(col_name = x, data = data, shape = shape)
}


Error in predict.gstat(model, blockvals, debug.level = debug.level, ...) : 
  too many spatial dimensions: 18
In addition: Warning message:
In predict.gstat(model, blockvals, debug.level = debug.level, ...) :
  NAs introduced by coercion
4

1 に答える 1