地形を”データ層”として持つ──基盤地図情報DEMから5種のプロダクトを量産する

浜松周辺のDEMを使い、段彩図・陰影起伏図・傾斜量図・傾斜方向図を作成した解説用アイキャッチ画像 WebMAP
国土地理院のDEMを活用し、浜松周辺の地形から4種類の地図を作成

基盤地図情報DEMをZIPから直接食わせ、合成・再投影・派生プロダクトまで自動で吐き出すパイプラインを組んだ。地形を「データ層」として持てば、不動産・都市計画の現場は変わる。

この土地、急傾斜地崩壊危険区域に該当しますか?」──不動産取引の現場でそう聞かれたとき、根拠を即座に示せるだろうか。

多くの場合、答えは「調べておきます」だ。ハザードマップを開き、自治体サイトを巡回し、航空写真と照らし合わせる。それで30分は飛ぶ。

だが、国土地理院が公開している基盤地図情報DEMを使えば、この時間は数秒に縮められる。前提は「地形を、その都度調べる対象ではなく、常時持っているデータ層として扱う」ことだ。

本記事では、基盤地図情報DEMから5種類の地形プロダクトを自動生成するパイプラインを実装した経験をもとに、設計・実装の勘所と、現場での活かしどころをまとめる。対象は、GIS基礎を理解している初級の技術者・若手の不動産DX担当者だ。

なぜDEMか──「タダ」が一番強い

DEM(Digital Elevation Model、数値標高モデル)は、地面の高さを格子状に記録したデータだ。国土地理院が「基盤地図情報」として全国分を公開しており、これがすべて無償である。

  • DEM5A:5mメッシュ、航空レーザベース、標高精度 約0.3m
  • DEM5B:5mメッシュ、写真測量ベース、標高精度 約0.7m
  • DEM10B:10mメッシュ、地形図等高線由来

平地から山地まで、地域と用途に応じて選べる。配布形式は FG-GML-*-DEM*.zip という基盤地図情報の標準形式で、市町村単位でダウンロードできる。

ZIPの中身はXMLだ。座標範囲・グリッドサイズ・標高値の列が並んでいる。これを読んでGeoTIFFに変換し、複数タイルを合成すれば、市域を覆う一枚のDEMが手に入る。

ここから先は、計算で何でも取り出せる。傾きも、斜面の向きも、水の流れも──すべて「高さの数値」さえあれば派生できる。

DEMから取り出せる5つの派生プロダクト

DEMから自動生成できる代表的なプロダクトは5つある。

プロダクト中身単位/値域主な使い道
段彩図 (color_relief)標高を色分けRGBA高低差の俯瞰、浸水想定の下地
陰影起伏図 (hillshade)光源315°/45°からの陰影0–255微地形判読、旧河道・盛土の発見
傾斜角 (slope_deg)最大傾斜度 (0–90)急傾斜地、がけ条例の該当判定
傾斜率 (slope_pct)同上、% 表記%道路勾配、土木向け
傾斜方向 (aspect)斜面の向き度 (0–360)日照、太陽光適地

これだけあれば、不動産・防災・都市計画の現場で出る質問の大半に、数字で答えられる。

パイプラインの全体像

実装は Python + rasterio で行った。スクリプトを2本に分け、INIで挙動を制御する設計にした。

FG-GML-*-DEM*.zip
    ↓  dem_merge.py(ZIP展開・XML読込・タイル合成・再投影)
merged_dem_<EPSG>.tif
    ↓  dem_products.py(派生プロダクト生成)
dem_products/
    ├ color_relief.tif
    ├ hillshade.tif
    ├ slope_deg.tif
    ├ slope_pct.tif
    └ aspect.tif

設定はすべて dem_merge.ini に集約した。

[INPUT]
input_dir = C:\path\to\dem_zips
zip_pattern = FG-GML-*-DEM*.zip

[OUTPUT]
output_tif = merged_dem_6676.tif
nodata = -9999

[CRS]
source_epsg = 6668   ; DEM XML自体(JGD2011緯度経度)
target_epsg = 6676   ; 出力(平面直角第8系・メートル単位)

[PRODUCTS]
run = true           ; merge後に派生5種を自動生成

run_dem_merge.bat を1回叩けば、ZIPから5プロダクトまで一気通貫で流れる。日常運用は「INIの input_dir を書き換えてダブルクリック」、それだけだ。

浜松周辺で実際に生成した5枚

実装したパイプラインを、浜松周辺のDEM5A(JGD2011緯度経度)に対して走らせ、平面直角座標系第8系(EPSG:6676、メートル単位)へ再投影しつつ5プロダクトを生成した。背景は国土地理院の淡色地図である。

段彩図 (color_relief)

標高を色分けしたもの。北部の山地が黄〜茶、南部の平野が緑で表現される。地形の全体像を把握する初手として最適だ。

陰影起伏図 (hillshade)

光源を方位315°・高度45°に置き、強調倍率2で計算したもの。台地の縁、谷筋、堤防の法面が立体的に浮かび上がる。旧河道や盛土・切土の境目を探すなら、この一枚で当たりを付けられる。

傾斜角 (slope_deg) と 傾斜率 (slope_pct)

急傾斜地崩壊危険区域は30度以上(傾斜率では約58%)が法令上の警戒ラインだ。slope_degを30度で閾値を切れば、該当エリアの一次抽出はその場で完了する。土木の文脈で「勾配何%」を求められる場面では slope_pct のほうが扱いやすい。

傾斜方向 (aspect)

北=0°、時計回りで東90/南180/西270。南向き斜面の抽出、太陽光パネルの設置適地検討に直結する。後述するが、aspectは方位定義を間違えやすいので注意したい。

実装上の3つの落とし穴

実装中に踏んだ罠を3つ挙げる。これからパイプラインを組む人の参考に。

① startPoint への対応

基盤地図情報DEMのXMLには gml:startPoint という要素がある。tupleList の標高値がグリッドの先頭から始まらず、startPoint から始まっているケースがあるのだ。これを無視すると、データが斜めにズレた歪んだDEMができあがる。

対策は、startPoint の (col, row) から線形インデックスを起こし、先頭はNoDataで埋めて、startPoint以降に実データを並べる処理を入れること。

② 座標系判定での解像度換算

派生プロダクト計算には「セル幅(メートル)」が要る。傾斜・陰影とも勾配ベクトルを使うため、dx/dyがメートルでないと値が崩れる。

  • 出力DEMが緯度経度(EPSG:6668、度)
    → 度→メートル換算が必要(緯度に応じて cos(lat) 補正)
  • 出力DEMが平面直角座標系(EPSG:6676、メートル)
    → そのままでよい

rasterio の CRS.is_geographic で判定して分岐させる。同じスクリプトで両方扱えるようにしておかないと、再投影後に slope や hillshade が暴れる。

③ aspect の方位定義

aspectは、GDAL/QGIS標準では「北=0°、時計回り」(東90/南180/西270)だ。だが numpy.gradient ベースで素朴に書くと、数学系(東=0°、反時計回り)になってしまう。

地理方位に揃えるなら次のとおり。

gy, gx = np.gradient(dem, dy, dx)
# row は南方向に増えるため、北成分=gy、東成分=-gx
aspect = np.degrees(np.arctan2(-gx, gy)) % 360
# 平坦地はNoData化(方位が無意味なため)
flat = (np.abs(gx) < 1e-9) & (np.abs(gy) < 1e-9)
aspect[flat] = np.nan

これでQGIS標準と整合する。

不動産・都市計画での実装パターン

パイプラインで吐き出した5プロダクトは、そのまま現場で使える。具体的な活用パターンを挙げる。

  • 重要事項説明の補強:取引対象地の slope_deg と hillshade を貼るだけで、急傾斜・盛土の事実関係を視覚化できる
  • 販売資料の差別化:aspect で「南向き斜面」を客観的に示す。航空写真では言えなかった付加価値が、データで裏付けられる
  • 再エネ適地探し:slope_deg(10–30度) × aspect(135–225度)で太陽光適地を一発抽出
  • ハザード説明資料:color_relief で低地、hillshade で旧河道を組み合わせ、浸水リスクを地形側から説明する
  • Webサイトへの埋込み:生成したGeoTIFFをCOG(Cloud Optimized GeoTIFF)に変換し、MapLibre等で配信すれば、自社サイトの常設機能として展開できる

HTML/Webタイル配信まで持っていければ、これは「他社にない地形レイヤーを持つ会社」のインフラだ。一度作れば、案件のたびに使い回せる。

まとめ:地形を”データ層”として持つ

整理する。

  • 基盤地図情報DEMは無料・全国整備済み。使わない手はない
  • 1本のパイプラインで、合成・再投影・5種類の派生プロダクトまで自動化できる
  • 実装の落とし穴は startPoint座標系判定aspect方位 の3つ
  • 出力は不動産・防災・都市計画の現場で即戦力になる
  • HTML/Webタイル配信まで持っていけば、組織の差別化資産になる

地形を「その都度調べる対象」から、「常時持っているデータ層」へ。この一段の昇格が、現場のスピードと説得力を変える。

DEMは決して新しい技術ではない。だが、パイプライン化されていない現場はまだ圧倒的に多い。手数を減らせば、地形は資料に変わる。


(データ出典:国土地理院 基盤地図情報 数値標高モデル。背景地図:国土地理院 淡色地図)
DEM #数値標高モデル #GIS #浜松 #地形解析 #国土地理院 #陰影起伏図 #傾斜量図 #防災 #不動産DX #まちづくり #G空間

コメント

タイトルとURLをコピーしました