DEM1A2GeoTIFF

QGIS

国土地理院の1mDEMをGeoTIFFに変換してモザイク処理するPythonスクリプトの活用法

はじめに

国土地理院が公開している1mメッシュDEM(基盤地図情報)のGML形式ファイルは、精度が高い反面、そのままGISソフトで扱うには一手間必要です。この記事では、Pythonを使ってGML形式のDEMをGeoTIFFに変換し、複数のファイルをモザイクして1枚に統合する手順をご紹介します。
なお、これらの作業を行う上で、ChatGPTを利用し、PCやPythonインストール環境設定で問題解決の手助けを受けました。また、Pythonコードの生成や操作手順、デバックなども同様に手助けを受けました。皆さんもエラーが発生した場合の問題解決に利用すると良いでしょう。

使用するデータ

国土地理院「基盤地図情報」1mDEM(GML形式)、国土地理院のホームページよりダウンロードします。その方法は、同ホームページに解説されていますので、それに従ったください。
今回は、2次メッシュ単位にまとめられた xml ファイルを利用します。
例題)沖縄島南部の392715メッシュのデータをダウンロードします。zipファイルとしてDLできます。
 入手した『FG-GML-392715-DEM1A-20241220.zip』をダブルクリックするとxmlファイルを確認できます。新しいフォルダを作成し(『392715』と名前を付ける)、このzipファイル内の全データをコピーし、『392715』フォルダー内に張り付ける。これで、解凍処理もおわる。DEM1A2GeoTIFF処理では、フォルダー内の全xmlファイルが処理対象となるので、『392715』フォルダー内に不要なファイルは置かない。
xmlファイルは2次メッシュ範囲を10X10の100分割して生成されている。この範囲内に陸域がない場合は省略されている。この例では83個のxmlファイルが含まれていた。
以上で処理対象データの準備が完了。

必要な環境

Windows + PowerShell(またはMac/Linuxのターミナル)
Python(3.x)
ライブラリ:numpy, rasterio
      PowerShellにてコマンド『pip install numpy rasterio』を実行
      初回のみ実行、すでにインストールしている場合は不要

Pythonスクリプトの概要

pythonソースコードは下記から入手してください。
https://www.gis-okinawa.jp/2025b/dem_batch_merge.py
DL後、テキストエディタで内容を確認できます。

このpythonプログラム『dem_batch_merge.py』を置いてあるフォルダー内にある全てのxmlファイルを対象に自動で処理を行います。
xmlファイル から標高データと位置情報を読み込んで、それぞれ 細分化されたGeoTiff に変換。それらを張り合わせて、1枚のGeoTIFF(merged_output.tif)を作成。

実行方法

1.このpythonプログラム『dem_batch_merge.py』を xml ファイルを収めた『392715』フォルダー内に置く。
2.PowerShell またはターミナルを起動。
3.コマンド cd c:\wksp で処理対象フォルダーを変更
  この例では、『392715』フォルダーをc:ドライブのwkspフォルダー内に置いて作業をする。
  『¥』はPowerShellで『バックスラッシュ』になるが、そのままで良い。(このブログエディタでは『バックスラッシュ』の入力ができない)
4.コマンド『py -3 dem_batch_merge.py』を入力、エンターキーを押す。
 これで処理開始。

各 .xml と同名の .tif ファイルが同数生成されます。
最終的にこれらのtiffファイルをマージした merged_output.tif (GeoTiff形式)が作成され、QGISなどのGISソフトで表示・解析が可能になります

サンプル

国土地理院DEM1Aの処理について、まずは392705,392715,392716,392725,392726の二次メッシュ範囲を処理、モザイクGeoTiffデータを生成しました。ラスターサイズは約21400X16500と超特大、さすが解像度0.04秒ですね。沖縄島全域ではどれくらいの大きさになるか、ほんとにびっくりです。どのようなデータなのか確認するために、第1弾として、陰影付きの彩色標高図webMapをアップします。地理院地図標準地図と合わせていますので、スライダーで合成表示してみてください。ほぼ、オリジナルデータと同程度の解像度まで表示するよう、ズームレベルは17まで対応しています。
https://www.gis-okinawa.jp/2025b/SokinawaDEM1_shd.html

国土地理院DEM1Aの精度確認をする場合は、Slopeと標高彩色図を合わせた地形図の方がわかりやすいです。
https://www.gis-okinawa.jp/2025b/SokinawaDEM1_slp.html

拡大すると、このデータのすごさがわかります。

コメント