想象一个光栅:
library(raster)
r = raster(nrow=3, ncol=3)
r[] = c(1,NA,1,1,NA,NA,1,NA,1)
plot(r)我如何按升序重新分类相邻的斑块(而不是对角线)?在这个例子中,地块左侧的三个单元格补丁被重新分类为'1',右上补丁为'2‘,右下角补丁为'3’。
实际重新分类的值(以及它们在栅格中出现的顺序)并不重要。重要的是,每个连接的“岛”(或单个细胞)都用一个新的、唯一的数字来表示。
发布于 2019-04-25 16:58:11
您可以使用raster::clump和参数directions=4在对角线上不连接(对于这个示例数据,不重要,因为没有这样的情况)。
library(raster)
r <- raster(nrow=3, ncol=3, xmx=0)
values(r) <- c(1,NA,1,1,NA,NA,1,NA,1)
x <- clump(r, directions=4)
plot(x)请注意,我添加xmx=0是为了避免出现全局光栅。没有这一点,就只有一个像经度一样的斑块- -180和180是相同的,因此第一列和最后一列的单元实际上是相连的。
https://stackoverflow.com/questions/55848930
复制相似问题