2018年4月16日月曜日

ESRI ShapefileからGeoPackageへの移行

QGIS 3.0より新規ベクターデータのデフォルト保存形式がESRI Shapefile形式からGeoPackage形式に変わったようです。

ESRI Shapefile形式は複数のファイルから構成されるとか属性名の日本語の文字数制約とか、いろいろと問題のある形式でしたが、先日のQGIS 3.0 Hackfestでいろいろと使ってみたところGeoPackage形式ではそれらの問題は大丈夫そうな感じがしました。

とはいえ自分の持っている全てのESRI ShapefileをGeoPackageにスクリプトで一括変換するのはまだちょっと怖いので、重要性の低いデータ(Webで入手可能とか授業で例として適当に作ったやつとか)からちょっとづつ変換して行こうと思っています。

QGIS上で名前を付けて保存でも良いのですが、もうちょっとだけ楽にするためにUbuntu/Debianのnautilus scriptという機能を使って対象ファイルの右クリックからESRI Shapefile -> GeoPackage変換ができるようにしました。


まず以下のようなbashスクリプト(ファイル名: shp2gpkg.sh)を作成します


#!/bin/bash

shp_filename=$1
root_filename=${shp_filename%.shp}
ogr2ogr -f GPKG ${root_filename}.gpkg ${shp_filename}


それをホームディレクトリの、.local/share/nautilus/script に実行可能にして配置します(シンボリックリンクでもOK)。

使用する際は、ESRI Shapefile上で右クリック -> scripts -> shp2gpkg.sh と選択します。
変換元のファイルは一応残すようにしています。



先日のQGIS 3.0 Hackfestでの共有ドキュメントはどなたでも参考になれます。GeoPackageの検証以外にも様々なQGIS3.0の機能を多くの参加者で試して得られた知見があります。

QGIS 3.0 Hackmd


0 件のコメント:

コメントを投稿