2つの問題があります。重心がラスタ上にないグリッドのセルを削除します
問題1: 重心がラスタ上にないグリッドのすべてのセルを削除したいと思います。私は正しい「オブジェクトの種類」(RasterLayer、SpatialPixelsなど)で作業しているかどうかはわかりません。
以下のダミーデータで例を参照してください:
# Load package
library(raster)
# Create raster and define coordinate reference system
ras <- raster(nrows = 100, ncol = 100, xmn = 0, xmx = 100, ymn = 0, ymx = 100)
proj4string(ras) <- CRS("+init=epsg:32198")
# Generate random values
val <- sample(x = 1:100, size = ncell(ras), replace = T)
values(ras) <- val
# Create effort grid
xym <- matrix(c(-30,130,130,-30,-30,-30,130,130), nrow = 4, ncol = 2)
p <- Polygon(xym)
ps <- Polygons(list(p), 1)
sps <- SpatialPolygons(list(ps))
proj4string(sps) <- CRS("+init=epsg:32198")
data <- data.frame(f = 99.9)
spdf <- SpatialPolygonsDataFrame(sps, data)
ptsreg <- spsample(spdf, 50, type = "regular")
grid <- SpatialPixels(ptsreg)
# Plot raster over grid
plot(grid)
plot(ras, add = T)
問題2:は努力のグリッドを作成するための別の方法はありますか?私のコードは動作しますが、もっと簡単な方法があるとは思いますか?
また、この例では、グリッドを最初にプロットし、ラスタを追加しました。逆の方法(ラスターファーストとグリッドファースト)を行うと、結果のプロットはグリッドの全範囲を表示しません。
どのように私は、ラスタ上のグリッドをプロットするが、それでも全体のグリッドを表示することができますか?例:
別々の質問を2つの別々の投稿 – arvi1000