用NA替换栅格中出现一次的值

时间:2014-06-27 13:40:42

标签: r arcgis

我有值的向量(从栅格生成 - 栅格包 - 按R中的函数 clump ):

values(rc)

1 NA NA NA  2 NA  2  2 NA NA NA NA NA NA NA  2 NA  2  2 NA  2  2 NA NA NA
NA NA NA NA  2 NA NA NA NA NA  3 NA  4 NA  2 NA  2 NA  5 NA NA  3 NA NA  4
NA NA  2 NA NA NA NA NA NA NA NA  4 NA NA NA NA NA NA  6 NA  7 NA  4 NA NA
NA  8  8 NA  6  6 NA NA NA NA  4 NA NA NA NA NA NA NA NA  4  4  4 NA NA  9
NA NA NA NA 10 NA NA NA NA  4 NA  9  9 NA NA NA NA 10 NA NA NA  4 NA NA NA
9 NA NA NA NA NA NA NA NA NA 11 NA NA NA 12 NA NA NA NA

我希望找到每个只出现一次的值(所以1,5,11,10)和用NA替换它。我想得到什么:

values(replaced_rc)

NA NA NA NA  2 NA  2  2 NA NA NA NA NA NA NA  2 NA  2  2 NA  2  2 NA NA NA
NA NA NA NA  2 NA NA NA NA NA  3 NA  4 NA  2 NA  2 NA  NA NA NA  3 NA NA  4
NA NA  2 NA NA NA NA NA NA NA NA  4 NA NA NA NA NA NA  6 NA  NA NA  4 NA NA
NA  8  8 NA  6  6 NA NA NA NA  4 NA NA NA NA NA NA NA NA  4  4  4 NA NA  9
NA NA NA NA 10 NA NA NA NA  4 NA  9  9 NA NA NA NA 10 NA NA NA  4 NA NA NA
9 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

问题在于我可以通过 clump 功能轻松识别光栅补丁。我想排除仅包含像素的补丁,类似于ENVI或ERDAS中的功能“筛”。有帮助吗?非常感谢。

来自R的例子:

library("raster")
r <- raster(ncols=12, nrows=12)
set.seed(0)
r[] <- round(runif(ncell(r))*0.7 )
plot(r)
rc <- clump(r)
replaced_rc<- ??? 

1 个答案:

答案 0 :(得分:3)

使用duplicated

values(rc)[!duplicated(values(rc)) & !duplicated(values(rc),fromLast=T)] <- NA