Estoy intentando escribir varias capas a la misma GeoPackage en R, pero me da un error, Creation of output file failed
. He intentado buscar documentación de lectura y escritura en archivos .gpkg con RGDAL, por ejemplo, para averiguar si writeOGR()
realmente admite varias capas, con poco éxito. ¿Es esto posible, si es así, cómo hacerlo? Ejemplo de trabajo mínimo:
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)
Aparentemente hay un ogr2ogr
comando de shell que hace el truco (hat tip mdsumner ), que puedo envolver en una función R. Sin embargo, sería bueno si writeOGR () y / o st_write () en el sf
paquete tuvieran esto incorporado. Creo que depende de GDAL layer_options
, pero no parece haber una opción de tipo de agregado para GPKG en GDAL .
Podría escribir una función de contenedor simple para st_write()
pero el soporte nativo en sf
o rgdal
sería mejor.
Respuestas:
Puede hacer esto usando la
append
bandera ensf::st_write()
:fuente