将斑块光栅重新分类为顺序编号的区域

问题描述 投票:0回答:1

想象一个栅格:

library(raster)

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

我怎么能按升序重新分类连续的补丁(不在对角线上)?在此示例中,绘图左侧的三单元贴片被重新分类为“1”,右上角贴片重新分类为“2”,右下角贴片重新分类为“3”。

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

r raster r-raster
1个回答
1
投票

你可以使用带有参数raster::clumpdirections=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是相同的,因此第一列和最后一列的单元实际上是连接的。

© www.soinside.com 2019 - 2024. All rights reserved.