最新のGISデータ形式に、GeoPackageが推奨されていると触れました。
shpファイルは、複数の構成ファイルによって一つのshpファイルを構築します。
一方でGeoPackageファイルは、一つのデータの中に複数のベクタモデルデータやラスタモデルデータのみならず、スタイルデータなどを統合、管理や共有することができます。
これまで触れてきた様々なGISデータ(ベクタ・ラスタモデル)を、パッケージ化して一つのデータとして扱える便利な格納庫だとイメージしてください。
一つにまとめる事ができるのみならず、大容量データに対応し軽く扱いやすくしてくれるデータ形式なので率先してshpファイルからGeoPackageに移行していきましょう。
既存のベクタデータをGeoPackageに変換
ブラウザパネルから変換
GeoPackageとは、SQLiteベースのデータベースファイルになります。
既に作成されたshpファイルを、GeoPackageに変換していきましょう。
まずは、格納庫であるGeoPackageファイルそのものを新規作成していきます。
ブラウザパネルの任意のフォルダを右クリックして
新規>GeoPackage
をクリックします。

すると、新規GeoPackage.gpkgと言うファイルができていると思います。※分かりやすい名前にリネームしてください(ここでは、このままの名称で進めます)。

この格納庫に、既存のshpファイルを格納してみます。
レイヤパネルから、格納(変換)したいshpファイル(ここでは、等高線shpファイルであるContr.shp)をブラウザパネル内のGeoPackageファイルへ、ドラッグ&ドロップします。

ベクタレイヤをインポートウィンドウが開くと思います。ここで、取り込む属性等調整ができますが、そのまま画面下部のOKをクリックします。

エラーが出て、うまく取り込まれない場合
インポートに失敗しましたフィールド fid (QString) の作成に失敗しました (OGR error: Wrong field type for fid):これは、フィールドの『fid』が本来整数型である必要があるにも関わらず、テキスト型で『fid』を作成してしまったためです。
上図の属性にある『fid』フィールドを削除すれば、インポートが成功するはずです。
これがFGDVの抱えるエラーなのかは不明ですが、FGDVは文字コードが『UTF-8』で作成されたデータを、『Shift-JIS』にshpファイルをエクスポートするなどの挙動が残っており、今後のVerUPに期待するところです。
すると、新規GeoPackage.gpkgに、Contrがある事が確認できると思います。

このContrは、元のContr.shpと同じジオメトリ型のラインストリングを継承しており、前述の属性もそのまま引き継げばQGIS上では元のshpファイルと全く同じように扱えます。
同じように扱えるだけでなく、shpファイルの時よりも大容量のデータを扱えるようになります。
さらには、ファイルエクスプローラーでGeoPackageファイルを確認してみると一つのデータになっている事が分かると思います。
複数のshpファイル(ポイント・ライン・ポリゴン)やラスタデータを同じく格納できますが、幾つものGISデータを格納してもGeoPackageファイルは一つです。

一方でshpファイルであるContr.shpは、同名の複数の別ファイルで構成されています。

shpファイルが癖のあるファイルと言える理由の一つです。
GeoPackageファイルとは、様々なGISデータを格納するフォルダの様な格納庫であるイメージが掴めていただけたでしょうか?
エクスポート機能から変換
レイヤパネルより、GeoPackageに変換したい既存のshpファイルを右クリックして、
エクスポート>地物の保存
をクリックします。

『名前をつけてベクタレイヤを保存』というウィンドウの
①:GeoPackageを選択します。
②:GeoPackage(GISデータ格納庫)の保存場所と名称を入力します。
③:格納するGISデータの名称を入力します(shpファイルの名称に当たります)。
※CRSの設定や、エクスポートする属性等もここで設定できます。

全ての設定が終わったら、下部のOKを押します。
この方法でも、ブラウザパネルへドラッグ&ドロップと同じ事が出来ます。
GeoPackageの新規作成
一からまっさらなGeoPackageファイルのGISデータを作成することもできます。
レイヤ>レイヤの作成>新規GeoPackageレイヤ
をクリックするか、『新規GeoPackageレイヤ』のアイコンをクリックします。

『新規GeoPackageレイヤ』ウィンドウの
①:GeoPackage(GISデータ格納庫)の保存場所と名称を入力します。
②:格納するGISデータの名称を入力します(shpファイルの名称に当たります)。
③:②のジオメトリタイプを選択します。
④:作成するデータの座標系を指定します。

③のジオメトリタイプには見慣れないものもあると思います。

ジオメトリなし:テーブルデータ
複合カーブ:直線と円弧を連続的に組み合わせた、1つの滑らかなカーブデータ
カーブポリゴン:境界線の一部に円弧を含む1つの滑らかなポリゴンデータ
マルチカーブ:直線や円弧のカーブの集合体。連続性は無くて良いので、複数の線状地物を管理する為に使用。
マルチサーフェス:複数のサーフェス(カーブポリゴン含む)の集合体。離れた面や、穴あきポリゴン等。
新規属性以下で、そのGISデータのテーブルデータもここで作りこむことができます。
後から作成する事も可能です。
すべての設定が完了したら、下部のOKをクリックします。
軽快に大容量のデータを扱う事ができるGeoPackageへの移行、是非お試しください。
GeoPackageを利用する際の注意点
GeoPackageは一つのファイル内に、複数のGISデータを格納できるの大変便利なデータベースです。
データの共有時には、複数のshpファイルを扱う必要はありません。
一方で、一つのファイルになると言う事に注意しなければならない点があります。
一つのデータベースファイルにできるという事はあるGISデータの編集中に不具合が起きた場合、そのGeoPackageに含まれる他のGISデータに影響が出ないとは言い切れない点です。
あるラスタデータをGeoPackageに格納したが、うまく表示されず…気付いたら、等高線のベクタデータまで表示されなくなっていた事もあります。
リスクマネジメントとして、データの編集・更新の頻度で複数のGeoPackageファイルを運用する事が望ましいと考えます。例えば、
- ベースマップ:基盤地図情報等の地図としての編集の頻度が皆無のデータ
- 構成要素:調査地点・ルート・エリアなど、編集や更新する事はあっても中長期的に運用するデータ
- 主目的要素:調査対象の現場の生データに当たり、各調査員から収集・整備すべきデータ
などの3つのGeoPackageに分けるなどで、被害は最小限に抑えられると思います。
