Je suis en train d'écrire plusieurs couches à la même GeoPackage dans R, mais je reçois une erreur, Creation of output file failed
. J'ai essayé de rechercher de la documentation sur la lecture et l'écriture dans des fichiers .gpkg avec RGDAL, par exemple pour déterminer si writeOGR()
réellement prend en charge plusieurs couches, avec peu de succès. Est-ce même possible, si oui, comment le faire? Exemple de fonctionnement minimal:
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)
Il y a apparemment une ogr2ogr
commande shell qui fait l'affaire (hat tip mdsumner ), que je peux encapsuler dans une fonction R. Cependant, ce serait bien si writeOGR () et / ou st_write () dans le sf
paquet avaient cela intégré. Je pense que cela dépend des GDAL layer_options
, mais il ne semble pas y avoir d'option de type ajout pour GPKG dans GDAL .
Je pourrais écrire une fonction wrapper simple st_write()
mais un support natif sf
ou rgdal
serait mieux.
Réponses:
Vous pouvez le faire en utilisant le
append
drapeau sursf::st_write()
:la source