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