如何更改 r 中栅格数据的 shapefile 边界外的 NA 值?

How can I change NA values outside of the border of a shapefile for raster data in r?

我有计算得出的栅格数据。问题在于国家边界内的某些值为 0。因此在国家边界及其 shapefile 以及外部都有 NA 值。因此,当我更改边界内外的 NA 值的颜色时,颜色会发生变化。

Map<- rgdal::readOGR("x") 
Borders <- subset(Map, OBJECTID == "1")

myTheme <- RdBuTheme(cex= 0.6)
myTheme$panel.background$col = 'gray'
Rasterdata[is.na(Rasterdata)] <- 0
levelplot(Rasterdata, par.settings= myTheme) + latticeExtra::layer(sp.points(Borders, lwd = 1,5)

有谁知道如何将此 Borders shapefile 之外的值再次设置为 NA 以便我可以正确更改颜色?

您可以使用 rasterizecover

library(terra)
# raster data with NA's inside and outside the country
r <- rast(system.file("ex/elev.tif", package="terra"))
r[40:50,] <- NA

# borders of the country
v <- vect( system.file("ex/lux.shp", package="terra") )

# rasterize borders
x <- rasterize(v, r, 0)

# replace NA's inside country with zero 
rr <- cover(r, x)

plot(rr)