将斑驳栅格重新分类为顺序编号的区域

时间:2019-04-25 12:05:48

标签: r raster r-raster

想象一个光栅:

library(raster)

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

如何按升序对连续补丁(不在对角线上)进行分类?在此示例中,图左侧的三单元补丁被重分类为“ 1”,右上补丁被重分类为“ 2”,右下补丁被重分类为“ 3”。

实际的重新分类值(以及它们在栅格中出现的顺序)并不重要。重要的是,每个相连的(或单个单元)“岛”都用一个新的唯一数字表示。

1 个答案:

答案 0 :(得分:1)

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