浅葱さんのブログ

ええ、以前はぷらしのすとか言っていましたよ

防災科研の「東日本大震災被害情報地 図」を例に OGC WMS の最低限使 い方

防災科研が「東日本大震災被害情報地図」というウェブサイトを開設しています。
http://www.j-risq.bosai.go.jp/ndis/

ここでは消防庁が市町村別にとりまとめた被害情報を図化したものを OGC WMS (Open
Geospatial Consortium の Web Mapping Service) という手順で提供し、これを
Google Maps と組み合わせて表示できるようにしていて、大変すぐれた応用例といえましょう。アクセス集中したらどうなるかは知らんけど。

絶賛に値すると思うのが、WMS の URL を提示していることでしょう。大組織のウェブページでは、せっかく情報が出ているのに再利用が困難なデータ形式なので活用が困難ということがままありますが、これならば他の情報と重ね合わせることもできるし、要すれば任意の図郭で画像を抽出することもできます。(何故リンクじゃないんだろう?と思ったが、素人が踏んでエラーみたいな画面になるのを防ぐ親心と善意に解釈したい)。

この機に、WMS に詳しくない方に紹介になるといいなと思って簡単な画像の抜き出し方を書いてみます。WMS 1.3.0 の仕様
http://portal.opengeospatial.org/files/?artifact_id=14416 読めって紹介してもなかなか読んでもらえませんから。

まず、WMS の URL は
http://www.j-risq.bosai.go.jp/ndis/ndis_wms.php?report=96& だと書いてあります(たぶん96という数字は第96報をあらわすのでしょうから、いずれ変るかもしれません)。これを単にアクセスしてもゼロバイトしか得られません。この & の
後に色々なパラメタをつけて問合せをやる必要があるのです。

で、そもそも何が設定可能なのかを調べるために、まず GetCapabilities という問合せをやります。
http://www.j-risq.bosai.go.jp/ndis/ndis_wms.php?report=96&SERVICE=WMS&REQUEST=GetCapabilities
ここで SERVICE と REQUEST というパラメタを設定しましたが、仕様 7.2.2 の表3
にこの二つが必須と書いてあります。で、必ずこの値です。

何やら XML が出て来ますね。ざっと大つかみで次のような構造になっています。

WMT_WMS_Capabilities
├Service
│├Name
│├Title
│├OnlineResource
│└ContactInformation
└Capabilities
 ├Request
 │├GetCapabilities
 │├GetMap
 │:
 │└GetStyles
 ├Exception
 :
 └Layer



みどころは、大きく2つあって、XPath でいうと
/WMT_WMS_Capabilties/Capabilities/Request/GetMap/Format が得られる画像の形式をあらわし、 /WMT_WMS_Capabilties/Capabilities//Layer が入手可能なレイヤのリストを
与えます。
//Layer/Title や //Layer/Abstract を見ながら欲しいレイヤを決めて、//Layer/Name
で指示するにあたり //Layer/BoundingBox に注意しながら取得範囲を決めるというわけです。

たとえば image/png 形式が入手可能で、半壊戸数(B_UNKWN_HALF_CITY)が見たいとします。
GetMap のパラメタは仕様 7.3.2 の表8 をみてください。えらく沢山必須があって鬱陶しくなりますが、

* VERSION=1.3.0 これは固定です。
* REQUEST=GetMap これも固定です。
* LAYERS=B_UNKWN_HALF_CITY 複数重ね合わせたい場合はコンマ区切りにします
* STYLES=default これは Layer/Style でわかります。
* CRS=CRS:84 簡単にいうと座標が経緯度であることをあらわします。詳細は仕様
6.7.3.2 参照。
* BBOX=137.069,35.762,143.929,40.479 それぞれ西端、南端、東端、北端の座標(ここでは経緯度)。
* WIDTH=550 結果の縦方向ピクセル数です。
* HEIGHT=477 結果の横方向ピクセル数です。
* FORMAT=image/png 結果の形式です。
* TRANSPARENT=TRUE 必須ではありませんがほとんどの場合透明にします。

これをもとの URL に連結して、次の URL を得ます。
http://www.j-risq.bosai.go.jp/ndis/ndis_wms.php?report=96&VERSION=1.3.0&REQUEST=GetMap&LAYERS=B_UNKWN_HALF_CITY&STYLES=default&CRS=CRS:84&BBOX=137.069,35.762,143.929,40.479&WIDTH=550&HEIGHT=477&FORMAT=image/png&TRANSPARENT=TRUE

どうですか? 画像が取れたでしょう? 交差斜線は調査未了で、ここが一番被害の大きいところと考えて大過ないでしょう。

同様にして、GetMap のかわりに GetLegendGraphic すると、色分けの説明画像が取れます。
http://www.j-risq.bosai.go.jp/ndis/ndis_wms.php?report=96&SERVICE=WMS&REQUEST=GetLegendGraphic&VERSION=1.3.0&LAYER=B_UNKWN_HALF_CITY&FORMAT=image/png&SLD_VERSION=1.1.0
(なぜか防災科研のページとスタイルが違いますが、何か必須でない設定が違うのでしょう)

ちなみに、この図郭は気象庁ホームページにあるレーダー画像
http://www.jma.go.jp/jp/radnowc/ のうち東北地方(南部)と同じです。なので、そこから PNG を取ってきて(URLは時々刻々変ります)適当な HTML とか CSS で重ね合わ
せることができます。気象レーダーの上に半透明の半壊戸数をのせれば、被災地のどこに雨が降っているかすぐわかります。
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://prasinos.blog2.fc2.com/tb.php/761-da99d5f0
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad