【问题标题】:R convert raster to individual polygonsR将栅格转换为单个多边形
【发布时间】:2016-06-07 00:04:09
【问题描述】:

我确定这在 R 中是否可行,如果有人知道用其他程序执行此操作的方法,请告诉我

目前我有一个光栅,如果没有足够大的集群,我需要将一组像素变成一个 NA 组。我目前的想法是将栅格转换为多边形,然后计算多边形面积并在多边形不够大时将其删除。唯一的问题是rasterToPolygon 创建了一层多边形,我无法单独索引每个多边形。有任何想法吗?这是一个例子:

library(raster)
area <- raster(matrix(c(1:4,1),5,5))
shape <- rasterToPolygons(area,fun=function(x){x == 1},dissolve=TRUE)

【问题讨论】:

  • 您的栅格中的组是否总是按行排列?或者这些组可以随机分布在栅格上吗?

标签: r polygon raster


【解决方案1】:

溶解后,您可以再次将多部分多边形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')

【讨论】:

    猜你喜欢
    • 2019-03-21
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2018-05-19
    • 2019-05-06
    • 2018-08-19
    • 1970-01-01
    相关资源
    最近更新 更多