概要
postgresSQLの拡張機能である、postgisを使うことで、shpファイルをDB経由で、sqlで編集することができます。
大量のデータを処理するときやsql、DBの知識がある方は使用すると良いと思います。
この記事では、postgisやインストール方法、使用方法などについて解説します。
postgisとは
オープンソースのデータベース管理システムであるPostgreSQLに、地理情報システム(GIS)の機能を追加する拡張機能です。
地理データを管理・操作・分析するための強力なツールとして広く使われています。
メリットとしては、下記が挙げられます。
- 地理データを効率的に扱える。
- GISソフトウェアを使わずにサーバーサイドでデータ処理が可能。
- オープンソースなので、無料で利用可能。
- 高度な分析やWebシステムと連携しやすい。
インストール方法
ソフトとしては、QGIS、postgresSQL(pgAdmin)、A5M2をインストールしておくと良いと思います。
QGIS
こちらのサイト(https://www.qgis.org/download/)より、インストールします。

PostgreSQL(pgAdmin)
こちらのサイト(https://www.postgresql.org/download/)より、インストールを行います。
インストールの手順などは、こちらのサイト(https://qiita.com/tom-sato/items/037b8f8cb4b326710f71)が参考になります。

A5Mk2
こちらのサイト(https://a5m2.mmatsubara.com/)よりダウンロードします。
sqlの入力に便利なソフトになります。

postgisのインストール
PostgreSQLインストール後に、stack builderからpostgisをインストールします。
詳しくは、こちらのサイト(https://zenn.dev/boiledorange73/books/b1de0a18073af70946e0/viewer/install-win)を参考にして頂くと良いと思います。
使用方法
まずは、DBの作成を行います。
pgAdminを起動します。
データベースの上で右クリック → 作成 → データベース… を選択します。

データベース名を入力して、保存をクリックします。

作成したデータバースの拡張の上で右クリック → 作成 → 拡張 を選択します。

名前にpostgisを入力し、保存をクリックします。

拡張にpostgisが追加されます。

続いて、shpをDBに取り込みます。
shp2pgsql-gui.exeを起動します。
おそらく、C:\Program Files\PostgreSQL\17\bin\postgisgui にあるかと思われます。

View connection detailsをクリックして、UsernameやDatabaseなどを入力します。

Add Fileをクリックして、shpを追加する、もしくは、shpファイルをドラッグアンドドロップすることで、Import Listに追加します。
ここで、Pathやshp名に日本語が入っていると上手く変換できないようなので、英語にしておくようにしましょう。

Table名やSRID(座標系)を指定します。SRIDはEPSGの番号を入力します。


Optionsをクリックして、encodingを選択します。
今回はShift-JISなので、cp932 とします。


Importをクックします。
うまくいくと、Shapefile import completed. と表示されます。

インポートされたデータを見てみます。
A5Mr2を起動します。

データベースを追加します。
データベースの上で右クリック → データベースの追加と削除 を選択します。

追加をクリックします。

PostgreSQL(直接接続)を選択します。

サーバー名やデータベース名などを入力します。
テスト接続をクリックして、成功したら、OKをクリックします。

データベースに追加されます。

publicのテーブルを選択すると、先ほどインポートしたshpのテーブルがあります。

shpに含まれる属性が表示されます。なお、geomという欄には、座標等の図形情報が入っています。

実際に登録したデータを見てみます。
QGISを起動します。
QGISのブラウザの欄のPostgreSQLを右クリック → 接続の新規作成 を選択します。

名前やホスト、ポートなどを入力し、接続テストをクリックします。
パスワードを入力後、接続に成功したら、OKをクリックします。

ブラウザ欄のPostgreSQLにDBが追加されます。
先ほど追加したshp名をクリックすると、レイヤが追加されます。

今回、例えば、条件を指定して、新たなレイヤを追加します。
樹種名が針広混交林のものを抽出します。
SQLは、
CREATE TABLE 新しいテーブル名 AS
SELECT 列1, 列2, …
FROM 元のテーブル名
WHERE 条件;
のようになります。
A5Mr2を起動し、DBを現在のデータベースに設定し、Queryに下記のように入力します。
そして、SQLを実行します(緑色の矢印で流せます)。

SQLを実行後、DBを再読込すると、新たにテーブルができております。

ブラウザの更新(矢印マーク)を行って、DBを読み込むと、先ほど作成したデータが追加されています。

大量のデータを扱うときや、sql、DBになれている人は使った方が楽だと思うので、ぜひご利用ください!


[…] postgisのインストール方法やshpの取り込み方は、こちらのサイトを参考にしてみてください。 […]