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 sfpaquete 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 sfo rgdalsería mejor.

Respuestas:
Puede hacer esto usando la
appendbandera ensf::st_write():fuente