ディゾルブする必要がある数百万のポリゴンを含むいくつかの大きなシェープファイルがあります。シェープファイルに応じて、グループごとにディゾルブするかst_union
、すべてに使用する必要があります。私はこのst_par
関数を使用しており、ほとんどの sf アプリケーションでうまく機能しています。この関数を使用する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)