Saya mencoba untuk menulis beberapa layer ke GeoPackage yang sama di R, tapi saya mendapatkan kesalahan Creation of output file failed
,. Saya telah mencoba mencari dokumentasi membaca dan menulis ke file .gpkg dengan RGDAL, misalnya untuk mengetahui apakah writeOGR()
sebenarnya mendukung banyak lapisan, dengan sedikit keberhasilan. Apakah ini bahkan mungkin, jika demikian, bagaimana cara melakukannya? Contoh kerja 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)
Tampaknya ada ogr2ogr
perintah shell yang melakukan trik (hat tip mdsumner ), yang dapat saya bungkus dalam fungsi R. Namun, akan lebih rapi jika writeOGR () dan / atau st_write () dalam sf
paket memiliki bawaan ini. Saya rasa itu tergantung pada GDAL layer_options
, tetapi sepertinya tidak ada opsi append-type untuk GPKG di GDAL .
Saya bisa menulis fungsi pembungkus sederhana untuk st_write()
tetapi dukungan asli sf
atau rgdal
akan lebih baik.
Jawaban:
Anda dapat melakukan ini menggunakan
append
bendera disf::st_write()
:sumber