2013年11月14日木曜日

13 - 基盤地図情報 3 - データベースに登録

13-3 シェイプファイルをデータベースに登録

shp2pgsql と psql コマンドを使ってシェイプファイルをデータベースに登録します。
一般ユーザでシェイプファイルのあるディレクトリに移動して、次のように入力します。

user@debian7-vmw:~/mapdata/tokyo/akiruno$ ls
13228-20120305-AdmArea.dbf   13228-20120305-RailCL.dbf
13228-20120305-AdmArea.prj   13228-20120305-RailCL.prj
13228-20120305-AdmArea.shp   13228-20120305-RailCL.shp
13228-20120305-AdmArea.shx   13228-20120305-RailCL.shx
13228-20120305-AdmBdry.dbf   13228-20120305-RdCompt.dbf
13228-20120305-AdmBdry.prj   13228-20120305-RdCompt.prj
13228-20120305-AdmBdry.shp   13228-20120305-RdCompt.shp
13228-20120305-AdmBdry.shx   13228-20120305-RdCompt.shx
13228-20120305-AdmPt.dbf     13228-20120305-RdEdg.dbf
13228-20120305-AdmPt.prj     13228-20120305-RdEdg.prj
13228-20120305-AdmPt.shp     13228-20120305-RdEdg.shp
13228-20120305-AdmPt.shx     13228-20120305-RdEdg.shx
13228-20120305-BldA.dbf      13228-20120305-WA.dbf
13228-20120305-BldA.prj      13228-20120305-WA.prj
13228-20120305-BldA.shp      13228-20120305-WA.shp
13228-20120305-BldA.shx      13228-20120305-WA.shx
13228-20120305-BldL.dbf      13228-20120305-WL.dbf
13228-20120305-BldL.prj      13228-20120305-WL.prj
13228-20120305-BldL.shp      13228-20120305-WL.shp
13228-20120305-BldL.shx      13228-20120305-WL.shx
13228-20120305-CommBdry.dbf  13228-20120305-WStrA.dbf
13228-20120305-CommBdry.prj  13228-20120305-WStrA.prj
13228-20120305-CommBdry.shp  13228-20120305-WStrA.shp
13228-20120305-CommBdry.shx  13228-20120305-WStrA.shx
13228-20120305-CommPt.dbf    13228-20120305-WStrL.dbf
13228-20120305-CommPt.prj    13228-20120305-WStrL.prj
13228-20120305-CommPt.shp    13228-20120305-WStrL.shp
13228-20120305-CommPt.shx    13228-20120305-WStrL.shx

user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-AdmArea.shp akiruno_kukaku > akiruno_kukaku.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-AdmBdry.shp akiruno_kukakusen > akiruno_kukakusen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-AdmPt.shp akiruno_kukakuten > akiruno_kukakuten.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-BldA.shp akiruno_kenchiku > akiruno_kenchiku.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-BldL.shp akiruno_kenchikusen > akiruno_kenchikusen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-CommBdry.shp akiruno_choaza > akiruno_choaza.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-CommPt.shp akiruno_choazaten > akiruno_choazaten.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-RailCL.shp akiruno_kido > akiruno_kido.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-RdCompt.shp akiruno_dorokozo > akiruno_dorokozo.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-RdEdg.shp akiruno_doro > akiruno_doro.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-WA.shp akiruno_suiiki > akiruno_suiiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-WL.shp akiruno_suigai > akiruno_suigai.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-WStrA.shp akiruno_suikozo > akiruno_suikozo.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ shp2pgsql -W sjis 13228-20120305-WStrL.shp akiruno_suikozosen > akiruno_suikozosen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/tokyo/akiruno$ ls
---
akiruno_choaza.sql
akiruno_choazaten.sql
akiruno_doro.sql
akiruno_dorokozo.sql
akiruno_kenchiku.sql
akiruno_kenchikusen.sql
akiruno_kido.sql
akiruno_kukaku.sql
akiruno_kukakusen.sql
akiruno_kukakuten.sql
akiruno_suigai.sql
akiruno_suiiki.sql
akiruno_suikozo.sql
akiruno_suikozosen.sql


template_postgis をテンプレートとしてオーナーが user で nippon_bmi というデータベースを作成します。
基盤地図情報と国土数値情報をデータベース上で比較することがある場合は、同じデータベースに登録した方がいいでしょう。

user@debian7-vmw:~/mapdata/tokyo/akiruno$ su - postgres
パスワード:
postgres@debian7-vmw:~$ createdb -T template_postgis -O user nippon_bmi
postgres@debian7-vmw:~$ psql -l

                                             データベース一覧
       名前       |  所有者   | エンコーディング  |  照合順序   | Ctype(変換演算子)  |      アクセス権       
------------------+----------+------------------+-------------+-------------------+-----------------------
 nippon_bmi       | user     | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 nippon_nlni      | user     | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 postgres         | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0        | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
                  |          |                  |             |                   | postgres=CTc/postgres
 template1        | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
                  |          |                  |             |                   | postgres=CTc/postgres
 template_postgis | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
(6 行)

(stdin):q


postgres@debian7-vmw:~$ psql nippon_bmi
psql (9.1.9)
"help" でヘルプを表示します.

nippon_bmi=# \d
                 リレーションの一覧
 スキーマ  |       名前        |    型    |  所有者  
----------+-------------------+----------+----------
 public   | geography_columns | ビュー   | postgres
 public   | geometry_columns  | テーブル | postgres
 public   | spatial_ref_sys   | テーブル | postgres
(3 行)


nippon_bmi=# ALTER VIEW geography_columns OWNER TO user;
ALTER VIEW
nippon_bmi=# ALTER TABLE geometry_columns OWNER TO user;
ALTER TABLE
nippon_bmi=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
nippon_bmi=# \d
                リレーションの一覧
 スキーマ  |       名前        |    型    | 所有者 
----------+-------------------+----------+--------
 public   | geography_columns | ビュー   | user
 public   | geometry_columns  | テーブル | user
 public   | spatial_ref_sys   | テーブル | user
(3 行)


nippon_bmi データベースに一般ユーザ user を追加します。

nippon_bmi=# CREATE USER user;
ERROR:  ロール"user"はすでに存在します
nippon_bmi=# ALTER USER user with password 'password';
ALTER ROLE
nippon_bmi=# \q


データベースに登録します。
postgres@debian7-vmw:~$ exit
ログアウト
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_choaza.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_choazaten.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_doro.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_dorokozo.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_kido.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_kukaku.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_kukakusen.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_kukakuten.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_suigai.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_suiiki.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_suikozo.sql
user@debian7-vmw:~/mapdata/tokyo/akiruno$ psql -d nippon_bmi -f akiruno_suikozosen.sql

0 件のコメント: