ラベル GeoPackage の投稿を表示しています。 すべての投稿を表示
ラベル GeoPackage の投稿を表示しています。 すべての投稿を表示

2026年9月19日土曜日

技術資料 QGISのGeoPackageに保存されたジオメトリに多数スタイルを同梱する方法

 Technical Note: How to bundle multiple styles with geometries stored in a QGIS GeoPackage


I have verified a method for bundling multiple styles (such as classifications and color schemes) with geometries stored in a QGIS GeoPackage. When these geometries are imported into a different QGIS project, the styles are preserved exactly as they were. It is a very convenient feature.


QGISのGeoPackageに保存されたジオメトリに多数スタイル(分類や色塗りなど)を同梱する方法を確認しました。このジオメトリを別QGISプロジェクトに取り込めば、多数スタイルがそのまま再現できます。とても便利です。

1 作成したジオメトリのGeoPackage保存


作成されたジオメトリ(例 ボロノイ多角形を作成して、angleフィールドの値を等量分類(分類数5)して色分けしている)

QGISで作成したジオメトリ(ここでの例はボロノイ多角形ですでに分類色分けされている)をレイヤパネルで右クリック→エクスポート→新規ファイルに保存→立ち上がるウィンドウで形式をGeoPackage、ファイル名を入力、レイヤ名を入力、CRSを入力(普通はプロジェクトCRS)、その他項目はデフォルトでOKをクリックすれば、GeoPackageファイルに当該ジオメトリが保存されます。


GeoPackageにレイヤを保存する画面(例)

GeoPackageにレイヤを保存すると、ブラウザパネルのGeoPackageに当該GeoPackageファイル名が、その子項目に当該レイヤ名が表示されます。


ブラウザパネルの画面例

ここまでの操作でGeoPackageに保存されたジオメトリを別のQGISプロジェクトにとりこむと(ブラウザパネルからレイヤパネルにドラッグすると)ジオメトリはボロノイ多角形だけの素ジオメトリが表示され、分類や色塗りなどのスタイルは表現されません(スタイルを所持していません)。


スタイルを保存していない素ジオメトリ

2 GeoPackageにスタイルを保存

1で既にGeoPackageに保存したレイヤのプロパティ→シンボロジ→(左下)スタイル→スタイルを保存→立ち上がるウィンドウでスタイルを保存をデータソースデータベース(In)、ファイル名入力(分類や分類数や色が思い出せるような分類名称がよい)、このレイヤの規定スタイルとして利用するはこのレイヤの最初のスタイルの場合はチェック(同じレイヤに複数レイヤを保存する場合は、2番目以降はチェックしない)、それ以外項目はデフォルト(未入力)でOKをクリックすると画面に表示されているスタイルが当該ジオメトリに保存されます。


スタイル保存画面

この操作をした後、GeoPackageに保存されたジオメトリを別のQGISプロジェクトにとりこむと(ブラウザパネルからレイヤパネルにドラッグすると)ジオメトリはスタイルを伴って(分類や色塗りを伴って)表示されます。

なお、ブラウザパネルのGeoPackage欄には保存したスタイルは子項目等で表示されません。

3 GeoPackageに複数スタイルを保存

2でGeoPackageに保存したジオメトリに1つのスタイルを保存しましたが、別の複数スタイルを同じジオメトリに保存することができます。操作は2と同じですが、このジオメトリの規定スタイルとして利用するにはチェックをいれません。規定スタイルは1つしか指定できません。

同じジオメトリに多数スタイルを保存しても、ブラウザパネルのGeoPackage欄には保存したスタイルは子項目等で表示されません。

4 規定以外スタイルの利用

スタイルを複数保存したジオメトリを別のQGISプロジェクトで取り込むと、そのレイヤは規定スタイルで表示されます。そのレイヤのシンボロジ→(左下)スタイル→スタイルを読み込むをクリックして立ち上がるウィンドウ(データベーススタイルマネージャ)で当該レイヤに保存されたスタイルの名称リストが表示されます。


データベーススタイルマネージャ画面

そのリストから規定スタイル以外の名称をクリックしてスタイルを読み込むをクリックすれば、レイヤは規定スタイルではない別のスタイルで表示されます。


規定スタイルではない別のスタイルで表示された様子(等量分類(分類数10)別カラーランプ)

5 メモ

GeoPackageに保存されたジオメトリに多数のスタイルを保存できるのですが、ブラウザパネルのGeoPackageではそのスタイルリストが確認できないので、戸惑います。どのようなスタイルが保存されているのかを確認するには4の操作を途中までする必要があります。(データベーススタイルマネージャを表示する必要があります。)

しかし、GeoPackageの中の1つのジオメトリに多数スタイルを同梱できるので、大変便利です。


2026年9月3日木曜日

技術メモ GeoPackageの中身を覗くPythonスクリプト

 Technical Note: Python Script to Inspect GeoPackage Contents


I created a Python script to inspect the contents of GeoPackage files (.gpkg) used in QGIS. When dealing with multiple GeoPackage files, this allows you to check the tables stored within them via the command line, without having to open each file individually in QGIS.


QGISで使うGeoPackageファイル(.gpkg)の中身を覗くPythonスクリプトを作成しました。GeoPackageファイルが多数ある場合、それらを一つ一つQGISで開かなくても、コマンドラインでGeoPackageファイルに格納されているテーブルを確認できます。

1 GeoPackageファイルに格納されている全てのテーブルを確認するPythonスクリプト

GeoPackageファイルに格納されている全てのテーブルの確認をコマンドラインで確認できるPythonスクリプトを作成しました。QGISで作成したテーブルだけでなく、SQLiteの管理用テーブルも含まれます。


GeoPackageファイルに格納されている全てのテーブルを確認している様子

2 GeoPackageファイルに格納されているQGIS関連テーブルを確認するPythonスクリプト

GeoPackageファイルに格納されているQGIS関連テーブルだけの確認をコマンドラインで確認できるPythonスクリプトを作成しました。SQLiteの管理用テーブルは含まれません。


GeoPackageファイルに格納されているQGIS関連テーブルを確認している様子

3 QGISPythonコンソールでGeoPackageファイルに格納されているQGIS関連テーブルと詳細情報を表示するPythonスクリプト

QGISPythonコンソールでGeoPackageファイルに格納されているQGIS関連テーブルと詳細情報を表示するPythonスクリプトを作成しました。詳細情報はレイヤ名・ジオメトリ型・CRS・フィールド名・型・地物数を一覧表として表示します。


QGISPythonコンソールでGeoPackageファイルの詳細情報を表示している様子

ただし、一覧表示でなければ、このPythonスクリプトで表示される情報はすべて通常のQGIS操作で確認できる情報です。

4 3のPythonスクリプトをコマンドラインで走らせるPythonスクリプト

3のPythonスクリプトをコマンドラインで走らせるPythonスクリプトを作成しました。


3のPythonスクリプトをコマンドラインで走らせるPythonスクリプトの様子

但し、現状では作業中のため、当該Pythonスクリプトと対象GeoPackageファイル(.gpkg)の双方のフルパス入力が必要なので、使い勝手が悪いです。

5 感想

GeoPackageファイルの内容はQGISにインストールすれば、通常操作で全て判ります。しかし、類似作業が増え、多数フォルダーに類似GeoPackageファイルが存在するようになった場合、それらを一つ一つQGISで確認することは非効率的です。多数GeoPackageファイルの確認に特に2のPythonスクリプトの存在意義が高まります。