この項ではshp file(地理空間データの標準フォーマット)のデータをPostgreSQLにインポートする方法について紹介します。
準備
- Postgresql, pgAdminのインストール (PostgreSQLのセットアップ)
- 神奈川県全域シェープファイルをダウンロード
環境
UbuntuにPostgreSQL, pdAdminをインストールしている場合を想定しております。
- Ubuntu 20.04
- PostgreSQL 12.9
- pdAdmin 4
手順
1. PostGISの有効化
2_a. command でのimport
2_b. GUIでのimport
今回はcommandでのimportとGUIでのimportの2つの方法を紹介します。どちらを選択してもらっても構いません。
1. PostGISの有効化
-
PostGISをインストール
1 |
sudo apt update & sudo apt install postgis |
-
postgresアカウントに切り替えて、postgresプロンプトにアクセス
1 |
sudo -i -u postgres |
1 |
psql |
-
以下クエリでPostGISを有効化
1 |
CREATE EXTENSION postgis; |
2_a. command でのimport
-
シェープファイルをPostgreSQLに挿入するためのSQLに変換
1 |
shp2pgsql -s [:] <.shpファイルのパス> <スキーマ名.テーブル名> > test.sql |
-
-
-s [<FROM_SRID>:]<SRID>
オプション指定したSRIDでジオメトリデーブルの作成とデータの読み込みを行います。 入力シェープファイルが使っているFROM_SRIDの指定が可能で、この場合は対象SRIDに投影変換を行います。
今回の例では、以下のように設定します。
- FROM_SRID : 4612
- SRID : 4326 (pgAdminにおいて、可視化の際に背景地図を表示させるためSRIDを4326に設定します。)
-
以下がコマンドの例になります。
1 |
shp2pgsql -s 4612:4326 h27ka14.shp public.kanagawa > test.sql |
- インポート
1 |
psql -d postgres -f test.sql |
pdAdminのgoemetry viewerを用いて可視化し、正しくインポートできているかを確認します。
2_b. GUIでのimport
1. postgis-guiをinstallします
1 |
sudo apt install postgis-gui |
2. guiを起動します
1 |
shp2pgsql-gui |
3. view connection をクリックし、connectionの情報を入力します
4. add file ボタンを押し、追加したいshp fileを選択
5. 必要に応じてschema, table名, SRIDを編集します
今回は下記を入力
table: kanagawa
SRID: 4326
6. Importボタンをクリック
Shape file import completed と表示されていれば完了です。
参考
- シェープファイルについて(esriジャパン)
- 日本で使用される座標系
- SPATIAL_REF_SYSテーブルと空間参照系
- shp2pgsql: ESRIシェープファイルローダを使う
- psql — PostgreSQLの対話的ターミナル
あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?