我确信如果这在R中是可能的,如果有人知道用其他程序做这件事的方法,请让我知道
目前我有一个栅格,如果没有足够大的簇,我需要将一组像素转换为安娜组。我目前的想法是将栅格转换为多边形,然后计算多边形面积,如果多边形不够大,则将其删除。唯一的问题是,rasterToPolygon
只创建了一层多边形,而我无法对每个多边形分别进行索引。有什么想法吗?下面是一个示例:
library(raster)
area <- raster(matrix(c(1:4,1),5,5))
shape <- rasterToPolygons(area,fun=function(x){x == 1},dissolve=TRUE)
发布于 2016-03-01 17:06:46
融合后,可以再次将多部分多边形disaggregate
为单部分多边形。SpatialPolygons*
的disaggregate
方法在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')
https://stackoverflow.com/questions/35606557
复制