postgis 1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
PostGIS - 1 ( 入門編) PowerPoint Presentation
Download Presentation
PostGIS - 1 ( 入門編)

Loading in 2 Seconds...

play fullscreen
1 / 44

PostGIS - 1 ( 入門編) - PowerPoint PPT Presentation


  • 214 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'PostGIS - 1 ( 入門編)' - vance-merrill


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
postgis 11
PostGIS- 1(入門編)
  • PostGISとPostgreSQLについて (PostGISとは何か)
  • DBMSとSQL (基本的なSQL構文について)
  • PostGISジオメトリーとSRS (PostGISのジオメトリーと投影系について)
    • 様々なジオメトリータイプ
    • PostGISジオメトリーの作り方
    • EPSGコード
  • PostGISデータの作り方 (一番簡単なジオメトリーを実際に手で作って見る。ポイントデータだけ)
    • ポイントデータは、http://www.geocoding.jp を使って様々な対象物の座標を取り出す。
  • PostGISへのデータの取り込み (既存のデータの取り込み方)
    • QGIS
    • shp2pgsql
    • そのほか
  • 実習
    • シェープファイルの取り込み (ポイント、ライン、ポリゴン)
    • 非空間情報と空間クエリー(単一テーブル)
    • 課題
postgis postgresql postgis
PostGISとPostgreSQLについて (PostGISとは何か)
  • PostGISとは、PostgreSQLデーターベースを機能拡張させ、空間情報を扱えるようにした空間データベース
  • 空間情報の検索、作成、操作ができる
  • 現在は、ベクターデータのみを扱える
    • 近い将来、ラスターも扱える
dbms sql
DBMSとSQL
  • PostGISを使うには、データベースの基礎知識が必要となる。
  • そのためここでは少し、データベース操作の基礎となる、データベースマネージメントとSQLについてpgAdmin III を使って勉強する
pgadmin iii
pgAdmin III
  • pgAdminは、PostgreSQLの操作をグラフィカルユーザーインターフェース(GUI)で可能にする
  • コマンドライン(CUI)のpsqlよりも使いやすい!
  • PostGISのコマンドはすべてpgAdminから可能
pgadmin iii1
pgAdmin III

データベースの中身

データベースサーバー

スキーマ

データベース

テーブル

slide7
スキーマとは?

データベース内に作られるディレクトリーのようなもの

スキーマ間の情報検索が可能 (データベース間は不可能)

例えば、基本的なデータは、 ‘base’というスキーマに保存し、プロジェクトAに関するデータは、’project_a’というスキーマに保存する。

データのバックアップなど、維持管理が簡単になる。

CREATE SCHEMA project_a;

slide8

PostGISのすべてのファンクションが収められているPostGISのすべてのファンクションが収められている

ファンクション

各テーブルのジオメトリーについての情報が収められる

ジオメトリーコラム

テーブル

空間参照系

テーブル

空間参照系(SRS)についての情報が収められている

id srid
空間参照ID (SRID)
  • 座標参照系(CRS)が標準化されている
  • 代表的なコード系はEPSG(European Petroleum Survey Group)コード
  • 例えば、
  • www.spatialreference.org
postgis
PostGISが動くデータベースを作る

日本語を使う場合

1.データベースのルートで右クリックして、まずは、すべてのデータベースを更新する

2.続いて、同じ場所で右クリックをして、データベースを新規に作成する。

slide11
データベース用語
  • データベース
    • スキーマ
        • データベースの下に作られるディレクトリー構造のようなもの
      • テーブル
        • データを収める入れ物
      • ビュー
        • データ自身ではなく、データを検索するクエリーを保存したもの
slide12
テーブルの作成
  • テーブルの作成、削除、修正、検索などはSQL(Structures Query Language)を用いて行う。
  • SQLはプログラム言語ではなく、データベースと話をするための言葉
slide13
テーブルの作成
  • 例えば、下のようなテーブルを作るとすると、

CREATE TABLE my_table(id int4, placevarchar (20));

slide14
データの挿入
  • 先ほどのテーブルにデータを格納するには、

INSERT INTO my_table VALUES (1, 'Tokyo');

INSERT INTO my_table VALUES (2, 'Sapporo');

INSERT INTO my_table VALUES (3, 'Sendai');

slide15
ジオメトリー列の挿入
  • 先ほどのテーブルに、ジオメトリーを保存するための列を挿入する。

SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2);

slide16
ジオメトリーを挿入
  • 先ほど挿入したジオメトリー列に実際の場所の情報を格納する

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′;

slide17
プライマリーキーの設定
  • プライマリーキーとは、テーブルの各行を一意に識別するための列。QGISでデータを見るために必要。この場合、Idをキーに設定。

ALTER TABLW my_table ADD CONSTRAINT pkey_my_table PRIMARY KEY (Id);

slide19
テーブルの作成

CREATE TABLE my_table(id int4, placevarchar (20));

テーブルを作るコマンド

列名とデータタイプ

列名とデータタイプ

テーブル名

セミコロン

slide20
テーブルの作成
  • PostgreSQLのデータタイプ
slide21
データの挿入

INSERT INTO my_table VALUES (1, 'Tokyo');

データを挿入するコマンド

データを挿入するコマンド

挿入するデータ

各列の順番に対応

データを挿入するテーブル

slide22
挿入したデータの検索
  • テーブル内のすべての行と列を表示
  • Tokyoのidを表示 -> テーブルから、列placeが‘Tokyo’であるidの行を表示

SELECT * FROM my_table;

テーブルの指定

テーブル名

行を検索

するコマンド

SELECT id FROM my_tableWHERE place = ‘Tokyo’;

slide23
ジオメトリー列の挿入

SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2);

my_table

my_tableにジオメトリーを保存するための列を挿入

geometry_columnsテーブルに挿入したジオメリー列とそのテーブルに関する情報を挿入

geometry_columns

slide24
ジオメトリー列の挿入

SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2);

  • ADDGEOMETRYCOLUMNはPostGISコマンド
  • 必要な情報は、
    • スキーマ名(省略可) : ‘public’
    • テーブル名 : ‘my_table’
    • ジオメトリー列名 : ‘the_geom’
    • 地理参照系ID (EPSG) : 4326
    • ジオメトリータイプ : ‘POINT’
    • 地理参照系の次元 : 2
slide25
ジオメトリータイプ
  •  ジオメトリーとは、表現したい対象の幾何的な形状
  • 実際の世界をモデル化するためにいくつかのジオメトリーが考えられるが、点、線、面であらわすのが一般的
  • PostGISのジオメトリータイプには、点、線、面、に対応する、POINT、LINESTRING、POLYGONが用意されて いる。
  • PostGISでは、代表的な3タイプの他に多数のジオメトリータイプがある
slide26
ジオメトリータイプ
  • POINT
  • LINESTRING
  • POLYGON
slide27
ジオメトリーを挿入

UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326)WHERE place = ′Tokyo′;

UPDATE my_table SETthe_geom = XXX;

既存の行の内容を変更するコマンド

slide28
ジオメトリーを挿入

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′;

slide29
ジオメトリーを挿入

ST_GeomFromText (′POINT (139.691701 35.689506) ′ 4326)

(139.691701 35.689506)

(経度 緯度)

スペース!

slide30
ジオメトリーを挿入

UPDATE my_table SET the_geom =

ST_GeomFromText (′POINT (139.691701 35.689506)′ 4326)

WHERE place = ′Tokyo′;

slide31
プライマリーキーの設定
  • データ(各行)が一意であることを保障する仕組み

制限名。この場合プライマリーキー名

テーブルに何かしらの規制を加えるためのコマンド

ALTER TABLE my_table ADD CONSTRAINT pkey_my_tablePRIMARY KEY (Id);

規制がプライマリーキーであることの宣言

プライマリーキーを設定する列名

slide32

テーブル

my_table

コメント

テーブルについてコメントを残せる

データベース

class2010

インデックス

スキーマ

public

Id, place, the_geom

制限

プライマリーキー

slide35
実際には、、、
  • テーブルを一から作り上げることは少ない
  • 既存のデータを使うことが多い
  • ということで、、、
  • PostGISへのデータの取り込み方を知る必要がある
postgis1
PostGISへのデータの取り込み
  • psql2shp
    • コマンドラインツール、shapefileのみ
  • QGIS
    • SPIT(Shapefile to PostGIS Import Tool)
  • ogr2ogr
    • コマンドラインツール、さまざまなフォーマット
  • ogr2gui
    • ogr2ogrのGUIバージョン
shp2pgsql
shp2pgsql
  • PostGISと共にインストールされるshapefileをインポートするためのプログラム
  • C:\Program Files\PostgreSQL\8.4\bin\ あたりにあるshp2pgsql.exeがその正体
  • このプログラムを使うには、プログラムのディレクトリーへ移動するか、パスを設定する
  • 今回は、shp2pgsql.batをC:\OSGeo4W\etc\ini\ に保存して、OSGeo4Wから使う
shp2pgsql1
shp2pgsql

shp2pgsql -s SRID -I shapefiletableame > sql_file_name

コマンド

SRIDを指定

Shapefile名

テーブル名

作成されるSQL文の

保存先とファイル名

空間インデックスを作成

ファイルとして保存

SQL文の作成

shp2pgsql2
shp2pgsql

shp2pgsql -s SRID -I shapefileテーブル名 | psql -h localhost -p 5432 -d データベース名 -U postgres

  • Shp2pgsqlで作ったSQL文をパイプ(|)を使ってpsqlというプログラム渡し、データベースにshapfileの中身をインポート
  • 途中の産物がない
qgis shapefile
QGISを使ったShapefileの取り込み
  • QGISのアドインマネージャーで、SPITを使えるようにする。
slide41

インポート先のデータベースの設定

インポートするデータの形式設定

Shapefileの選択・追加

pgsql2shp
pgsql2shp
  • PostGISデーターをshapefileに変換

Pgsql2shp -f shepefile名-h localhost -u postgresデータベース名 テーブル名