ラベル データベース の投稿を表示しています。 すべての投稿を表示
ラベル データベース の投稿を表示しています。 すべての投稿を表示

2014年3月3日月曜日

37 - 陸前高田市の地図の表示 4 - 基盤地図情報(陸前高田市)をデータベースに登録

37-4 シェイプファイルをデータベースに登録
shp2pgsql と psql コマンドを使ってシェイプファイルをデータベースに登録します。

user@debian7-vmw:~/mapdata/nlni/public_facilities/iwate$ cd ../../mapdata
user@debian7-vmw:~/mapdata$ ogrinfo rikuzentakata
INFO: Open of `rikuzentakata'
      using driver `ESRI Shapefile' successful.
1: 03210-20120327-RailCL (Line String)
2: 03210-20120327-WF (Line String)
3: 03210-20120327-WStrL (Line String)
4: 03210-20120327-WStrA (Polygon)
5: 03210-20120327-BldA (Polygon)
6: 03210-20120327-CommBdry (Line String)
7: 03210-20120327-AdmBdry (Line String)
8: 03210-20120327-WA (Polygon)
9: 03210-20120327-RdEdg (Line String)
10: 03210-20120327-BldL (Line String)
11: 03210-20120327-RdCompt (Line String)
12: 03210-20120327-WL (Line String)
user@debian7-vmw:~/mapdata$ ogrinfo -summary rikuzentakata 03210-20120327-AdmBdry
INFO: Open of `rikuzentakata'
      using driver `ESRI Shapefile' successful.

Layer name: 03210-20120327-AdmBdry
Geometry: Line String
Feature Count: 634
Extent: (55999.999987, -117971.370007) - (77583.909965, -98138.759978)
Layer SRS WKT:
PROJCS["JGD2000_Japan_Zone_10",
    GEOGCS["GCS_JGD_2000",
        DATUM["Japanese_Geodetic_Datum_2000",
            SPHEROID["GRS_1980",6378137.0,298.257222101]],
        PRIMEM["Greenwich",0.0],
        UNIT["Degree",0.0174532925199433]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["False_Easting",0.0],
    PARAMETER["False_Northing",0.0],
    PARAMETER["Central_Meridian",140.833333333333],
    PARAMETER["Scale_Factor",0.9999],
    PARAMETER["Latitude_Of_Origin",40],
    UNIT["Meter",1.0]]
ID: String (7.0)
UUID: String (29.0)
PRESENCES: Real (11.2)
PRESENCEF: Real (11.2)
FINISHED: Real (11.2)
ORGGILVL: String (4.0)
ORGMDID: String (6.0)
CATEGORY: String (4.0)
FLAG: String (4.0)
TYPE: String (18.0)

shp2pgsql と psql コマンドを使ってシェイプファイルをデータベースに登録します。

user@debian7-vmw:~/mapdata$ cd rikuzentakata/
user@debian7-vmw:~/mapdata/rikuzentakata$ ls
03210-20120327-AdmBdry.dbf   03210-20120327-RdEdg.dbf
03210-20120327-AdmBdry.prj   03210-20120327-RdEdg.prj
03210-20120327-AdmBdry.shp   03210-20120327-RdEdg.shp
03210-20120327-AdmBdry.shx   03210-20120327-RdEdg.shx
03210-20120327-BldA.dbf      03210-20120327-WA.dbf
03210-20120327-BldA.prj      03210-20120327-WA.prj
03210-20120327-BldA.shp      03210-20120327-WA.shp
03210-20120327-BldA.shx      03210-20120327-WA.shx
03210-20120327-BldL.dbf      03210-20120327-WF.dbf
03210-20120327-BldL.prj      03210-20120327-WF.prj
03210-20120327-BldL.shp      03210-20120327-WF.shp
03210-20120327-BldL.shx      03210-20120327-WF.shx
03210-20120327-CommBdry.dbf  03210-20120327-WL.dbf
03210-20120327-CommBdry.prj  03210-20120327-WL.prj
03210-20120327-CommBdry.shp  03210-20120327-WL.shp
03210-20120327-CommBdry.shx  03210-20120327-WL.shx
03210-20120327-RailCL.dbf    03210-20120327-WStrA.dbf
03210-20120327-RailCL.prj    03210-20120327-WStrA.prj
03210-20120327-RailCL.shp    03210-20120327-WStrA.shp
03210-20120327-RailCL.shx    03210-20120327-WStrA.shx
03210-20120327-RdCompt.dbf   03210-20120327-WStrL.dbf
03210-20120327-RdCompt.prj   03210-20120327-WStrL.prj
03210-20120327-RdCompt.shp   03210-20120327-WStrL.shp
03210-20120327-RdCompt.shx   03210-20120327-WStrL.shx
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-AdmBdry.shp rikuzentakata_kukakusen > rikuzentakata_kukakusen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-BldA.shp rikuzentakata_kenchiku > rikuzentakata_kenchiku.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentakata_kukakusen.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentakata_kenchiku.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql nippon_bmi
psql (9.1.11)
"help" でヘルプを表示します.

nippon_bmi=> \dt
                   リレーションの一覧
 スキーマ |          名前           |    型    | 所有者 
----------+-------------------------+----------+--------

---
 public   | rikuzentakata_kenchiku  | テーブル | user
 public   | rikuzentakata_kukakusen | テーブル | user
---
(24 行)

(END):q


他のデータもデータベースに登録します。

user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-CommBdry.shp rikuzentakata_choaza > rikuzentaka_choaza.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-RailCL.shp rikuzentakata_kido > rikuzentaka_kido.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-RdCompt.shp rikuzentakata_dorokozo > rikuzentaka_dorokozo.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-RdEdg.shp rikuzentakata_doro > rikuzentaka_doro.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-WA.shp rikuzentakata_suiiki > rikuzentaka_suiiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-WF.shp rikuzentakata_kaigan > rikuzentaka_kaigan.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-WL.shp rikuzentakata_suigai > rikuzentaka_suigai.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-WStrA.shp rikuzentakata_suikozo > rikuzentaka_suikozo.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ shp2pgsql -W sjis 03210-20120327-WStrL.shp rikuzentakata_suikozosen > rikuzentaka_suikozosen.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_choaza.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_kido.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_dorokozo.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_doro.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_suiiki.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_kaigan.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_suigai.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_suikozo.sql
user@debian7-vmw:~/mapdata/rikuzentakata$ psql -d nippon_bmi -f rikuzentaka_suikozosen.sql

37 - 陸前高田市の地図の表示 2 - 国土数値情報(岩手県)をデータベースに登録

37-2 シェイプファイルをデータベースに登録
shp2pgsql と psql コマンドを使ってシェイプファイルをデータベースに登録します。

user@debian7-vmw:~/mapdata/nlni/river$ cd ../kuiki/iwate/
user@debian7-vmw:~/mapdata/nlni/kuiki/iwate$ ls
KS-META-N03-13_03_130401.xml  N03-13_03_130401.sbn  N03-13_03_130401.shx
N03-130401_03_GML.zip         N03-13_03_130401.sbx  N03-13_03_130401.xml
N03-13_03_130401.dbf          N03-13_03_130401.shp
user@debian7-vmw:~/mapdata/nlni/kuiki/iwate$ shp2pgsql -W sjis N03-13_03_130401.shp iwate_kuiki > iwate_kuiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/mapdata/nlni/kuiki/iwate$ psql -d nippon_nlni -f iwate_kuiki.sql

user@debian7-vmw:~/mapdata/nlni/kuiki/iwate$ cd ../../public_facilities/iwate/
user@debian7-vmw:~/mapdata/nlni/public_facilities/iwate$ ls
KS-META-P02-06_03-g.xml         P02-06_03-g_PublicFacility.shp
P02-06_03-g.xml                 P02-06_03-g_PublicFacility.shx
P02-06_03-g_PublicFacility.dbf  P02-06_03_GML.zip
user@debian7-vmw:~/mapdata/nlni/public_facilities/iwate$ shp2pgsql -W sjis P02-06_03-g_PublicFacility.shp iwate_pf > iwate_pf.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian7-vmw:~/mapdata/nlni/public_facilities/iwate$ psql -d nippon_nlni -f iwate_pf.sql
user@debian7-vmw:~/mapdata/nlni/public_facilities/iwate$ psql nippon_nlni
psql (9.1.11)
"help" でヘルプを表示します.

nippon_nlni=> \dt
               リレーションの一覧
 スキーマ |       名前       |    型     | 所有者 
----------+------------------+----------+--------
 public   | geometry_columns | テーブル | user
 public   | iwate_kuiki      | テーブル | user
 public   | iwate_pf         | テーブル | user
 public   | lake             | テーブル | user
 public   | railroad         | テーブル | user
 public   | spatial_ref_sys  | テーブル | user
 public   | station          | テーブル | user
 public   | tokyo_kuiki      | テーブル | user
 public   | tokyo_pf         | テーブル | user
 public   | tokyo_river      | テーブル | user
 public   | tokyo_stream     | テーブル | user
(11 行)

(stdin):q
nippon_nlni=> \q

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

2013年11月13日水曜日

12 - 国土数値情報 2 - データベースに登録

12-2 シェイプファイルをデータベースに登録
shp2pgsql と psql コマンドを使ってシェイプファイルをデータベースに登録します。

user@debian7-vmw:~/ダウンロード/nlni$ ls
lake  public_facilities  railroad  river
user@debian7-vmw:~/ダウンロード/nlni$ cd lake/
user@debian7-vmw:~/ダウンロード/nlni/lake$ ls
KS-META-W09-05-g.xml  W09-05-g_Lake.dbf  W09-05-g_Lake.shx
W09-05-g.xml          W09-05-g_Lake.shp  W09-05_GML.zip
user@debian7-vmw:~/ダウンロード/nlni/lake$  shp2pgsql -W sjis W09-05-g_Lake.shp lake > lake.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
user@debian7-vmw:~/ダウンロード/nlni/lake$ psql -d nippon_nlni -f lake.sql
psql:lake.sql:8: NOTICE:  CREATE TABLEはシリアル列"lake.gid"用に暗黙的なシーケンス"lake_gid_seq"を作成します。
psql:lake.sql:8: NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"lake"に暗黙的なインデックス"lake_pkey"を作成します
---
INSERT 0 1
COMMIT
user@debian7-vmw:~/ダウンロード/nlni/public_facilities$ ls
KS-META-P02-06_13-g.xml         P02-06_13-g_PublicFacility.shp
P02-06_13-g.xml                 P02-06_13-g_PublicFacility.shx
P02-06_13-g_PublicFacility.dbf  P02-06_13_GML.zip
user@debian7-vmw:~/ダウンロード/nlni/public_facilities$ shp2pgsql -W sjis P02-06_13-g_PublicFacility.shp tokyo_pf > tokyo_pf.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian7-vmw:~/ダウンロード/nlni/public_facilities$ psql -d nippon_nlni -f tokyo_pf.sql

user@debian7-vmw:~/ダウンロード/nlni/railroad$ ls
KS-META-N02-12.xml  N02-12_RailroadSection.dbf  N02-12_Station.dbf
N02-12.xml          N02-12_RailroadSection.shp  N02-12_Station.shp
N02-12_GML.zip      N02-12_RailroadSection.shx  N02-12_Station.shx
user@debian7-vmw:~/ダウンロード/nlni/railroad$ shp2pgsql -W sjis N02-12_RailroadSection.shp railroad > railroad.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/ダウンロード/nlni/railroad$ shp2pgsql -W sjis N02-12_Station.shp station > station.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/ダウンロード/nlni/railroad$ psql -d nippon_nlni -f railroad.sql > railroad.log
psql:railroad.sql:8: NOTICE:  CREATE TABLEはシリアル列"railroad.gid"用に暗黙的なシーケンス"railroad_gid_seq"を作成します。
psql:railroad.sql:8: NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"railroad"に暗黙的なインデックス"railroad_pkey"を作成します
user@debian7-vmw:~/ダウンロード/nlni/railroad$ psql -d nippon_nlni -f station.sql > station.log
psql:station.sql:9: NOTICE:  CREATE TABLEはシリアル列"station.gid"用に暗黙的なシーケンス"station_gid_seq"を作成します。
psql:station.sql:9: NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"station"に暗黙的なインデックス"station_pkey"を作成します

user@debian7-vmw:~/ダウンロード/nlni/river$ ls
KS-META-W05-08_13-g.xml    W05-08_13-g_RiverNode.shp  W05-08_13-g_Stream.shp
W05-08_13-g.xml            W05-08_13-g_RiverNode.shx  W05-08_13-g_Stream.shx
W05-08_13-g_RiverNode.dbf  W05-08_13-g_Stream.dbf     W05-08_13_GML.zip
user@debian7-vmw:~/ダウンロード/nlni/river$ shp2pgsql -W sjis W05-08_13-g_RiverNode.shp tokyo_river > tokyo_river.sql
Shapefile type: Point
Postgis type: POINT[2]
user@debian7-vmw:~/ダウンロード/nlni/river$ shp2pgsql -W sjis W05-08_13-g_Stream.shp tokyo_stream > tokyo_stream.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
user@debian7-vmw:~/ダウンロード/nlni/river$ psql -d nippon_nlni -f tokyo_river.sql > tokyo_river.log
psql:tokyo_river.sql:7: NOTICE:  CREATE TABLEはシリアル列"tokyo_river.gid"用に暗黙的なシーケンス"tokyo_river_gid_seq"を作成します。
psql:tokyo_river.sql:7: NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"tokyo_river"に暗黙的なインデックス"tokyo_river_pkey"を作成します
user@debian7-vmw:~/ダウンロード/nlni/river$ psql -d nippon_nlni -f tokyo_stream.sql > tokyo_stream.log
psql:tokyo_stream.sql:14: NOTICE:  CREATE TABLEはシリアル列"tokyo_stream.gid"用に暗黙的なシーケンス"tokyo_stream_gid_seq"を作成します。
psql:tokyo_stream.sql:14: NOTICE:  CREATE TABLE / PRIMARY KEYはテーブル"tokyo_stream"に暗黙的なインデックス"tokyo_stream_pkey"を作成します

2013年11月12日火曜日

11 - PostGIS 2 - データベースの作成

11-2 データベースの作成
データベースを作成し、一般ユーザを登録します。
PostGISホームページ
http://postgis.net/

の Documentation ボタンをクリックします。

PostGIS - Documentation
http://postgis.net/documentation

の PostGIS 1.5(HTML)をクリックします。

PostGIS 1.5 Manual
http://postgis.net/docs/manual-1.5/

の

Chapter 2. Installation
http://postgis.net/docs/manual-1.5/ch02.html

の 2.5. Create a spatially-enabled database を参考に東京都のデータのデータベースを作成します。
plpgsql は PostGIS 関数でも使われる(手続き型)プログラミング言語です。
postgis.sql は PostGIS のオブジェクトと関数定義ファイルです。
spatial_ref_sys.sql は投影法(EPSG)に関する定義ファイルです。
postgis_comments.sql は postgis が持つ関数についてのコメント(ヘルプ)文章です。

次に、2.6 Creating PostGIS spatially-enabled databases from a template を参考にテンプレートを作成してデータベースを作成します。
これには3つのステップがあります。

1:データベースの作成
2:PostgreSQLのpl/pgsql言語サポートの有効化
3:postgis.sqlの読み込み
4:spatial_ref_sys.sqlの読み込み
5:postgis_comments.sqlの読み込み

です。

postgres@debian7-vmw:~$ createdb template_postgis
postgres@debian7-vmw:~$ createlang plpgsql template_postgis
createlang: 言語"plpgsql"データベース"template_postgis"内にすでにインストールされています
postgres@debian7-vmw:~$ psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
---
DROP FUNCTION
postgres@debian7-vmw:~$ psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
---
INSERT 0 1
COMMIT
ANALYZE

作成したtemplate_postgisをテンプレートとしてオーナーが user で nippon_nlni というデータベースを作成します。

postgres@debian7-vmw:~$ createdb -T template_postgis -O user nippon_nlni
postgres@debian7-vmw:~$ psql -l
                                             データベース一覧
       名前       |  所有者  |エンコーディング |  照合順序  |Ctype(変換演算子)|      アクセス権       
------------------+---------+----------------+-----------+-----------------+-----------------------
 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     | 
(5 行)

(stdin):q

nippon_nlni データベースの geography_columns テーブルと geometry_column テーブル、 spatial_ref_sys テーブルのオーナーを user に変更します。

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

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

PostGIS マニュアルの

Chapter 4. Using PostGIS: Data Management and Querie
http://postgis.refractions.net/documentation/manual-1.5/ch04.html

の 4.2 PostGIS Geography Type によると
geography_columns は、2点間の最短距離を球面上で計算するデータ型です。
実際の距離に近くなりますが、計算が複雑で、現在は EPSG:4326(WGS84)だけ装備されています。
geometry_columns は、2点間の最短距離を平面上で計算するデータ型です。

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

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


nippon_nlni=# CREATE USER user;
ERROR: ロール"user"はすでに存在します
nippon_nlni=# ALTER USER user with password 'password(任意)';
ALTER ROLE
nippon_nlni=# \q
postgres@debian7-vmw:~$ exit
ログアウト
user@debian7-vmw:~$


続けて東京都のデータを登録します。

user@debian7-vmw:~/mapdata/tokyo$ ls
KS-META-N03-13_13_130401.xml  N03-13_13_130401.sbx  akiruno
N03-130401_13_GML.zip         N03-13_13_130401.shp
N03-13_13_130401.dbf          N03-13_13_130401.shx
N03-13_13_130401.sbn          N03-13_13_130401.xml
~/mapdata/tokyo$ shp2pgsql -W sjis N03-13_13_130401.shp tokyo_kuiki > tokyo_kuiki.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]

user@debian7-vmw:~/mapdata/tokyo$ psql -d nippon_nlni -f tokyo_kuiki.sql
user@debian7-vmw:~/mapdata/tokyo$ psql nippon_nlni
psql (9.1.9)
"help" でヘルプを表示します.

nippon_nlni=> \dt
               リレーションの一覧
 スキーマ |       名前       |    型    | 所有者 
----------+------------------+----------+--------
 public   | geometry_columns | テーブル | user
 public   | spatial_ref_sys  | テーブル | user
 public   | tokyo_kuiki      | テーブル | user
(3 行)

nippon_nlni=> \d tokyo_kuiki
                                テーブル "public.tokyo_kuiki"
  カラム  |          型           |                          修飾語                           
----------+-----------------------+-----------------------------------------------------------
 gid      | integer               | not null default nextval('tokyo_kuiki_gid_seq'::regclass)
 n03_001  | character varying(10) | 
 n03_002  | character varying(20) | 
 n03_003  | character varying(20) | 
 n03_004  | character varying(20) | 
 n03_007  | character varying(5)  | 
 the_geom | geometry              | 
インデックス:
    "tokyo_kuiki_pkey" PRIMARY KEY, btree (gid)
CHECK 制約:
    "enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2)
    "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'MULTI
POLYGON'::text OR the_geom IS NULL)
    "enforce_srid_the_geom" CHECK (st_srid(the_geom) = (-1))
~
~
(stdin):q
nippon_nlni=> \q

他のデータも登録します。
次回の投稿で作業内容を載せておきます。

2011年4月24日日曜日

16 pgRouting in Debian6 3 - データベースの作成

Step 3: Create a routing database and load PostGIS and pgRouting functions
に従って routing データベースを作成します。

1. Create a routing database and load PostGIS
次のコマンドでデータベースを作成します。

user@deb6-vmw:~/pgrouting-1.05$ su - postgres
パスワード:
postgres@deb6-vmw:~$ createdb -T template_postgis routing

2. Add pgRouting core functions (required)
次のコマンドで pgRouting core 関数を追加します。

postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_core.sql routing
CREATE TYPE
CREATE TYPE
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_core_wrappers.sql routing
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE TYPE
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_topology.sql routing
CREATE FUNCTION
CREATE FUNCTION

3. Add pgRouting extra functions (optional)
次のコマンドで pgRouting extra 関数を追加します。

# With TSP
postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_tsp.sql routing
postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_tsp_wrappers.sql routing

# With Driving Distance
postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_dd.sql routing
postgres@deb6-vmw:~$ psql -f /usr/share/postlbs/routing_dd_wrappers.sql routing

続く ...

2008年7月24日木曜日

PostGISで地図を表示 2データベースの作成

データベースを作成し、一般ユーザを登録します。

PostGISホームページ
http://postgis.refractions.net/

のDocumentation(html)の

PostGIS Manual
http://postgis.refractions.net/docs/

の

Chapter 2. Installation
http://postgis.refractions.net/docs/ch02.html

の2.2PostGISの5,6,7を参考に前回使用した東京都のデータを使用したデータベースを作成します。
これには3つのステップがあります。

1:PostgreSQLのpl/pgsql言語サポートの有効化
2:lwpostgis.sqlの読み込み
3:spatial_ref_sys.sqlの読み込み

です。
pl/pgsqlはデータベース内に組み込むことができる内部的なプログラミング言語をサポートします。
lwpostgis.sqlはPostGISの機能で、pl/pgsqlが有効になって読み込むことができます。
spatial_ref_sys.sqlは投影法に関する情報です。
lwpostgis.sqlとspatial.sqlの場所は、SynapticパッケージマネージャでPostGISを検索し、プロパティをクリックして、インストール済みパッケージタブをクリックすると表示されます。

postgres@debian:~$ createdb template_postgis
postgres@debian:~$ createlang plpgsql template_postgis
postgres@debian:~$ psql -d template_postgis -f /usr/share/postgresql-8.1-postgis/lwpostgis.sql
postgres@debian:~$ psql -d template_postgis -f /usr/share/postgresql-8.1-postgis/spatial_ref_sys.sql

作成したtemplate_postgisをテンプレートとしてオーナーがuserでtokyoというデータベースを作成します。

postgres@debian:~$ createdb -T template_postgis -O user tokyo
postgres@debian:~$ psql -l
List of databases
Name | Owner | Encoding
------------------+----------+----------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
template_postgis | postgres | UTF8
tokyo | user | UTF8


ここまでの作業をテンプレートを作成しないで、直接tokyoというデータベースを作成することもできます。
そのときは、template_postgisをtokyoと読み替えてください。

tokyoデータベースのgeometry_columnテーブルとspatial_ref_sysテーブルのオーナーをuserに変更します。

postgres@debian:~$ psql tokyo
Welcome to psql 8.1.11, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

tokyo=# \d
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+----------
public | geometry_columns | table | postgres
public | spatial_ref_sys | table | postgres
(2 rows)

tokyo=# ALTER TABLE geometry_columns OWNER TO user;
ALTER TABLE
tokyo=# ALTER TABLE spatial_ref_sys OWNER TO user;
ALTER TABLE
tokyo=# \d
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | user
public | spatial_ref_sys | table | user
(2 rows)

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

tokyo=# CREATE USER user;
ERROR: role "user" already exists (既に登録済み場合)
tokyo=# ALTER USER user with password 'password'; ('password' ''内の pasword は任意)
ALTER ROLE
tokyo=# \q