如何按区域删除栅格部件

时间:2017-10-31 13:07:23

标签: r

有人知道如何根据区域删除某些光栅部分?

library(raster)
# create some raster data
r <- raster(ncols=12, nrows=12)
set.seed(0)
r[] <- round(runif(ncell(r))*0.7 )
rc <- clump(r)

在这个例子中,我有一些包含3个cels,4个单元格和5个单元格的片段,但是如何删除2个cels的路径?

1 个答案:

答案 0 :(得分:0)

也许这个?

r[is.na(match(values(rc), (1:maxValue(rc))[table(getValues(rc))>2]))] <- NA

我确信这是一个更优雅的解决方案。

table列出每个丛集ID的单元格数。识别出大于2的那些,并从向量(1:maxValue(rc))中提取这些ID。然后,使用match在clump栅格中找到具有这些ID的单元格。那些未找到的内容会返回NA,因此我会使用is.na进行检查。最后,原始栅格中的相应单元格将替换为NA