PostGIS-2(応用編).

Slides:



Advertisements
Similar presentations
Plone の使い方. とは 日本におけるオープンソース GIS ( FOSS4G) の活用を促進するための双方向の知識 ベース 最新の GIS および周辺ソフトウェアーの動 向、利用 方法、トラブルシューティング など実践的な情報を集め共有.
Advertisements

PostGIS 、 QGIS 、 OGR. PostGIS 、 QGIS 、 OGR とは PostGIS とは QGIS とは – QGIS の使い方 シェープファイルの見方 WMS データの見方 PostGIS データの見方 GDAL/OGR ( OSGeo4W.exe )とは – メタデータの閲覧.
PostGIS 、 QGIS 、 OGR. PostGIS 、 QGIS 、 OGR とは PostGIS とは QGIS とは – QGIS の使い方 シェープファイルの見方 WMS データの見方 PostGIS データの見方 GDAL/OGR ( OSGeo4W.exe )とは – メタデータの閲覧.
組み合わせて作る オープンソース GIS 環境 鮭科生息地解析を例として (20min) 今木 洋大 ( NOAA, Northwest Fisheries Science Center )
PostGIS -2(応用編). PostGIS による空間情報の検索 ( SQL 応用編) PostGIS によるジオメトリー操作 (いくつかの基 本的なコマンド紹介。 intersection, buffer, など実習 で使うコマンド) PostGIS + α ( PostGIS とそのほかのオープンソー.
情報基礎 A 第 4 週 データベースと表計算 情報基礎 A 第 4 週 データベースと表計算 1 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
オープンソース GIS 入門コース PostGIS + QGIS で始める空間データ解析 2010 年 3 月 21 日 講師:今木洋大.
第5章 JMPのインストールと基本操作 廣野元久
AdventNet SwisSQL データベース自動移行ツール.
リレーショナル・データベース データベース論 第10回.
実習1:QGIS、OGR.
PostGIS - 1 (入門編).
ハルビン絵葉書コレクションシステムの再構築と機能追加 -サーバ側:PHPとMySQLを用いて
オープンソースGIS入門コース PostGIS+QGISで始める空間データ解析
JPAを利用した RESTful Webサービスの開発
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
オープンソースGISを用いた 自然環境解析講座
PHPエディタによる 情報システム演習 01.
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
SQL J2EE I 第3回 /
文献管理ソフトRefWorksの利用.
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
シミュレーション物理7 乱数.
空間メタデータ整備 における課題 園山 実 三菱総合研究所.
アプリケーション共有機能 〈参考〉 (図1) (図2)
PowerPoint初級編 院内研究発表入門.
FM-Tokyo Oct 30, 2004 やっと見えた! FileMaker Server Avancedの全貌
TUINS e ポートフォリオ マニュアル.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
この資料は、テキストをもとに、講義のために作成したものです.学習用に活用してください.
14.テーブル定義,一対多の関係,多対多の関係, 外部キー,索引(インデックス),データベース操作
マイクロソフト Access を使ってみよう 第5回
マイクロソフト Access を使ってみよう 第1回
データベース設計 第9回 Webインタフェースの作成(1)
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
マイクロソフト Access を使ってみよう 第4回
Microsoft Office クイックガイド ~OneNote 2013~
空間情報サーバ (株)パスコ.
生物統計学・第2回 全体を眺める(1) 各種グラフ、ヒストグラム、分布
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
SQL パフォーマンス チューニング ~ プランガイドの利用~
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
第3回.テーブルの結合 結合条件 SQL を用いた結合問い合わせ.
3-6.インデックスについて 3-7.関数と併用されることの 多いMySQLコマンド
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
テーブル設計を後から変更 現場で使える小技のご紹介 株式会社ジーワンシステム 生島 勘富(イクシマ サダヨシ)
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
データベース設計 第8回 クライアント=サーバーモデル(2)
情報システム1及び演習 第一回 データベースの概要.
豊富な投影法 座標系をまず設定する必要があります。地球面から平面への投影法,縮尺などをまず選びます。
マイクロソフト Access での SQL 演習 第2回 集計,集約
3.リレーショナルデータベース,主キー, SQL
地理情報システム論 第8回 GISによる処理技法(1) データの入手と座標系の変換 ベクタ形式における空間的演算(1)
パソコン.
統計ソフトウエアRの基礎.
環境教育関係の素材作り 島田 篤.
関係データベースとSQL MZ Platform講習会(上級).
リレーショナル・データベース J2EE I (データベース論) 第2回 /
Googleマップを活用した 生物調査データベースの構築
ネットワークプログラミング 05A1302 円田 優輝.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
Microsoft Office 2010 クイックガイド ~Excel編~
SQL J2EE I (データベース論) 第3回 /
SQL データベース論 第11回.
Presentation transcript:

PostGIS-2(応用編)

PostGIS-2(応用編) PostGISによる空間情報の検索 (SQL応用編) PostGISによるジオメトリー操作 (いくつかの基本的なコマンド紹介。intersection, buffer, など実習で使うコマンド) PostGIS+α (PostGISとそのほかのオープンソースツールについて。R、python, Google Earth, Geoserver.....) 実習 2つテーブル間のクエリー ジオメトリーの加工

PostGISによる空間情報の検索 空間情報のクエリーには、SQL文をベースにジオメトリーとPostGISのさまざまな機能を使う。 空間クエリーとは、空間に関した情報の検索で例えば、 宮城県にある温泉地が何点あるか調べたい。 県境はポリゴン、温泉は点 各テーブルは以下のようなフォーマット ID 県名 the_geom 1 宮城 ******* 2 岩手 3 秋田 県テーブル 温泉テーブル ID 温泉名 the_geom 1 鳴子 ******* 2 蔵王 3 蟹場

PostGISによる空間情報の検索 = 2 SELECT COUNT(温泉.ID) FROM 温泉, 県 WHERE ST_INTERSECTS (県.the_geom, 温泉.the_geom) AND 県.県名 = ’宮城’; ID 県名 the_geom 1 宮城 ******* 2 岩手 3 秋田 県テーブル = 2 温泉テーブル ID 温泉名 the_geom 1 鳴子 ******* 2 蔵王 3 蟹場

PostGISによる空間情報の検索 河川から200m以内にある落葉樹の本数を数える 河川テーブル 樹木テーブル ID 県名 the_geom 1 広瀬川 ******* 2 名取川 3 北上川 河川テーブル ID 県名 the_geom 1 落葉 ******* 2 常緑 3 樹木テーブル

PostGISによる空間情報の検索 = 5 SELECT COUNT(樹木.ID) FROM 河川, 樹木 WHERE ST_DWithin (河川.the_geom, 樹木.the_geom, 200) AND 樹木.樹種 = ’落葉’ AND   河川.河川名 = ‘広瀬川’; ID 河川名 the_geom 1 広瀬川 ******* 2 名取川 3 北上川 河川テーブル = 5 ID 樹種 the_geom 1 落葉 ******* 2 常緑 3 樹木テーブル

空間インデックス 空間インデックスとは、ジオメトリーにつけられるインデックスで、空間情報の検索を著しく早くすることができる。 PostGISでは、ジオメトリーがバウンディングボックス(BBox)という箱で各ジオメトリーを囲み、その箱同士の関係でインデックスを作る 複雑なジオメトリーでも、箱にすれば2つの点で表せる PostGISの情報検索は実は2段階で行われる バウンディングボックスによる検索 実際のジオメトリー情報による検索 インデックスは入れ子になった箱同士の関係を整理したもので、目的の情報にすばやくアクセスすることを可能にする

空間インデックス 例えば、ネズミAとネズミBの行動圏の重複を調べるとする。 ネズミAの行動圏のBBOXはR8で表され、ネズミBはR19で表される この場合、実際のネズミAの行動圏のポリゴンは500点から、ネズミBは300点から構成されているとする。 AとBの行動圏が重複しないのは明らかだが、もし空間インデックスを使わないならば、ネズミBの300点がネズミAの500点から構成されるポリゴン内に落ちていないことを調べる必要がある。 空間インデックスを使えば、それぞれの上位インデックスのR3とR7が交差していないことから、これらの行動圏が重複していないことがインデックスの検索だけでわかる。 http://workshops.opengeo.org/stack-intro/postgis.html より引用 ネズミA ネズミB

空間インデックスの作成 インデックス名は自分でつける(何でもよい) CREATE INDEX [インデックス名] ON [テーブル名] USING GIST ( [ジオメトリー列名] ); Vacuum Analyze  [テーブル名]; インデックス名は自分でつける(何でもよい) Vaccum Analyzeは、インデックスを実際にクエリーで使えるようにするために必須

PostGISによるジオメトリー操作 ジオメトリー操作とは、ジオメトリーに手を加えること。例えば、 二つのポリゴンの交わる面を取り出す 複雑なポリゴンを単純化する 線にバッファーを発生させる PostGISにはさまざまなジオメトリー操作のための機能がそろっている

PostGISによるジオメトリー操作 機能の一例 ST_Buffer ST_ConvexHull ST_Difference バッファーのジオメトリーを返す ST_ConvexHull 最小凸型多角形のジオメトリーを返す ST_Difference ジオメトリーAのうち、ジオメトリーBと交わらない部分のジオメトリーを返す ST_Intersection ジオメトリーAとBが共有する部分のジオメトリーを返す ST_Simplify Douglas-Peuker アルゴリズムを使ってジオメトリーを単純化する ST_Union ジオメトリーを結合した結果出来上がる点集合のジオメトリーを返す

PostGISによるジオメトリー操作 仙台市内の国道48号線の総延長を計算する 市町村テーブル 国道テーブル ID 市町村名 the_geom 1 仙台市 ******* 2 名取市 3 岩沼市 市町村テーブル ID 国道番号 the_geom 1 4 ******* 2 48 3 6 国道テーブル

PostGISによるジオメトリー操作 = SELECT ST_INTERSECTION(市町村.the_geom, 国道.the_geom) FROM   市町村,  国道 WHERE 市町村.市町村名 = ’仙台市’ AND   国道.国道番号 = 4; ID 市町村名 the_geom 1 仙台市 ******* 2 名取市 3 岩沼市 市町村テーブル = ID 国道番号 the_geom 1 4 ******* 2 48 3 6 国道テーブル

質問をよく考える = 5 = 河川テーブル 樹木テーブル 市町村テーブル 国道テーブル ID 河川名 the_geom 1 広瀬川 ******* 2 名取川 3 北上川 河川テーブル = 5 ID 樹種 the_geom 1 落葉 ******* 2 常緑 3 樹木テーブル ID 市町村名 the_geom 1 仙台市 ******* 2 名取市 3 岩沼市 市町村テーブル = ID 国道番号 the_geom 1 4 ******* 2 48 3 6 国道テーブル

そのほかのPostGIS機能 管理機能 (16) ジオメトリー作成 (28) ジオメトリー情報の取り出し (32) ジオメトリー列の追加: ST_AddGeometryColumn() ジオメトリー作成 (28) テキストからジオメトリーを作成: ST_GeometryFromText() ジオメトリー情報の取り出し (32) ジオメトリータイプを調べる: ST_GeometryType() ジオメトリー編集 (25) ジオメトリーの投影系・座標系を変換する: ST_Transform() ジオメトリー出力 (10) ジオメトリーをテキスト表示で返す: ST_AsEWKT() バウンディングボックスの位置関係を調べる (13 オペレーター) バウンディングボックスの重なりを調べる: && 空間関係と計測 (33) ポリゴンの面積を返す: ST_Area() ジオメトリー操作 (18) バッファーを発生させる: ST_Buffer() リニアリファレンシング (6) 線上に落ちる点を発生させる:  ST_Line_Interpolate_Point() 長いトランザクションのサポート(6) 上で分類しにくい機能 (16) そのほかの機能 (3)

PostGIS+α ウェブマッピング フィールドナビゲーション 数値解析 プログラミング PostGIS + MapServer、GeoServer、Mapnik、、、 フィールドナビゲーション PostGIS + WMS Server + GoogleEarth 数値解析 PostGIS + R プログラミング PostGIS + Python

PostGIS + R オープンソース統計パッケージRとPostGISを組み合わせて使う 実際には、PostgreSQLとのデーターのやり取りを可能にする環境を作る データベースでは不可能な複雑なデータ解析ができる 直接接続することで、一時的なファイルなどが発生しない

PostGIS + R まずは、PostgreSQLとRが話せるようにする Rを起動し、RODBCパッケージをインストールする ウィンドウズのコントロールパネルから管理ツールを選択して開く データソース(ODBC)を開く ユーザーDNSのタブで新しい接続を加える PostgreSQLドライバーがインストールされていない場合は http://www.postgresql.org/ftp/odbc/versions/msi/ からドライバーをダウンロードする データベースへの接続情報を入れる Rを起動し、RODBCパッケージをインストールする RODBCのコマンドを使ってPostgreSQLデータベースからデータを取り込んだり、数値処理の結果をデータベースに戻したりする。 詳しくは、私のホームページで見てください。

PostGIS + R デモ