我确定这在 R 中是否可行,如果有人知道用其他程序做到这一点的方法,请告诉我
目前我有一个栅格,如果没有足够大的集群,我需要将一组像素转换为 NA 组。我目前的想法是将栅格转换为多边形,然后计算多边形区域并在多边形不够大时将其移除。唯一的问题是 rasterToPolygon
创建单层多边形,我无法单独索引每个多边形。有任何想法吗?下面是一个例子:
library(raster)
area <- raster(matrix(c(1:4,1),5,5))
shape <- rasterToPolygons(area,fun=function(x){x == 1},dissolve=TRUE)
最佳答案
溶解后可以disaggregate
多部分多边形再次变成单部分多边形。 disaggregate
SpatialPolygons*
的方法在 sp
包(如果你已经加载了 raster
,它应该已经加载了)。
library(sp)
shape2 <- disaggregate(shape)
shape2
## class : SpatialPolygonsDataFrame
## features : 2
## extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax)
## coord. ref. : NA
## variables : 1
## names : abc
## min values : 1
## max values : 1
多边形将具有指示其原始栅格值的属性。例如,您可以添加一个属性,为每个多边形提供一个唯一的 ID。
shape2$id <- factor(seq_len(length(shape2)))
spplot(shape2, 'id')
关于R将栅格转换为单个多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606557/