PostGIS - 1 (入門編).

Slides:



Advertisements
Similar presentations
PostGIS 、 QGIS 、 OGR. PostGIS 、 QGIS 、 OGR とは PostGIS とは QGIS とは – QGIS の使い方 シェープファイルの見方 WMS データの見方 PostGIS データの見方 GDAL/OGR ( OSGeo4W.exe )とは – メタデータの閲覧.
Advertisements

PostGIS 、 QGIS 、 OGR. PostGIS 、 QGIS 、 OGR とは PostGIS とは QGIS とは – QGIS の使い方 シェープファイルの見方 WMS データの見方 PostGIS データの見方 GDAL/OGR ( OSGeo4W.exe )とは – メタデータの閲覧.
QGISの操作方法について ~「地図で見る統計」を使用しコロプレスマップを描くまで~ 1. 概要です。 1 GIS について GIS というソフトについて説明します。 2 ファイル結合 複数あるファイルの処理のしかたについて説明します。 3 投影変換作業 ファイルを計算できる形に変換する方法を説明します。
PostGIS -2(応用編). PostGIS による空間情報の検索 ( SQL 応用編) PostGIS によるジオメトリー操作 (いくつかの基 本的なコマンド紹介。 intersection, buffer, など実習 で使うコマンド) PostGIS + α ( PostGIS とそのほかのオープンソー.
オープンソース GIS 入門コース PostGIS + QGIS で始める空間データ解析 2010 年 3 月 21 日 講師:今木洋大.
図書系のための アプリケーション開発講習会 2008年7月31日
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
7-1.WEKOコンテンツ 一括登録 マニュアル Version2.5
実習1:コマンドシェルの使い方.
PostGIS-2(応用編).
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
SQLite3
インターネット技術特論 H:SQLite3 山口 実靖
情報理工学部 情報システム工学科 ラシキアゼミ 3年 H 井奈波 和也
実習1:QGIS、OGR.
SQL データベースアクセスのための文法と MySQL
オープンソースGIS入門コース PostGIS+QGISで始める空間データ解析
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
オープンソースGISを用いた 自然環境解析講座
MySQLに接続するデータベースプログラム
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
ACCESSによる データベースアプリケーション開発実習 日本工業大学 情報工学科 “データベースの実際” 教材
SQL J2EE I 第3回 /
15分でわかる RefWorks 基本操作.
文献管理ソフトRefWorksの利用.
実習1:コマンドシェルの使い方.
EBSCOhost 詳細検索 チュートリアル support.ebsco.com.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
パフォーマンスチューニング on Rails
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
マイクロソフト Access を使ってみよう 第1回
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
データベースとJavaをつなげよう! ~JDBC~
2004/05/13 3-4 データ型(カラムタイプ) について 発表者:藤村元彦 自然言語処理研究室.
SQL パフォーマンス チューニング ~ カバーリングインデックス/クエリヒントの利用~
データベースを使ったプログラミング ~JDBCを使ってみよう~
JDBC J2EE I 第4回 /
SQL データベースアクセスのための文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
SQL パフォーマンス チューニング ~ プランガイドの利用~
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
JDBC データベース論 第12回.
Javaによる Webアプリケーション入門 第7回
09 06/23 PHP と SQL (MySQL) の連携 その1
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
「Webデータベースの構築技術」正誤表 ページ 項目 誤記 訂正 18 表1.4 アクセス 権限の削除 ・・・テーブル名 TO ユーザ名
テーブル設計を後から変更 現場で使える小技のご紹介 株式会社ジーワンシステム 生島 勘富(イクシマ サダヨシ)
データベース設計 第8回 クライアント=サーバーモデル(2)
データベース設計 第6回 DBMSの機能と操作方法(3) フォームとレポート
3.リレーショナルデータベース,主キー, SQL
地理情報システム論 第8回 GISによる処理技法(1) データの入手と座標系の変換 ベクタ形式における空間的演算(1)
EntityManager と EJB QL EJB 3.0 コース 第8回 2006年8月5日.
再帰CTE を使って遊ぼう 大阪#9 2012/04/14.
関係データベースとSQL MZ Platform講習会(上級).
リレーショナル・データベース J2EE I (データベース論) 第2回 /
SQL パフォーマンス チューニング ~ パフォーマンス改善 最初の一歩 ~
Googleマップを活用した 生物調査データベースの構築
09 06/23 PHP と SQL (MySQL) の連携 その3
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
地理情報システム論 第6回 GISによる処理技法 GIS入門(2)
地理情報コンテンツ・データベースコンテンツ新規作成
SQL J2EE I (データベース論) 第3回 /
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
SQL データベース論 第11回.
Presentation transcript:

PostGIS - 1 (入門編)

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

PostGISとPostgreSQLについて (PostGISとは何か) 空間情報の検索、作成、操作ができる 現在は、ベクターデータのみを扱える 近い将来、ラスターも扱える

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

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

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

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

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

空間参照ID (SRID) 座標参照系(CRS)が標準化されている 代表的なコード系はEPSG (European Petroleum Survey Group) コード 例えば、 www.spatialreference.org 参照系名 EPSGコード WGS84 4326 日本測地系2000:JGD2000 4612 Tokyo / UTM zone 54N 3095

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

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

テーブルの作成 テーブルの作成、削除、修正、検索などはSQL(Structures Query Language)を用いて行う。

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

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

ジオメトリー列の挿入 先ほどのテーブルに、ジオメトリーを保存するための列を挿入する。 Id place the_geom 1 Tokyo 2 Sapporo 3 Sendai SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2);

ジオメトリーを挿入 先ほど挿入したジオメトリー列に実際の場所の情報を格納する Id place the_geom 1 Tokyo 0101000020E6……… 2 Sapporo 3 Sendai 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′;

プライマリーキーの設定 プライマリーキーとは、テーブルの各行を一意に識別するための列。QGISでデータを見るために必要。この場合、Idをキーに設定。 Id place the_geom 1 Tokyo 0101000020E6……… 2 Sapporo 3 Sendai ALTER TABLW my_table ADD CONSTRAINT pkey_my_table PRIMARY KEY (Id);

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

テーブルの作成 PostgreSQLのデータタイプ データタイプ 説明 例 int4 整数 3 float4 浮動小数点数 1.023 varchar() テキスト ‘Tokyo’ geometry ジオメトリー 010200002E6**** date 日付 Wed Dec 17 time 時間 07:37:16 1997 PST …

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

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

ジオメトリー列の挿入 SELECT ADDGEOMETRYCOLUMN ('public', 'my_table', 'the_geom', 4326, 'POINT', 2); my_table my_tableにジオメトリーを保存するための列を挿入 geometry_columns テーブルに挿入したジオメリー列とそのテーブルに関する情報を挿入 Id place the_geom 1 Tokyo 2 Sapporo 3 Sendai ADDGEOMETRYCOLUMNはPostGISコマンド 必要な情報は、 スキーマ名(省略可) : ‘public’ テーブル名 : ‘my_table’ ジオメトリー列名 : ‘the_geom’ 地理参照系ID (EPSG) : 4326 ジオメトリータイプ : ‘POINT’ 地理参照系の次元 : 2 geometry_columns Id Schema Table Name Geometry Column SRID Geometry Type Dimension 1 Public my_table the_geom 4326 POINT 2

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

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

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

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

ジオメトリーを挿入 じ 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′;

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

ジオメトリーを挿入 UPDATE my_table SET the_geom = ST_GeomFromText (′POINT (139.691701 35.689506)′ 4326) WHERE place = ′Tokyo′; Id place the_geom 1 Tokyo 0101000020E6………

プライマリーキーの設定 データ(各行)が一意であることを保障する仕組み 制限名。この場合プライマリーキー名 テーブルに何かしらの規制を加えるためのコマンド ALTER TABLE my_table ADD CONSTRAINT pkey_my_table PRIMARY KEY (Id); 規制がプライマリーキーであることの宣言 プライマリーキーを設定する列名 Id place the_geom 1 Tokyo 0101000020E6……… 2 Sapporo 3 Sendai

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

実際のテーブル

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

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

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

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

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

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

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

PostGISからエクスポート pgsql2shp QGIS

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

Shapefileとして保存 を選択