【发布时间】:2022-04-17 21:58:24
【问题描述】:
我有一些包含数百万个多边形的大型 shapefile,需要解散。根据 shapefile,我需要按组解散,或者只使用st_union。我一直在使用st_parfunction,它对大多数科幻应用程序都非常有效。虽然当我在st_union 上使用此函数时,它会返回一个列表,但我无法弄清楚如何使 sf 溶解函数 st_union 并行化。
任何建议都会很有帮助!这是一个小代码sn-p来说明我的观点。
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)
【问题讨论】:
-
不错的主题和很好的例子,但
us_prefix没有定义,你还应该添加使用的包。 -
感谢您的提示 - 我修复了未定义的对象(以为我在编写过程中摆脱了它)并添加了库。