Я пытаюсь записать несколько слоев в один и тот же GeoPackage в R, но получаю ошибку Creation of output file failed
. Я попытался найти документацию для чтения и записи в файлы .gpkg с помощью RGDAL, например, чтобы выяснить, writeOGR()
поддерживает ли на самом деле несколько слоев, с небольшим успехом. Это вообще возможно, если да, то как это сделать? Минимальный рабочий пример:
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)
По-видимому, есть ogr2ogr
команда shell, которая делает свое дело (hat tip mdsumner ), которую я могу обернуть в функцию R. Тем не менее, было бы здорово , если writeOGR () и / или st_write () в sf
пакете было это встраивается. Я считаю , что это зависит от GDAL - х layer_options
, но не кажется , что будет вариант конкатенирующего типа для GPKG в GDAL .
Я мог бы написать простую функцию-обертку для, st_write()
но встроенную поддержку sf
или rgdal
будет лучше.
Ответы:
Вы можете сделать это, используя
append
флагsf::st_write()
:источник