我有一些需要解散的带有数百万个多边形的大型 shapefile。根据 shapefile,我需要按组解散或仅st_union
用于所有人。我一直在使用该st_par
功能,它对大多数科幻应用程序都非常有效。虽然当我在它上面使用这个函数时st_union
会返回一个列表,但我无法弄清楚如何使 sf 溶解函数并行化st_union
。
任何建议都会很有帮助!这是一个小代码片段来说明我的观点。
library(sf)
library(assertthat)
library(parallel)
us_shp <- "data/cb_2016_us_state_20m/cb_2016_us_state_20m.shp"
if (!file.exists(us_shp)) {
loc <- "https://www2.census.gov/geo/tiger/GENZ2016/shp/cb_2016_us_state_20m.zip"
dest <- paste0("data/cb_2016_us_state_20m", ".zip")
download.file(loc, dest)
unzip(dest, exdir = "data/cb_2016_us_state_20m")
unlink(dest)
assert_that(file.exists(us_shp))
}
usa <- st_read("data/cb_2016_us_state_20m/cb_2016_us_state_20m.shp", quiet= TRUE) %>%
filter(!(STUSPS %in% c("AK", "HI", "PR")))
test <- usa %>%
st_par(., st_union, n_cores = 2)