Ich versuche, mehrere Ebenen in R in dasselbe GeoPackage zu schreiben, erhalte jedoch eine Fehlermeldung Creation of output file failed
. Ich habe versucht, mit RGDAL nach einer Dokumentation zum Lesen und Schreiben in .gpkg-Dateien zu suchen, z. B. um herauszufinden, ob writeOGR()
tatsächlich mehrere Ebenen unterstützt werden, mit wenig Erfolg. Ist das überhaupt möglich, wenn ja, wie geht das? Minimales Arbeitsbeispiel:
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)
Es gibt anscheinend einen ogr2ogr
Shell-Befehl , der den Trick ausführt (hat tip mdsumner ), den ich in eine R-Funktion einschließen kann. Es wäre jedoch ordentlich, wenn writeOGR () und / oder st_write () im sf
Paket dies integriert hätten. Ich denke, es hängt von GDALs ab layer_options
, aber es scheint keine Option vom Typ Anhängen für GPKG in GDAL zu geben .
Ich könnte eine einfache Wrapper-Funktion für st_write()
aber native Unterstützung schreiben sf
oder rgdal
wäre besser.
Antworten:
Sie können dies mit dem
append
Flag auf tunsf::st_write()
:quelle