如何合并多个SF多边形?

问题描述 投票:0回答:3

我无法找到将多个科幻多边形合并为一个新科幻多边形的最佳方法。我一直在使用

st_union
但是这似乎只能成对合并两个 sf 对象。

%>%
表示法可以管道一堆
st_union
函数,但一定有不同的方法吗?

all <- st_union(rd) %>% st_union(cb) %>%  st_union(pl) %>% st_union(sl) %>%  
       st_union(wp) %>%  st_union(wf) %>%  st_union(bd) 

我还发现性能真的很慢...

r merge gis spatial r-sf
3个回答
8
投票

这个解决方案对我有用:

single_sf <- dplyr::bind_rows(list(rd,cb,pl,sl,wp,wf,bd))
dissolve_sf <- st_union(single_sf)

感谢这篇文章:将一系列 sf 对象转换为一个 sf


1
投票

sf 对象有一个名为

sfc
的列表/数组对象,我们可以使用
st_sfc(rd, cb, pl)
构造此列表,然后可以使用
sf_combine
组合这些对象。

如果我理解正确的话,可以更详细地看到:

https://r-spatial.github.io/sf/reference/sfc.html

https://r-spatial.github.io/sf/reference/geos_combine.html

总的来说,我希望代码如下所示:

sfg_list <- st_sfc(rd, sb, pl, sl, wp, wf, bd)

st_combine(sfg_list)

0
投票

如果多边形在列表中,请尝试 st_combine(do.call("c", pol))

© www.soinside.com 2019 - 2024. All rights reserved.