台湾水利署の浸水想定図をクリックできる地図にする:データの形、算出した数字、言ってはいけないこと
5つ目のツール、浸水想定の検索を公開しました。作りながら測ったこと・計算したことを書きます。ページに載せると結論のように読めてしまうけれど、実際は模擬結果でしかない数字も含めて。
2026-08-21 作者 William Hsu
データの出どころと形
経済部水利署が政府オープンデータ基盤に「浸水想定図」を置いています(データセット25766、政府オープンデータライセンス)。 2種類あって、ひとつは2018年の県市別7zパック、もうひとつは2022年8月に水利空間情報サービスが整理した全国版で、 降雨シナリオごとに分かれています。最初に県市版の基隆を取ってみたところ、87MBのうち展開後150MBが 14,044×9,934ピクセルのポスターJPEG10枚で、実際に計算に使えるSHPは数MBしかありませんでした。 そこで全国版に切り替え。10シナリオで合計140MB、JPEGはなく、しかもすべての多角形に郷鎮コードが付いています。
- シナリオ 6時間150/250/350mm、12時間200/300/400mm、24時間200/350/500/650mm の計10種
- 深さ区分 0.3〜0.5、0.5〜1、1〜2、2〜3、3メートル超の5段階。0.3未満は描かない
- 座標 TWD97二度分帯。シナリオごとに1,204〜2,356の多角形、最大のファイルは頂点375万
- 版 第3世代、2022-08-12構築。水利署は5年ごとに見直すと定めています
郷鎮の境界は内政部国土測量センターから別途取得(2025年3月版、368郷鎮市区)。面積の分母と、 クリックした点がどの郷鎮に入るかの判定に使います。
クリックできる地図にするまで
元データはベクターのポリゴンなので、素直にやるならベクタータイルです。しかし手元にtippecanoeがなく、 必要な検索は「この点は10シナリオでそれぞれどの区分か」なので、多角形のままだと点内包判定を10回やることになります。 そこで格子方式にしました。
- 各シナリオの多角形を、経度0.0004°・緯度0.00036°の等間隔格子に焼き込む。台湾ではおよそ41×40メートルで、 元データの40メートル格子と同じ桁。これより細かくしても偽の精度です。
- 1マスに10シナリオぶんの区分を格納して10バイト。1つ以上のシナリオで浸かるマスだけを保存し、 1,276,400マス、SQLiteで28MB。
- 縮小表示用に、8×8と64×64にまとめた粗い格子も最大区分で持っておく。
- タイルはサーバーがその場で描画。範囲内のマスを引いて256×256のPNGにし、1枚3〜30ミリ秒、そのあとキャッシュ。 緯度方向はメルカトルなのに格子は等間隔経緯度なので、ピクセル行ごとにどのマスに当たるか換算が必要で、線形サンプリングでは合いません。
- 格子化はrasterioで実行、10シナリオ82秒。
格子化の代償は、元の多角形と面積が少しずれることです。10シナリオの多角形面積(TWD97平面で直接計算)と マスの合計を比べると、マス合計が必ず0.3〜0.5%大きく、最大0.53%。境界にかかったマスが丸ごと数えられるためです。 全国規模なら許容範囲ですが、郷鎮が小さいほどこの相対誤差は大きくなるので、ページにその旨を書いています。

計算して初めて分かった数字
以下はすべて模擬結果の統計であって、実際に起きたことの記録ではありません。
台湾のどれだけが浸かるか
24時間350mm(台風、あるいは強い梅雨前線の1日ぶん程度)で、深さ0.3メートルを超えて浸かると模擬された面積は674.5km²、 台湾の陸地の1.8%です。650mmでは2,060km²、5.6%。6時間350mmでは1,178km²。 同じ350mmでも6時間に詰め込むと、浸かる面積は24時間の1.75倍。都市の排水が短時間豪雨をいちばん恐れる理由がこれです。
比率がいちばん高い郷鎮
24時間350mmで模擬浸水面積の比率が高いのは高雄市苓雅区(38%)、前金区(32%)、新興区(30%)。 ただしこの3区はどれも面積が小さく(2〜8km²)比率が膨らみます。面積も大きく比率も高いのは 宜蘭県壮囲郷(39.6km²のうち29%)、五結郷(24%)、嘉義県東石郷(82km²のうち21%)、六脚郷、雲林県元長郷、嘉義県布袋鎮。
650mmになると五結郷67%、壮囲郷65%、宜蘭市58%。全国で58の郷鎮が面積の4分の1を超え、8つが半分を超えます。
雨量が上がると急に浸かる場所
24時間200mmと650mmを比べて跳ね上がりが大きいのは、五結郷7%→67%、宜蘭市2.5%→58%、壮囲郷10%→65%、 高雄市茄萣区5%→57%、嘉義県六脚郷4%→53%、高雄市湖内区1%→49%、新竹市北区0.6%→48%。 普通の豪雨では何ともないのに、雨量が上がると一面浸かる場所です。蘭陽平野の3郷鎮が揃って出てくるのは、地形が大きな器だからです。
短時間豪雨のほうが深刻な郷鎮
全国166の郷鎮で、6時間350mmの模擬浸水面積が24時間350mmの1.5倍以上になります。差が最大なのは花蓮県玉里鎮 (32.5km²対5.6km²)、台中市霧峰区(16.9対1.1)、嘉義県新港郷・民雄郷、新竹県竹北市、台南市後壁区。 多くは排水を重力に頼っていて、一気に来ると間に合わない場所です。
県市
24時間350mmの比率順では雲林県7.9%、嘉義県5.1%、台南市4.8%、彰化県3.7%が上位。 六大都市では台南4.8%、高雄2.1%、桃園2.0%、台中0.8%、新北0.5%、台北0.4%。 ただし台北市は650mmのシナリオで6.6%まで跳ね上がります。雨量が多いと盆地の排水の限界が出てきます。
最大のシナリオでも1マスも浸からない郷鎮が32あり、すべて山間部です(屏東の霧台・三地門、高雄の六亀・甲仙・茂林、 南投の信義・鹿谷など)。だから安全というわけではありません。想定図が模擬しているのは浸水で、 山間部の災害は土石流、それは別の図です。
言ってはいけないこと
このツールでいちばん時間がかかったのは、ページに何を書いてよいかを決めることでした。プログラムはむしろ二の次です。
- 「水災潜勢資料公開弁法」第8条は、水災潜勢資料は防災救災のためにのみ用いること、土地の規制や利用制限その他の措置は 各主管機関の法令に従うことを定めています。だからページには不動産価格も保険も「買うべきか」も出しません。
- 第4条は「設計降雨条件、特定の地形データ、水理モデルの演算に基づいて描かれたものであり、参考にする際は特に注意すること」 と明記するよう求めています。そのまま書いています。
- 水利署が成果図に自ら挙げている前提:SOBEKモデル、2010〜2012年の地形、2008年の土地利用、 すべての治水・排水施設が正常に機能、建物による流れの阻害は考慮しない。これらは全部データのページに載せました。 「建物を考慮しない」の一行だけで、自宅のあるマスだけを読んでも意味がなくなるからです。
- 「潜勢」と「浸かる」は別の話です。同じ地点が200mmでは無色、650mmでは赤。どちらも正しく、違うのは前提です。 だからクリックすると10シナリオを並べて、どう動くかを見せています。単一の色だけで判断させる形にはしません。
やらなかったこと
- 住所から座標への変換。合法かつ無料で使える全国サービスがないので、事故地図で作った35,339件の道路名・地名索引と 368郷鎮の重心で代用しています。
- 過去の浸水。水利署の「歴年台風浸水範囲」KMLは多角形が1,231個しかなく、2015〜2016年のいくつかの台風に偏っていて、 そのまま載せると誤解を招くほど不完全です。
- リアルタイムの水位と浸水センサー。別種のデータで更新頻度も違うので、それはまた別の機会に。
ツールは lazetool.com/flood、郷鎮ごとの数字は 郷鎮統計(いずれも中国語)。