使用 sf 包溶解多边形特征
Dissolving polygon features with the sf package
溶解是一种常见的地理处理技术,作为一种 sf 方法进行讨论 here。
我正在尝试复制溶解在 ArcGIS 中的功能。在 ArcGIS 中按两个组考虑县。
ArcGIS 溶解命令生成两个多边形,而不管东部半岛由额外的独立多边形组成的事实。像这样:
这是我想在 sf 中复制的功能,但是我不能,如下所示。
nc <- st_read(system.file("shape/nc.shp", package="sf"))
#create two homogenous spatial groups
nc$group <- ifelse(nc$CNTY_ <= 1980,1,2)
#plot
ggplot() + geom_sf(data=nc, aes(fill = factor(group)))
#dissolve
nc_dissolve <- nc %>% group_by(group) %>% summarize()
#plot dissolved
ggplot() + geom_sf(data=nc_dissolve, aes(fill = factor(group)))
#Cartographically, it looks like we have two polygons, but there are
#actually several more wrapped up as MULTIPOLYGONS. We can plot these.
t <- nc_dissolve %>% st_cast() %>% st_cast("POLYGON")
ggplot() + geom_sf(data=t, aes(fill=factor(row.names(t))))
注意半岛有多个无关的多边形。
如何像 ArcGIS 案例那样只得到两个?非常感谢。
我不太熟悉 ArcGIS 如何定义多边形,但多边形的简单要素访问(ISO 标准)规范是一个具有零个或多个表示孔的内环的单环。这意味着在该规范下,如果您拥有大陆和几个岛屿,则不会有一个多边形。为了将这些表示为单个特征,相应的几何类型是多面体。这意味着您的答案在 nc_dissolve
中:它有两个特点。
溶解是一种常见的地理处理技术,作为一种 sf 方法进行讨论 here。
我正在尝试复制溶解在 ArcGIS 中的功能。在 ArcGIS 中按两个组考虑县。
ArcGIS 溶解命令生成两个多边形,而不管东部半岛由额外的独立多边形组成的事实。像这样:
这是我想在 sf 中复制的功能,但是我不能,如下所示。
nc <- st_read(system.file("shape/nc.shp", package="sf"))
#create two homogenous spatial groups
nc$group <- ifelse(nc$CNTY_ <= 1980,1,2)
#plot
ggplot() + geom_sf(data=nc, aes(fill = factor(group)))
#dissolve
nc_dissolve <- nc %>% group_by(group) %>% summarize()
#plot dissolved
ggplot() + geom_sf(data=nc_dissolve, aes(fill = factor(group)))
#Cartographically, it looks like we have two polygons, but there are
#actually several more wrapped up as MULTIPOLYGONS. We can plot these.
t <- nc_dissolve %>% st_cast() %>% st_cast("POLYGON")
ggplot() + geom_sf(data=t, aes(fill=factor(row.names(t))))
注意半岛有多个无关的多边形。
如何像 ArcGIS 案例那样只得到两个?非常感谢。
我不太熟悉 ArcGIS 如何定义多边形,但多边形的简单要素访问(ISO 标准)规范是一个具有零个或多个表示孔的内环的单环。这意味着在该规范下,如果您拥有大陆和几个岛屿,则不会有一个多边形。为了将这些表示为单个特征,相应的几何类型是多面体。这意味着您的答案在 nc_dissolve
中:它有两个特点。