Próbuję napisać wiele warstw do tej samej GeoPackage w badania, ale pojawia się błąd Creation of output file failed
. Próbowałem wyszukać dokumentację odczytu i zapisu do plików .gpkg za pomocą RGDAL, np. Aby dowiedzieć się, czy writeOGR()
rzeczywiście obsługuje wiele warstw, z niewielkim powodzeniem. Czy to w ogóle możliwe, jeśli tak, jak to zrobić? Minimalny przykład działania:
library(sp)
library(maptools)
library(rgdal)
data(wrld_simpl)
norway <- wrld_simpl[wrld_simpl$NAME == "Norway", ]
sweden <- wrld_simpl[wrld_simpl$NAME == "Sweden", ]
file <- tempfile("scandinavia", fileext = c(".gpkg"))
writeOGR(norway, dsn = file, layer = "norway", driver = "GPKG")
writeOGR(sweden, dsn = file, layer = "sweden", driver = "GPKG")
ogrListLayers(file)
Najwyraźniej istnieje ogr2ogr
polecenie powłoki, które wykonuje lewę (hat tip mdsumner ), które mogę zawinąć w funkcję R. Byłoby jednak fajnie, gdyby miały wbudowaną funkcję writeOGR () i / lub st_write () sf
. Sądzę, że zależy to od GDAL layer_options
, ale nie wydaje się, aby w GDAL istniała opcja typu append dla GPKG .
Mógłbym napisać prostą funkcję otoki dla st_write()
wsparcia natywnego w sf
lub rgdal
byłoby lepiej.
Odpowiedzi:
Możesz to zrobić za pomocą
append
flagi nasf::st_write()
:źródło