1 / 44

PostGIS - 1 ( 入門編)

PostGIS - 1 ( 入門編). PostGIS - 1 (入門編). PostGIS と PostgreSQL について ( PostGIS とは何か) DBMS と SQL ( 基本的な SQL 構文について) PostGIS ジオメトリーと SRS ( PostGIS のジオメトリーと投影系について) 様々なジオメトリータイプ PostGIS ジオメトリーの作り方 EPSG コード PostGIS データの作り方 (一番簡単なジオメトリーを実際に手で作って見る。ポイントデータだけ)

Download Presentation

PostGIS - 1 ( 入門編)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PostGIS - 1(入門編)

  2. PostGIS- 1(入門編) • PostGISとPostgreSQLについて (PostGISとは何か) • DBMSとSQL (基本的なSQL構文について) • PostGISジオメトリーとSRS (PostGISのジオメトリーと投影系について) • 様々なジオメトリータイプ • PostGISジオメトリーの作り方 • EPSGコード • PostGISデータの作り方 (一番簡単なジオメトリーを実際に手で作って見る。ポイントデータだけ) • ポイントデータは、http://www.geocoding.jp を使って様々な対象物の座標を取り出す。 • PostGISへのデータの取り込み (既存のデータの取り込み方) • QGIS • shp2pgsql • そのほか • 実習 • シェープファイルの取り込み (ポイント、ライン、ポリゴン) • 非空間情報と空間クエリー(単一テーブル) • 課題

  3. PostGISとPostgreSQLについて (PostGISとは何か) • PostGISとは、PostgreSQLデーターベースを機能拡張させ、空間情報を扱えるようにした空間データベース • 空間情報の検索、作成、操作ができる • 現在は、ベクターデータのみを扱える • 近い将来、ラスターも扱える

  4. DBMSとSQL • PostGISを使うには、データベースの基礎知識が必要となる。 • そのためここでは少し、データベース操作の基礎となる、データベースマネージメントとSQLについてpgAdmin III を使って勉強する

  5. pgAdmin III • pgAdminは、PostgreSQLの操作をグラフィカルユーザーインターフェース(GUI)で可能にする • コマンドライン(CUI)のpsqlよりも使いやすい! • PostGISのコマンドはすべてpgAdminから可能

  6. pgAdmin III データベースの中身 データベースサーバー スキーマ データベース テーブル

  7. スキーマとは? データベース内に作られるディレクトリーのようなもの スキーマ間の情報検索が可能 (データベース間は不可能) 例えば、基本的なデータは、 ‘base’というスキーマに保存し、プロジェクトAに関するデータは、’project_a’というスキーマに保存する。 データのバックアップなど、維持管理が簡単になる。 CREATE SCHEMA project_a;

  8. PostGISのすべてのファンクションが収められているPostGISのすべてのファンクションが収められている ファンクション 各テーブルのジオメトリーについての情報が収められる ジオメトリーコラム テーブル 空間参照系 テーブル 空間参照系(SRS)についての情報が収められている

  9. 空間参照ID (SRID) • 座標参照系(CRS)が標準化されている • 代表的なコード系はEPSG(European Petroleum Survey Group)コード • 例えば、 • www.spatialreference.org

  10. PostGISが動くデータベースを作る 日本語を使う場合 1.データベースのルートで右クリックして、まずは、すべてのデータベースを更新する 2.続いて、同じ場所で右クリックをして、データベースを新規に作成する。

  11. データベース用語 • データベース • スキーマ • データベースの下に作られるディレクトリー構造のようなもの • テーブル • データを収める入れ物 • ビュー • データ自身ではなく、データを検索するクエリーを保存したもの

  12. テーブルの作成 • テーブルの作成、削除、修正、検索などはSQL(Structures Query Language)を用いて行う。 • SQLはプログラム言語ではなく、データベースと話をするための言葉

  13. テーブルの作成 • 例えば、下のようなテーブルを作るとすると、 CREATE TABLE my_table(id int4, placevarchar (20));

  14. データの挿入 • 先ほどのテーブルにデータを格納するには、 INSERT INTO my_table VALUES (1, 'Tokyo'); INSERT INTO my_table VALUES (2, 'Sapporo'); INSERT INTO my_table VALUES (3, 'Sendai');

  15. ジオメトリー列の挿入 • 先ほどのテーブルに、ジオメトリーを保存するための列を挿入する。 SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2);

  16. ジオメトリーを挿入 • 先ほど挿入したジオメトリー列に実際の場所の情報を格納する UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326)WHERE place = ′Tokyo′; UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (141.350801 43.068625) ′ 4326)WHERE place = ′Sappro′; UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (140.882049 38.260297) ′ 4326)WHERE place = ′Sendai′;

  17. プライマリーキーの設定 • プライマリーキーとは、テーブルの各行を一意に識別するための列。QGISでデータを見るために必要。この場合、Idをキーに設定。 ALTER TABLW my_table ADD CONSTRAINT pkey_my_table PRIMARY KEY (Id);

  18. テーブルの作成 CREATE TABLE my_table(id int4, placevarchar (20)); テーブルを作るコマンド 列名とデータタイプ 列名とデータタイプ テーブル名 セミコロン

  19. テーブルの作成 • PostgreSQLのデータタイプ

  20. データの挿入 INSERT INTO my_table VALUES (1, 'Tokyo'); データを挿入するコマンド データを挿入するコマンド 挿入するデータ 各列の順番に対応 データを挿入するテーブル

  21. 挿入したデータの検索 • テーブル内のすべての行と列を表示 • Tokyoのidを表示 -> テーブルから、列placeが‘Tokyo’であるidの行を表示 SELECT * FROM my_table; テーブルの指定 テーブル名 行を検索 するコマンド SELECT id FROM my_tableWHERE place = ‘Tokyo’;

  22. ジオメトリー列の挿入 SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2); my_table my_tableにジオメトリーを保存するための列を挿入 geometry_columnsテーブルに挿入したジオメリー列とそのテーブルに関する情報を挿入 geometry_columns

  23. ジオメトリー列の挿入 SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2); • ADDGEOMETRYCOLUMNはPostGISコマンド • 必要な情報は、 • スキーマ名(省略可) : ‘public’ • テーブル名 : ‘my_table’ • ジオメトリー列名 : ‘the_geom’ • 地理参照系ID (EPSG) : 4326 • ジオメトリータイプ : ‘POINT’ • 地理参照系の次元 : 2

  24. ジオメトリータイプ •  ジオメトリーとは、表現したい対象の幾何的な形状 • 実際の世界をモデル化するためにいくつかのジオメトリーが考えられるが、点、線、面であらわすのが一般的 • PostGISのジオメトリータイプには、点、線、面、に対応する、POINT、LINESTRING、POLYGONが用意されて いる。 • PostGISでは、代表的な3タイプの他に多数のジオメトリータイプがある

  25. ジオメトリータイプ • POINT • LINESTRING • POLYGON

  26. ジオメトリーを挿入 UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326)WHERE place = ′Tokyo′; UPDATE my_table SETthe_geom = XXX; 既存の行の内容を変更するコマンド

  27. ジオメトリーを挿入 ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326) • じ ジオメトリーをテキスト表現から作るコマンド SRID ジオメトリーをテキストで表現 UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326)WHERE place = ′Tokyo′;

  28. ジオメトリーを挿入 ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326) (139.691701 35.689506) (経度 緯度) スペース!

  29. ジオメトリーを挿入 UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (139.691701 35.689506)′ 4326) WHERE place = ′Tokyo′;

  30. プライマリーキーの設定 • データ(各行)が一意であることを保障する仕組み 制限名。この場合プライマリーキー名 テーブルに何かしらの規制を加えるためのコマンド ALTER TABLE my_table ADD CONSTRAINT pkey_my_tablePRIMARY KEY (Id); 規制がプライマリーキーであることの宣言 プライマリーキーを設定する列名

  31. テーブル my_table コメント テーブルについてコメントを残せる データベース class2010 インデックス スキーマ public 列 Id, place, the_geom 制限 プライマリーキー

  32. 実際のテーブル

  33. 実際には、、、 • テーブルを一から作り上げることは少ない • 既存のデータを使うことが多い • ということで、、、 • PostGISへのデータの取り込み方を知る必要がある

  34. PostGISへのデータの取り込み • psql2shp • コマンドラインツール、shapefileのみ • QGIS • SPIT(Shapefile to PostGIS Import Tool) • ogr2ogr • コマンドラインツール、さまざまなフォーマット • ogr2gui • ogr2ogrのGUIバージョン

  35. shp2pgsql • PostGISと共にインストールされるshapefileをインポートするためのプログラム • C:\Program Files\PostgreSQL\8.4\bin\ あたりにあるshp2pgsql.exeがその正体 • このプログラムを使うには、プログラムのディレクトリーへ移動するか、パスを設定する • 今回は、shp2pgsql.batをC:\OSGeo4W\etc\ini\ に保存して、OSGeo4Wから使う

  36. shp2pgsql shp2pgsql -s SRID -I shapefiletableame > sql_file_name コマンド SRIDを指定 Shapefile名 テーブル名 作成されるSQL文の 保存先とファイル名 空間インデックスを作成 ファイルとして保存 SQL文の作成

  37. shp2pgsql shp2pgsql -s SRID -I shapefileテーブル名 | psql -h localhost -p 5432 -d データベース名 -U postgres • Shp2pgsqlで作ったSQL文をパイプ(|)を使ってpsqlというプログラム渡し、データベースにshapfileの中身をインポート • 途中の産物がない

  38. QGISを使ったShapefileの取り込み • QGISのアドインマネージャーで、SPITを使えるようにする。

  39. インポート先のデータベースの設定 インポートするデータの形式設定 Shapefileの選択・追加

  40. PostGISからエクスポート • pgsql2shp • QGIS

  41. pgsql2shp • PostGISデーターをshapefileに変換 Pgsql2shp -f shepefile名-h localhost -u postgresデータベース名 テーブル名

  42. Shapefileとして保存 を選択

More Related