Rの同じGeoPackageに複数のレイヤーを書き込もうとしていますが、エラーが発生しますCreation of output file failed
。RGDALを使用した.gpkgファイルの読み取りと書き込みのドキュメントを検索してみました。たとえば、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
シェルコマンド(ヒントmdsumner)があるようですが、これをR関数でラップできます。ただし、sf
パッケージのwriteOGR()やst_write()にこれが組み込まれているとlayer_options
便利です。GDALに依存していると思いますが、GDALの GPKGには追加タイプのオプションがないようです。
私は単純なラッパー関数を作成することもできますst_write()
が、ネイティブサポートをsf
使用したrgdal
方がよいでしょう。
可能性のあるafaik。sfで試してみてください。これも同様に探索できます-rgdalよりも簡単に修正できます
—
mdsumner
sfの@mdsumner st_write()でも同じ結果が得られます。GDALのレイヤー作成オプションに追加オプションがないことが、writeOGR()とst_write()の両方の問題の原因だと思います。
—
eivindhammers 2017年