我正在尝试在意大利上播种this raster,但是输出似乎错过了边境沿线的一些牢房。请参见下图中以红色突出显示的区域:
如何保留所有越过边界的牢房?
下面是我的脚本:
library(raster)
# Load data
x <- raster("x.nc")
IT <- getData(name = "GADM", country = "Italy", level = 0)
# Mask and crop
x_masked <- mask(x, IT)
x_masked_cropped <- crop(x_masked, IT)
# Plot
plot(x_masked_cropped)
plot(IT, add = T)
最佳答案
您可以识别所有与义大利相交的栅格像元,然后将其余的非相交像素设置为NA。确保通过cellFromPolygon(..., weights = TRUE)
检索具有各自权重的像元-否则,将仅返回其中心位于意大利内的像元(另请参见?raster::extract
)。
## identify cells covering italy and set all remaining pixels to NA
cls <- cellFromPolygon(x, IT, weights = TRUE)[[1]][, "cell"]
x[][-cls] <- NA
plot(trim(x))
plot(IT, add = TRUE)