如何更改 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 以便我可以正确更改颜色?
您可以使用 rasterize
和 cover
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)
我有计算得出的栅格数据。问题在于国家边界内的某些值为 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 以便我可以正确更改颜色?
您可以使用 rasterize
和 cover
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)