Fused

地震リスクの可視化:PythonとH3ヘキサゴンダッシュボード

地震発生確率・人口・行政境界データを統合したFusedによる地理空間ダッシュボード

地震リスクを正しく理解するには、『どこでリスクが高いか』という地図情報だけでなく、『そこに住む人々への影響』も合わせて考える必要があります。そのためには、複数のデータを組み合わせた分析が欠かせません。
この記事では、「地震リスクが高いエリアに、どれくらいの人が暮らしているのか?」という問いに答えるためのダッシュボードを紹介します。そのために、Uber社が開発したH3(ヘキサゴングリッドシステム)を活用して、3つの異なるデータセットを単一の空間インデックスに統合します。


地理空間データの統合という課題

地震リスクデータ、人口推計、行政境界データは、それぞれ異なるソースから、異なる解像度・フォーマットで提供されています。
たとえば、シェープファイルはラスタデータとそのままでは統合できませんし、都道府県の境界は活断層の位置と合いません。このように、位置や解像度、データ形式が異なるデータ同士を結合しようとすると、一部のデータの欠損や二重集計などの問題が発生してしまいます。この問題を解決するために、すべてのデータにH3空間インデックスを付与します。すべてのデータを一旦H3インデックスに還元することで、集計・フィルタリング・結合をシンプルかつ高速に行えるようになります。

◆3つのデータレイヤー

今回の取り組みでは、3つのデータレイヤを用意しました。

確率論的地震ハザードデータを標準メッシュ形式で提供。各セルには、今後30年以内に震度6弱以上の地震が発生する確率(%)が格納されています。

(出典:J-SHIS 地震ハザードステーション https://www.j-shis.bosai.go.jp/map/

標準メッシュ形式による人口データをH3セル単位で集計。2つの時点のスナップショットを持つことで、人口とリスクが同時に増加しているセル(=二重に危険なエリア)を特定できます。

(出典:国土数値情報ダウンロードサイト https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-mesh1000h30.html

都道府県・市町村レベルの日本の行政境界ポリゴンデータ。空間結合によって各H3セルに地名情報を付与するために使用します。

(出典:国土数値情報ダウンロードサイト https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_4.html

◆統合インデックスの構築

データ処理の核心はデータ結合ステップです。DuckDB(ローカル環境で高速にSQL分析ができる軽量データベース)を使用して各データソースを読み込み、空間結合を行い、各レイヤーのデータを含むH3インデックスを生成します。

手順は次のとおりです。

  1. 地震データに行政境界を重ねて、地域名を付与
    ST_WITHINを使用して行政境界データを地震リスクデータに結合し、各リスクグリッドセルを正しい都道府県・市町村に配置
  2. 人口データを共通MESH IDで結合
  3. 各データをH3単位に変換
    各MESHセルの重心から解像度10のH3インデックスを生成し、h3_grid_diskでエッジを平滑化
  4. データをまとめて親解像度9に集約

結果として、1つの六角形ごとに地震リスク・人口・行政境界データが揃ったDataFrameが得られます。
この単一の結合テーブルを基に、ダッシュボードをブロックごとに構築していきます。

◆ダッシュボード

ダッシュボードはFused Canvasを使ってPythonで構築されています。Fused Canvasとは、データやグラフ、地図などをキャンバス上に配置しながら、ダッシュボードを直感的に作れるツールです。
コードブロック、ウィジェット、マップなどの要素をキャンバス上に配置していくことで、最終的なレイアウトが完成します。フロントエンドフレームワークも設定ファイルも不要で、各パネルはキャンバスに配置した独立のブロックであり、元となるデータテーブルに接続されています。

本ダッシュボードの構成や操作イメージについては、以下の動画でもご紹介しています。FusedのMaxとともに、本ダッシュボードおよびジオ展で展示されたダッシュボードの解説を行っていますので、あわせてご覧ください。
▶ 動画はこちら:[ https://www.youtube.com/watch?v=yyKYlGACpxw ]

ダッシュボードの最上位レベルでは、全都道府県を対象とした完全なデータセットが表示されます。日本全国のすべてのH3セルが一度に確認できるビューです。
「人口が多く、かつ地震リスクが高い場所はどこか?」というマクロな問いへの回答が得られます。
データテーブル、チャート、3Dマップは連動しており、地震リスク(T30年震度6弱以上確率)や人口(年人口2025)を基準に並び替えることで、最もリスクにさらされている都市部を絞り込めます。

データテーブルは、H3セル1行1レコードで全国をカバーします。任意の列でソートするとデータが並び替えられます。

  • リスク順→地震リスクが高いエリアが上位に表示
  • 人口順:人口密度の高い都市部が上位に表示
  • 複合インパクトスコア:リスクと人口の両方を考慮した深刻なエリアを抽出

棒グラフはデータテーブルに連動しており、AIによる操作が可能です。フィルターや集計を手動で設定する必要はなく、見たい内容を文章で入力するだけでチャートが再描画されます。
たとえば「関西の高リスク都道府県を平均地震リスク順に表示して」と指示するだけでAIがリクエストを解釈し、適切なフィルターを適用して都道府県レベルに集計し、チャートを即座に更新します。コードの変更もダッシュボードの再構築も不要です。

ドロップダウンから都道府県を選択すると、すべてのパネルがその地域のデータに絞り込まれます。
データテーブルは選択した都道府県内のH3セルのみに絞り込まれ、チャートは全国のレンジではなく地域内の変動を反映するようスケールが調整されます。3Dマップはその都道府県の範囲を中心に表示されます。
全国レベルでは一見リスクが均一に見えていた都道府県も、このスケールでは明確な違いが見えてきます。高リスクの沿岸部、低リスクの山間部、そして人口曝露の大部分を占める一部の密集市街地が明らかになります。

サマリーテーブルは、選択した都道府県内のすべてのH3セルを市町村ごとに1行に集約し、表示します。
各行から、その都道府県内のすべての市区町村の危険度と被害に遭う潜在人口を一目で把握できます。たとえば断層上の沿岸都市と、そこから数キロ離れただけで大幅に低いリスク区分に入る内陸の町を簡単に比較できます。

ドーナツチャートは同じ市町村レベルのデータを比率で視覚化します。
リスクや人口のそのままの値を単独で表示するのではなく、両者を掛け合わせて「地震人口インパクト指数」を算出し、そのスコア上位10市町村をセグメントとして表示します。セグメントのサイズは単純な人口規模ではなく、実際に地震リスクにさらされている人口の大きさを反映します。

すべてのレイヤーが持つ情報を視覚的に地図として集約しました。

  • セルの高さ:人口の多さ
    人口が多い主要都市ほど、周辺地域に比べてセルが高く表示されます。
  • セルの色:地震リスク
    ピンク・紫のセルが最高確率ゾーンを示しています。高くて濃い色のセルが重なる場所が最も注意が必要なエリアであり、このダッシュボードが特定しようとしているものです。

まとめ

地震リスクと人口は、必ずしも同じ場所に分布するとは限りません。
このダッシュボードは、分布の異なる複数のデータを、より直感的に理解できるよう設計されています。
そのために、各データをH3インデックスに変換してから統合することで、従来は複雑だったGISワークフローを大幅に単純化し、その結果をダイナミックでインタラクティブなダッシュボードとして可視化しています。
記事で紹介した内容は、Fusedが提供するダッシュボード機能の一部に過ぎません。
追加の前処理ステップやフィルター、インタラクティブなツールチップ、その他のレイヤーについては、今回は触れていません。

Fusedのその他の機能にご興味のある方や、大規模データを動的に解析する仕組みの構築をご検討の方は、ぜひお気軽にご連絡ください。

関連記事

TOP