はじめに
気象庁が発表している気象警報・注意報は、市町村を基本としていますが、一部、気象特性に合わせて市町村を分割して発表されています。この発表区域の地理情報を作成、バイナリベクトルタイル化します。
気象警報・注意報の発表区域について詳しくは、[気象庁XML電文を「正しく」画像化するために必要な地図の話]
(http://eleclog.quitsq.com/2017/04/rendering-accurate-map.html)をお読みください。このブログを読んだのがきっかけで今回のベクトルタイルを作成しました。
使用するデータ
気象庁
気象庁からの地理情報データの公開はないため、下記のページにある定義や地図を基にします。
国土数値情報
国土数値情報 行政区域データから、市町村の境界データを取得してGeoJSONを作成します。
e-Stat
e-Stat 国勢調査から町丁・字レベルの境界データを取得して、市町村が分割されている区域の境界に使用します。
GeoJSON作成
1. 市町村GeoJSON作成
参考: 国土交通省のシェイプ形式データから全都道府県市町村郡区のGeoJsonとTopoJsonを作成。
2. 市町村を分割して設定している二次細分区域
27市町村58区域あります。
分割された境界は、飛び地、合併など様々なパターンがあります。QGISで国土数値情報の市町村界とe-Statの町丁・字の境界を組み合わせて作成しました。
QGISの空間演算ツールやジオメトリツールを使って編集、釧路市は飛び地と合併の組み合わせ
3. GeoJSONを統合
市町村等をまとめた地域以上はshapelyで統合して作成します。
ここまでは、手作業が多く大変です。
作成したGeoJSON、作成に使ったPythonスクリプトはGithubに公開しています。
https://github.com/weatherbox/warning-area
バイナリベクトルタイル作成
作成したGeoJSONをtippecanoeでバイナリベクトルタイルに加工します。
tippecanoe -e city -z 10 city-all.geojson
gh-pagesでバイナリベクトルタイルを提供しています。
https://github.com/weatherbox/warning-area-vt
参考
Web地図に
https://weatherbox.github.io/warning-area/
作成したバイナリベクトルタイルをMapbox GL JSで表示しています。この数のポリゴンをサクサク描画できるのはすごいです。
地物の属性でフィルタリングできることを活かして、階層を辿って各区域を探索できるWeb地図にしました。
リアルタイムWeb地図に(実験中)
https://weatherbox.github.io/warning/
気象庁防災情報XML(PULL型)からデータを取得してリアルタイムWeb地図を実験中です。
サーバーで動的に描画(例えばNHKデータマップ)せずに、静的なファイルのみでここまでできます。
まとめ
気象警報・注意報の発表区域のベクトルタイルの生産、消費の例を紹介しました。
今後は、土砂災害警戒情報で使用する地域、津波予報区など防災に役立つベクトルタイルを作成することを考えていますが、データの作成が大変そうです。
ベクトルタイルの優れた技術とWeb地図を活用して、正確な防災情報を伝えられる手段を考えていきたい思っています。