我正在尝试在意大利上播种this raster,但是输出似乎错过了边境沿线的一些牢房。请参见下图中以红色突出显示的区域:
r - 使用多边形沿边界保留像元的R裁剪栅格-LMLPHP

如何保留所有越过边界的牢房?

下面是我的脚本:

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)


r - 使用多边形沿边界保留像元的R裁剪栅格-LMLPHP

08-25 08:07