【要約】津波の避難経路が「川・海」に向かう問題を、穴埋め+道路スナップで直した [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、津波避難マップの脱出ルート算出ロジックにおいて、不適切な地点を脱出先として提示する問題に直面した。浸水域外への脱出先を探索する際、以下の事象が発生していた。
- ・浸水データの「穴(川・湖・池)」を、アルゴリズムが「浸水域外=安全」と誤判定する。
- ・浸水域の外側にある「海」を、脱出先として誤って抽出してしまう。
// Approach
開発者は、データの構造的欠陥を補完する手法と、実行時に物理的な妥当性を検証する手法を組み合わせた。これにより、人間が移動不可能な地点を排除した。
- ・対策A(データ側):PythonのShapelyを用い、ポリゴンの内側リングを削除して水域を浸水域に取り込む。
- ・対策B(実行時):OSRMのnearest APIを使用し、脱出候補点が道路から150m以上離れている場合は水域とみなして除外する。
// Result
開発者は、二段階の処理により、現実的な歩行ルートのみを抽出することに成功した。これにより、避難マップの信頼性が向上した。
- ・市街地(約4m)や川の上(約23m)は、適切な脱出先として採用される。
- ・沖合(約6,121m)のような海域は、150mの閾値により確実に除外される。
Senior Engineer Insight
> 防災という「失敗が許されない」領域において、不備を「安全側」に倒す設計は極めて妥当である。データ加工(静的)とAPI検証(動的)の役割分担も合理的だ。ただし、実運用ではOSRM APIのレイテンシが課題となる。大規模トラフィック下では、API呼び出しのキャッシュや、クライアント側での事前計算が必須となるだろう。