我有三个相同像素大小的重叠光栅。raster1的值为1-10,raster2的值为1-4,raster3的值为1-6.我想要创建一个新的图层,将它们的值粘贴在一起,以获得唯一的ID。例如,对于raster1=10、raster2=3、raster3=5中的像素,我希望输出是一个像素值为"10-3-5“的栅格。
发布于 2022-06-19 14:15:51
您可以在{terra}版本unique(x, as.raster=TRUE) 1.5-43中使用>=。这是目前的开发版本。你可以用install.packages('terra', repos='https://rspatial.r-universe.dev')安装它
示例数据
library(terra)
r <- rast(ncols=5, nrows=5)
values(r) <- rep(1:5, each=5)
s <- c(r, round(r/3), r+2)解决方案
u <- unique(s, as.raster=TRUE)检查结果
plot(u)
u
#class : SpatRaster
#dimensions : 5, 5, 1 (nrow, ncol, nlyr)
#resolution : 72, 36 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : lon/lat WGS 84
#source : memory
#categories : label, lyr.1, lyr.1.1, lyr.1.2
#name : label
#min value : 1_0_3
#max value : 5_2_7
levels(u)
#[[1]]
# ID label
#1 0 1_0_3
#2 1 2_1_4
#3 2 3_1_5
#4 3 4_1_6
#5 4 5_2_7https://stackoverflow.com/questions/72665364
复制相似问题