r-如何合并多个sf多边形



我很难找到将多个sf多边形合并为一个新sf多边形的最佳方法。我一直在使用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) 

而且我发现表现真的很慢。。。

此解决方案适用于我:

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

归功于这篇文章:将sf对象列表转换为一个sf

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)

如果多边形在列表中,请尝试

st_combine(do.call("c", pol))

最新更新