【要約】国土地理院DEMから全国1,898自治体の「水の流れ」を計算してサーバー0円で配信した [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、標高データからの正確な流路計算と、膨大な地理データの低コスト配信という課題に直面した。
- ・建物や側溝による「局所的な窪み」が、水の流れを遮断してしまう。
- ・全国規模のデータはGB級に達し、タイルサーバーの運用コストが高騰する。
- ・高精細な標高データ(DEM5A)が未整備の地域があり、表示不備が生じる。
// Approach
地形解析の最適化と、サーバーレスな配信構成を組み合わせることで解決を図った。
- ・Wang & Liu法で窪みを埋め、D8アルゴリズムで流路を特定する。
- ・NumbaによるJITコンパイルやShapelyのベクトル演算で計算を高速化する。
- ・PMTilesとCloudflare R2を用い、タイルサーバーなしの配信を実現する。
- ・DEM5Aが欠損する場合、DEM10Bへ自動的にフォールバックする。
// Result
高度な地形解析とサーバーレス技術の統合により、実用的なアプリを低コストで構築した。
- ・Cloudflareの活用により、サーバー維持費をほぼ0円で全国配信を実現した。
- ・PMTilesの導入により、クライアントが必要な範囲のみを取得する効率的な転送を実現した。
- ・フォールバックの実装により、離島や山間部を含む広範なエリアの可視化に成功した。
Senior Engineer Insight
> GISデータの処理と配信における「コストと精度のトレードオフ」を、極めて合理的に解決している。特に、D8アルゴリズムの弱点であるpitをWang & Liu法で補完する実装や、DEM5Aの欠損をDEM10Bで補うフォールバック戦略は、実地でのデータ品質の不安定さを熟知した実践的な判断だ。また、PMTilesとCloudflareの組み合わせは、スケーラビリティとコスト効率を両立させる現代的なアーキテクチャの好例と言える。