はじめに
2025年8月に九州地方で大雨による災害が発生しました。被害にあわれた方には、心からお見舞い申し上げます。
テレビのニュースでは、冠水した道路に無理につっこんで動けなくなる車がいくつもある場面が放送されていました。
道路に50cmも水が溜まると、一瞬なら突破することはできるかもしれませんが、数十メートルも走るとエンジンに水が入って車がストップしてしまうでしょう。エンジンに水が入らないにしても、車内に水が入ってしまうと、サビなどの原因になってしまうかもしれません。
できればそのような水が溜まるような箇所は通らないほうがいいでしょう。
事前に水が溜まるかもしれない箇所、いわゆる「窪地」がわかっていれば、避けることができるかもしれません。
今回は、QGISのGRASSを使って、標高DEMから道路の窪地を推定してみます。
図:QGISで推定した道路内の窪地の位置
注意
今回推定する窪地は、標高DEMから推定した地形のみを考慮したものです。現地には路肩や排水施設、塀などの人工物により、推定結果と実際が違う場合がありますので注意が必要です。
必要なデータの準備
標高DEM
標高DEM(標高が記録されたラスタデータ)は基盤地図情報の「数値標高モデル」でダウンロードすることができます。
標高データは1m、5m、10mのデータがあります。
今回の窪地の推定には、5mDEMを使用します。1mDEMでは細かすぎて、うまく窪地を抽出することができませんでした。
基盤地図情報ダウンロードサービスにアクセスし、ログインしてから下の図のようにファイルをダウンロードしてください。
ファイルをダウンロードすると、xmlファイルが保存されたZIPファイルをダウンロードできます。
このままではQGISで使用できないので、TIFFファイルに変換する必要があります。
TIFFファイルへの変換は,、株式会社エコリスが提供する「基盤地図情報 標高DEMデータ変換ツール」を使用します。ツールの使用方法は、ダウンロードページを参考にしてください。
変換が成功すると「merge.tif」というファイルができます。これが標高DEMのTIFFファイルになります。
merge.tifは、全角(2バイト文字)を含まないフォルダに保存しておきましょう。
道路中心線
道路上の窪地のみを抽出するために、道路中心線のラインベクタデータをダウンロードします。
今回は、OpenstreetMapのデータをダウンロードできる、bbbike.orgを使用しましょう。
地図をダウンロードしたい範囲に合わせ、画面左の「here」ボタンをクリックするとダウンロードできる範囲を指定できます。
範囲を指定したら、メールアドレスを入力して、「extract」ボタンをクリックすると、メールでダウンロードURLが届きます。
ダウンロードURLをクリックして、zipファイルをダウンロードしましょう。「shape」フォルダの中にいくつかのシェープファイルが保存されていますので、「roads.xxx」(同じ名前の複数のファイル)を別のフォルダにコピーしておきましょう。
roadsシェープファイルの座標参照系は、WGS84(地理座標系)です。後々の作業のために、平面直角座標系に変換しておきましょう。QGISのレイヤエクスポートで、保存するときに平面直角座標系を指定して保存しておいてください。
道路中心線レイヤをQGISに追加する
平面直角座標に変換した道路中心線レイヤをQGISに追加しておきます。
標高DEMから窪地を抽出する
標高DEMから窪地を抽出するには、プロセシングツールボックスの「GRASS」>「ラスタ」にある「r.fill.dir」を使います。このツールは、標高ラスタから水の流れる方向を計算するツールで、どこにも水が流れない箇所を窪地として抽出することができます。
「標高」の右にある「・・・」ボタンをクリックして、標高DEM「merge.tif」を指定します。(あらかじめ標高DEMをレイヤに追加してレイヤを指定しても構いません)
「実行」ボタンをクリックすると処理が開始されます。
注意
merge.tifが保存されているフォルダに全角文字が含まれているとエラーになります。パスが半角文字のみのフォルダに保存しておいてください。
処理が成功すると、
- 問題域ラスタの出力
- 流向の出力
-
窪地なしDEMの出力
という3つのレイヤが追加されます。
今回使用するレイヤは「問題域ラスタの出力」レイヤのみです。
窪地か確認してみる
抽出された領域が窪地なのか確認してみましょう。
地図に標高DEMレイヤを追加しておきます。標高DEMのレイヤは非表示にしておきましょう。
メニューの「ビュー」>「標高断面図」を選択します。マップキャンバスの下に標高断面図の画面が表示されます。
標高断面図のツールバーの「曲線キャプチャ」をクリックして、地図上に断面を確認したい部分にラインを描画します。今回は道路に沿ってラインを引きました。ラインの確定は右クリックです。
折れ線グラフの低い位置にカーソルを合わせて確認すると、確かに一番低い場所が抽出されています。
今度は道路から90度方向も確認してみます。
こちらも一番低い場所なので、確かに窪地になっているようです。
確認が終了したら、標高断面図の画面は右上の「✕」ボタンをクリックして非表示にしましょう。
窪地の部分をベクタのポリゴンに変換する
道路のライン上の窪地のみ選択するために、窪地部分をベクタに変換します。
メニューの「ラスタ」>「変換」>「ラスタをベクタ化」を選択します。
「入力レイヤ」に「問題域ラスタの出力」を選択し「実行」ボタンをクリックします。
「ベクタ化」というレイヤが作成されるので、成功したら「閉じる」ボタンをクリックしてください。
不要な地物を削除する
「ベクタ化」レイヤを編集モードにして、「地物の選択」をクリックして、窪地以外の範囲の地物をクリックします。
ツールバーの「選択した地物を削除」をクリックすると、窪地以外の範囲の地物が削除されます。
道路に重なる窪地のみを抽出する
次に道路中心線に重なる地物のみを選択します。
メニューの「ベクタ」>「調査ツール」>「場所による選択」を選択します。
「選択する地物のあるレイヤ」に「ベクタ化」(窪地)を選択します。
「比較対象の地物のあるレイヤ」に道路レイヤを選択します。
「実行」ボタンをクリックすると、道路に重なった窪地のみ選択されます。
処理が成功したら「閉じる」ボタンをクリックしてください。
選択した地物を新しいレイヤにコピーします。
メニューの「編集」>「地物のコピー」を選択します。
コピーした地物を新しい一時レイヤに貼り付けます。
メニューの「編集」>「新規レイヤに地物を貼り付け」>「一時スクラッチレイヤ」を選択します。
レイヤ名は「道路に重なる窪地」としました。
「ベクタ化」レイヤの編集モードを解除して、レイヤを非表示にすると、道路に重なった窪地のみが地図に表示されます。
実際に水たまりになったか?
2025年8月の大雨の道路冠水状況をインターネットで確認すると、宗像市赤間駅南側ホームセンター横の防災カメラの映像がありました。
QGISの解析で抽出された窪地がこの場所にありました。
宗像市は2024年7月の大雨でも道路の冠水があり、その時の映像もYoutubeにありました。
この場所も少しズレてはいますが、QGISの解析で抽出された窪地が近くにありました。最後に
今回の方法による窪地の抽出は、標高DEMの地形データのみを使用したものですので、実際の現地にはきちんと排水施設が整備されていたり、逆に抽出されない箇所も建物や塀などの人工物によって水の溜まる場所があるかもしれません。
しかし、災害が起こる前に注意するべき場所を抽出するのには少し役立つのではないでしょうか。
抽出した情報をもとに、大雨時に通ってはいけない道を確認しておくことも必要かもしれません。