はじめに
南海トラフ巨大地震への備えが急務とされる今、「自分の街にいつ、どのくらいの津波が来るのか」を直感的に知るためのWebアプリを制作しました。
内閣府の最新の被害想定データを活用し、地図上で視覚化することを目指しました。
技術スタック
Frontend: Vite + React / Tailwind CSS
Map: Leaflet (react-leaflet)
開発過程
今回の開発で最大の壁となったのは、「データの取得」です。
内閣府の「南海トラフ巨大地震モデル・被害想定手法検討会」のサイトには膨大な資料がありますが、これがとにかく「機械に厳しい」構成でした。
PDF地獄: 数百ページに及ぶPDF。しかも市町村名が1つのセル内に改行で詰め込まれている「結合セル」の嵐。
定義の罠: 「1m到達時間」と「1cm(第一波)到達時間」が別表になっており、東京湾奥などのデータが「想定なし」に見えてしまう。
Pythonスクリプトを書いて泥臭い「結合セルのアンマージ処理」を自動化してデータを集めました。
PDF地獄の具体例(「PDFじゃなくてAPI、せめてCSVかJSONでください!」)
- 市町村別一覧表(最大津波高など)
アプリのメインデータになった「全自治体の数値まとめ」です。
「機械に厳しい」ポイント(3ページ目〜):3ページ目から、各市町村の「ケース①〜⑪」ごとの数値が並んでいます。一番左の列の「都道府県名」が巨大なセルで結合されており、その右側の「市町村名」の列が非常に複雑な構造になっています。
- 津波到達時間(詳細版)
「最短到達時間」の元データになった、400ページ超えの超大作です。
「機械に厳しい」ポイント(全域):11個ある震源ケースごとに、同じ市町村名が何度も繰り返し登場します。静岡県や三重県などの「最速地点」が100ページ以上続いた後、ようやく千葉県などのデータが現れます。
- その他、アプリの裏付けとなる資料
津波高グラフ・図
実装した機能
全国網羅マップ: 沿岸全域を津波高・到達時間で色分け。
ワースト10ランキング: 各指標の深刻な地域をサイドバーに表示。
ピンポイント表示: 市町村クリックで、全11ケース中の「最速・最大」の想定値を表示。
おことわり(言い訳)
本アプリは内閣府の公式PDFから数値を抽出していますが、内閣府のデータ構造があまりにも難解かつ分散していたため、一部の数値の抽出やマッピングにズレがある可能性があります。
(例:富津市の最短到達時間が48分なのか35分なのか、といった「ケースごとの差異」など)
あくまで個人開発の「想定シミュレーション」としてご覧いただき、実際の避難にあたっては必ず各自治体のハザードマップを確認してください。
まとめ
防災意識を高めるきっかけになれば幸いです。

