1.49k likes | 1.66k Views
オープンソースGISを用いた 自然環境解析講座. PostGIS コース. 2012 年 6 月 24 日 講師: 今木洋大. 自己紹介. GCN の紹介、スタッフの紹介 各自の自己紹介 (参加者全員で) 専門、バックグラウンド、何でも GIS を何に使っているか? なぜオープンソースに興味があるか? 講習会に期待するもの. 1.はじめに ( 60min ). 講義内容・日程について オープンソース GIS について ソフトウェアーインストールの確認 実習. 講習会内容 . テーブルの結合 ビューの作成 実 習
E N D
オープンソースGISを用いた自然環境解析講座オープンソースGISを用いた自然環境解析講座 PostGISコース 2012年6月24日 講師: 今木洋大
自己紹介 • GCNの紹介、スタッフの紹介 • 各自の自己紹介 (参加者全員で) • 専門、バックグラウンド、何でも • GISを何に使っているか? • なぜオープンソースに興味があるか? • 講習会に期待するもの
1.はじめに (60min) • 講義内容・日程について • オープンソース GISについて • ソフトウェアーインストールの確認 • 実習
講習会内容 • テーブルの結合 • ビューの作成 • 実習 4.PostGIS -応用編-(90min) • PostGISによる空間情報の検索 (SQL応用編) • PostGISによるジオメトリー操作 (基本的なコマンド紹介。intersection, bufferなど) • より複雑な検索 • 実習 5.PostGISラスタ解析(30min) • ラスタデータの取り扱い • ラスタ解析の例 • 実習 1.はじめに(60min) • 講義内容・日程について • オープンソース GISについて • ソフトウェアーインストールの確認 • 実習 2.PostGISと オープンソースツール(60min) • PostGIS、PostgreSQLとは • QGISについて • データベースの作成方法 • ベクタデータのPostGISへのインポート方法 • 日本語対応 • 実習 3.PostGIS-入門編-(90min) • PostGISとPostgreSQLについて (PostGISとは何か) • pgAdminとSQL (基本的なSQL構文について) • SQL入門 • PostGISデータの作り方
オープンソースGISとは何か • オープンソースソフトウェアーとは、あるライセンス契約の元、ソースコードが公開されているソフトウェアーのことであり、そのライセンス下ではソフトウェアーの改変とその再配布が許されている。(http://opensource.org/, 2007).
オープンソースGISとは何か • ということは、 • オープンソースソフトウェアーは必ずしも無料ではない • さまざまなライセンスの種類がある • GNUGPL、BSD、Apache ライセンスなど • 改変、再配布においてもオープンソースである必要がある
オープンソースGISとは何か • フリーウェアはフリーソフトと違う • GoogleEarth,GoogleMap • Virtual Earth, BingMaps • ArcExplorer • ERDAS VeiwFinder • フリーソフトとオープンソースは似ている • そこで、まとめてFOSS4G • Free and Open Source Software for Geospatial • 350以上のFOSS4G製品が利用できる(freegis.org)
なぜオープンソースGISを使わないか • すでに市販製品を使っていて満足している • オープンソースGISを知らない • 自分のニーズがよくわからない • いろいろ自分で勉強するのが面倒くさい
どっちを使う? • どうやって仕事を確実にそして早く終わらせられるか? • 自分のGIS使用の目的を明確にする • 自分のリソースを知る(人的、金銭的) • 将来のGIS利用のビジョン
PostGISの歴史 • 2001年Refractions Research(カナダ)によって開発開始 • 2005年4月、安定バージョン1.0リリース • GNU General Public License • 2012年4月、バージョン2.0リリース • データベース構成の変更 • 各種コマンドの強化 • ラスターの取り扱い • シェープファイルローダーの改善 • 新しいインデックスの実装
PostGISの良さ • データベース • データの安全性 • 大きなデータの取扱 • クエリと多様なファンクションにより細部に渡り、解析をコントロールしやすい • クエリを書くことにより質問に集中できる • SQL自体が履歴ファイル • 解析の繰り返し、やり直しがやりやすい • ビューがレイヤとして扱える • R、Pythonなどと連携しやすい(オープンソース)
PostGISリソース • Refractions: http://postgis.refractions.net/ • BostonGIS: http://www.bostongis.com/ • OpenGeo: http://workshops.opengeo.org/postgis-intro/ • Paul Ramseyのブログ:http://blog.cleverelephant.ca/ • 私のサイト: http://www.geopacific.org • 英語の本 • PostGIS in Action • Regina O. Obe and Leo S. Hsu, Manning
実習1 • ソフトウェアーインストールの確認 • PGAdminⅢを使って、PostgreSQL/PostGIS環境を見る • template_postgis_20 データベースのテーブル、ビューには何が含まれているか? • spatial_ref_sysテーブルにはどのような情報が収められているか? • テーブルを開いてみる • SQLクエリーエディタを開けて、以下のコマンドを実行 • select * from spatial_ref_sys limit 2; • データーローダーの確認 • PGAdminⅢのアドイン、PostGISShapefile and DBF Loader 2.0が開けるか確認 • QGISの動作確認 • postgis_training.qgsファイルをダブルクリックする
PostgreSQL・pgAdmin IIIを開く 1.「PostgreSQL 9.1」をダブルクリックしてサーバーにアクセス 2.「データベース」の+マークをクリックしてデータベースリストを展開 PostGISShapefile and DBF Loader 2.0を開く SQLエディターを開く 3.「template_postgis_20」をクリックしてデータベースにアクセスした後、現れる+マークをクリックしてデータベースを展開
データベースtemplate_postgis_20を調べる 以下の内容がpgAdminⅢで確認できるか サーバ データベース スキーマ Public テーブル Spatial_ref_sys ビュー Geometry_columns
テーブルの中身の確認 1 • 対象テーブルをリストから選択 • 「データをビュー」ボタンをクリック • テーブルの表示 2 3
SQLエディタとSQLの実行 • SQLアイコンをクリック • SQLエディタにクエリを書く • 「クエリの実行」ボタンをクリック クエリの実行
QGIS可動の確認 • postgis_training.qgsファイルをダブルクリックしてQGISを起動
2.PostGISと オープンソースツール(60min) • PostGIS、PostgreSQLとは • QGISについて • データベースの作成方法 • ベクタデータのPostGISへのインポート方法 • 日本語対応 • 実習
PostGIS、QGIS、、、 数値データの 解析 プログラミング ベクタデータの保存、解析 GISデータの変換、メタデータの閲覧、視覚化 ラスタデータの 解析
PostGISとは? • 空間情報データベースの一種 • 他にはOracle、MySQL、SQLite、IBM DB2、SQL Server2008、Ingres等がある • このうちオープンソースは、PostgreSQL、MySQL、 SQLite、Ingres • 空間情報データベースとは? • リレーショナルデータベース • ジオメトリー情報を格納 • 空間情報の検索やジオメトリーの操作を可能にした • PostgreSQLのライブラリ • PostGISという単独のGISソフトウェアーではない • PostgreSQLの機能拡張
他のGISとどこが違うか? • SQLで空間情報を解析 • オープンソース(GNU General Public License) • 無料 • ローカル、サーバ両環境 • 様々なGISのバックエンドとして活躍 • 空間データの視覚化機能がない • 最新のPostGISではpgAdminⅢからはデータの簡単な視覚化が可能になっている
なぜPostGISを使うか • GISサーバーとして使える • 強力なジオメトリ解析機能+標準のデータベース機能 • オープンソースである • 大きなデータを扱える • ウェブマッピングなどのバックエンドで使える • MapServer, GeoServer, GeoDjangoなど • 安定 • とにかくおもしろい • などなど
いつPostGISを使わないか • 地図作成 • GRASS、QGIS、MapServer、GeoServer、市販製品、 • GISデータ入力・編集 • GRASS、QGIS、市販製品、 • GISデータ視覚化 • QGIS、GRASS、UDig、MapServer、GeoServer、市販製品、 • ラスターデータ解析(まだ開発途上) • GRASS、GDAL、市販製品、 • データフォーマット変換 • QGIS、GDAL/OGR、 • メタデータ閲覧 • QGIS、GDAL/OGR、
PostGISのユーザーインターフェース • PostGISを使う=SQLを書いて実行する • GUI管理・開発ツールpgAdminⅢを使う • コマンドラインのpsqlを使う • QGISのアドインを使う
pgAdminⅢ • PostgreSQLデータベースの管理、データ検索などに用いられる、オープンソースプログラム • データベースの作成、テーブルの管理、クエリーの作成などがGUIで行える
QGISとは • オープンソースGIS • データの視覚化、管理、編集、分析、地図の作成など • 日本語化されている(OSGeo-Japan) • ユーザーインターフェースが洗練、使い安い • 開発速度が速い • 多様なラスター、ベクターデータを扱える • アドインを使うことで機能を拡張できる • 比較的軽い • PostGISのビュアーとして使える • PostGISのジオメトリを編集できる • PostGISの様々なアドインが用意されている
QGISによるPostGISデータの表示(データベースへの新規接続)QGISによるPostGISデータの表示(データベースへの新規接続) 1 3 2
QGISによるPostGISデータの表示 テーブルを選択し 加える データベースを選択し PostGISにつなぐ
PostGISを使う準備 • データベースの作成 • template_Postgis_20データベースをテンプレートとする • データのインポート • Shapefileローダーを使ったシェープファイルのインポート
データベースの作成 • pgAdminⅢの起動 • サーバーへアクセス • サーバーアイコンをダブルクリック • データベースの新規作成 • サーバーアイコンで右クリックして新規作成 • テンプレート:template_postgis_20 • エンコーディング: utf8 • オーナー:postgres
PostGISデータベースの新規作成 テンプレート: template_postgis_20
PostGISへのデータのインポート • Shp2pgsql (シェープファイル) • コマンドライン • GUI • OGR(OGRでカバーされているファイル形式) • QGIS・SPITプラグイン(シェープファイル)
pgAdminⅢからシェープファイルローダーを呼び出すpgAdminⅢからシェープファイルローダーを呼び出す
Shp2pgsqlでシェープファイルをインポート データベース接続設定 SRS、テーブル名の指定 シェープファイルの指定 オプション
PostGISShapefile and DBF loader 2.0 • 複数のシェープファイルがインポートしやすくなった • 複数のシェープファイルのインポート • 複数のDBFファイルのインポート • PostGISデータのシェープファイルとしてのエクスポートができるようになった
PostGISShapefile and DBF loader 2.0 PostgreSQLサーバーへの接続設定 インポート先のデータベース名 サーバー接続のテスト
PostGISShapefile and DBF loader 2.0 シェープファイルの指定 スキーマ名 インポート後のテーブル名 インポート後のジオメトリ列名 EPSGコード 各項目を編集する場合は、その項目をダブルクリック
PostGISShapefile and DBF loader 2.0 インポートするDBFの文字エンコード 列名の大文字、小文字の使用を保存するか。ディフォルトでは小文字を使用 Bigintデータタイプを許可するか 空間インデックスを作成するか DBFのみをインポートするか データインポート挿入ではなくコピーを使うか ジオメトリをGEGRAPHY列に読み込むか
pgsql2shpとshp2pgsql • PostGISデーターをshapefileに変換またはその逆 • Postgresqlのフォルダない、binフォルダに収められている • コマンドラインツール Pgsql2shp -f shepefile名-h localhost -u postgresデータベース名 テーブル名
日本語エンコーディング • PostgreSQL8.4から、データベースごとにロケールの設定が可能 • ロケールの設定を「C」に設定するとエンコーディングの設定に柔軟性が出る • 日本語のエンコーディングは、UTF8がお勧め • 詳しくは、 • http://www.postgresql.jp/document/pg833doc/html/locale.html • http://lets.postgresql.jp/documents/technical/text-processing/2
実習2 • PostGISデータベースを作成 • 新規データベース名: macaca • テンプレート: template_postgis_20 • エンコーディング: UTF-8 • データベースmacacaにデータをインポート • エンコーディング:SHIFT-JIS • 国勢調査データ(ポリゴン) • \census\nikko_imaichi_32654_utf8.shp census (テーブル名) • ニホンザルの位置データ • \monkey\location_all.dat_32654.shp monkey (テーブル名) • 河川 • \river\nikko_river_32654.shp river (テーブル名) • 植生 • \veg\nikko_vege_32654_utf8.shp vegetation (テーブル名) • エンコーディング:SHIFT-JIS • 国勢調査データ(テーブル) • \census\male_female_en.dbf census_male_female (テーブル名) • \census\occupation_en.dbf census_occupation (テーブル名)
3.PostGIS -入門編-(90min) • PostGISとPostgreSQLについて • pgAdminとSQL • SQL入門 • PostGISデータの作り方 • テーブルの結合 • ビューの作成 • 実習
PostGISとPostgreSQLについて (PostGISとは何か) • PostGISとは、PostgreSQLデーターベースを機能拡張させ、空間情報を扱えるようにした空間データベース • 空間情報の検索、作成、操作ができる • 現在は、ベクターデータのみを扱える • 近い将来、ラスターも扱える
DBMSとSQL • PostGISを使うには、データベースの基礎知識が必要となる。 • そのためここでは少し、データベース操作の基礎となる、データベースマネージメントとSQLについてpgAdmin III を使って勉強する
pgAdmin III データベースのリスト データベースの中身
データベースの構造 PostGISのすべてのファンクションが収められている ファンクション 各テーブルのジオメトリーについての情報が収められる ジオメトリーコラム テーブル スキーマ ビュー 空間参照系 テーブル スキーマが収められている ビューが収められている 空間参照系(SRS)についての情報が収められている
データベース用語のまとめ • データベース • スキーマ • データベースの下に作られるディレクトリー構造のようなもの • テーブル • データを収める入れ物 • ビュー • データ自身ではなく、データを検索するクエリーを保存したもの