20x20m セル サイズの土壌サンプル データに autoKrige (自動マップ ライブラリ) を実装するモジュールの開発に忙殺されています。クリギングが完了したら、クリギングの結果をフィールドの境界でトリミング/マスクしたいと思います。
クロッピング/マスキングの問題は、(20x20 セルのため) フィールドの境界が「ステップ」効果を与えることです。私が探しているのは、滑らかな境界 (セルを切り開く) です。
以下は、上記で説明した 2 つのシナリオを生成するコードです。
library(sp)
library(rgeos)
#create polygon
r1 <- cbind(c(641777, 642290, 642276, 641794), c(7036885, 7036743, 7036154, 7036146))
r2 <- cbind(c(642320, 642478, 642494, 642314), c(7036732, 7036699, 7036296, 7036290))
sr1 <- Polygons(list(Polygon(r1)),"r1")
sr2 <- Polygons(list(Polygon(r2)),"r2")
boundary.sp <- SpatialPolygons(list(sr1,sr2))
boundary.sp@proj4string <- CRS('+proj=utm +zone=35 +south +datum=WGS84 +units=m +no_defs')
#create bounding box grid
bbox <- bbox(boundary.sp)
boundary.grid <- expand.grid(x = seq(from = bbox[1], to = bbox[3], by = 20), y = seq(from = bbox[2], to = bbox[4], by = 20))
coordinates(boundary.grid) <- ~x + y
gridded(boundary.grid) <- TRUE
boundary.grid@proj4string <- boundary.sp@proj4string
#create SpatialPixels grid
boundary.grid.stepped <- boundary.grid[!is.na(over(boundary.grid, boundary.sp)),]
plot(boundary.grid.stepped)
#cut grid with polygon to create SpatialPolygons grid
boundary.poly.grid <- as.SpatialPolygons.GridTopology(getGridTopology(boundary.grid), proj4string = CRS('+proj=utm +zone=35 +south +datum=WGS84 +units=m +no_defs'))
boundary.grid.smooth <- gIntersection(boundary.poly.grid, boundary.sp, byid=TRUE)
plot(boundary.grid.smooth)
現在、上記のグリッド (boundary.grid.stepped) は、autoKrige を呼び出すときに「new_data」パラメーターとして渡されます。
どちらがより良いアプローチであり、それを実装するにはどうすればよいですか:
1) ターゲットグリッドを事前に準備し、それを「new_data」として使用するか、
2) バウンディング ボックス グリッドにクリギングを実行し、後でカット/クロップ/マスクしますか?