r语言 - 将斑驳栅格重分类为按顺序编号的区域



想象一个栅格:

library(raster)
r = raster(nrow=3, ncol=3)
r[] = c(1,NA,1,1,NA,NA,1,NA,1)
plot(r)

如何按升序对连续的色域(不在对角线上(进行重分类?在此示例中,图左侧的三单元格图块被重新分类为"1",右上角的图块被重新分类为"2",右下图块被重新分类为"3"。

实际的重分类值(以及它们在栅格中的显示顺序(并不重要。重要的是,连接(或单个细胞(的每个"孤岛"都由一个新的、唯一的数字表示。

>您可以将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 是相同的,因此第一列和最后一列的单元格实际上是连接的。

最新更新