コンテンツへスキップ

解像度の異なる数値標高モデルを組み合わせる方法

異なる解像度の数値標高モデルを組み合わせる方法についての覚書です。ここでは国土地理院が提供する高解像度の5mメッシュデータと10mメッシュデータを組み合わせて等高線を生成する手順を紹介します。

はじめに

国土地理院のサイトを覗いてみると5mメッシュの数値標高モデルが公開されています。以前GarminGPS向けに地形図を作成した際は日本全土をカバーしている10mメッシュデータを利用しました。これでも十分地形が分かる等高線が作れましたが、さらに高解像度の5mメッシュだとどうなるだろうかと気になります。

5mメッシュだと単純に解像度が倍になるので、これを元にすれば更に精度の良い地形図が作れるはず。ですが残念ながら現時点(2018/08/10)ではまだ日本全国をカバーしていません。そこで不足している部分を他のデータで補って等高線を生成出来るかやってみることにしました。

fgd_gsi_DEM5_area_20180810.png
現時点(2018/08/10)でのDEM5A(緑のエリア)及びDEM5B(紫/水色のエリア)提供範囲。年々整備が進んでいるようで山岳地帯のカバー範囲も広がってきました。

 

環境

作業環境は以下の通りです。今回はいつもの仮想PCではなくWindowsとのデュアルブート環境を構築して作業しました(作業過程でメモリを猛烈に食うので)。

  • CPU:Core i5
  • Memory:16GByte
  • OS:ubuntu 18.04

 

使用する数値標高モデル

以下の数値標高モデルを等高線生成に用います。

  • DEM5A(5mメッシュ,航空レーザ測量)
  • DEM5B(5mメッシュ,写真測量)
  • DEM10A(10mメッシュ)

数値標高モデルは以下のサイトからダウンロード出来ます。

 

作業

前準備

データをダウンロード出来たらツールを使ってGeoTIFFに変換します。この辺りの流れは以下の記事を参照ください。

変換したGeoTIFFは種類毎にディレクトリに分けておきます。

  • ./DEM5A/
  • ./DEM5B/
  • ./DEM10B/

解像度を合わせる(リサンプリング)

データが揃ったので3種類ある数値標高モデルを組み合わせます。ここではgdalbuildvrtコマンドを使ってvrt形式ファイルにしました。以下のようにコマンド入力してください。


$ gdalbuildvrt -resolution highest -r cubic japan-dem5_10_cubic.vrt  ../DEM10B/geotiff/FG-GML-*.tif ../DEM5B/geotiff/FG-GML-*.tif ../DEM5A/geotiff/FG-GML-*.tif

引数のファイルは後ろになるほど優先順位が高くなります。こうすると、DEM5A->DEM5B->DEM10Bの順に高度情報が参照されるので、DEM5Aが提供されていない座標ではDEM5B、それも無ければDEM10Bの高度情報が読み込まれます。

"-resolution"オプションは解像度を指定します。highestとすると、解像度をGeoTIFFファイルの中で最も高いもの(ここでは5mメッシュ)にあわせます。なお、無指定だと"average"となり、解像度が(10+5)/2=7.5mになってしまいます。

"-r"オプションはリサンプリングのアルゴリズムを指定します。ここでは"cubic"を指定しました。どれがベストなのかはっきりとはわかりませんが、少なくとも無指定(nearestが選択される)だとDEM10Aを参照する場所の等高線がカクカクになります。

等高線の生成

前項のvrtファイルを使って等高線を生成し地形図を作ります。ここではGarminGPS向けの地図ファイルを作成しました。詳細な手順は以下の記事を参照してください。

ちなみに、地域枚に切り出したファイルサイズを見てみると、


$ du -bhc *.tif
17M japan-hachijojima.tif
3.6G japan-hokkaido.tif
15G japan-honshu.tif
2.6G japan-kyushu.tif
42M japan-ogasawara.tif
319M japan-okinawa.tif
1.4G japan-sikoku.tif
22G 合計

となりDEM10Bを使ったときは5GByteくらいだったのでほぼ4倍のファイルサイズになりました。分解能が倍になったのでここは想定通りです。

試しに作ってみたGarmin地図では、

  • 10mメッシュ版:2.8GByte
  • 5mメッシュ版:3.8GByte

とかなりサイズが増えました。GarminGPSはFAT32の制約でファイルサイズ上限4GByteなのでギリギリです。3D表示対応のためにDEMをくっつけたら恐らく容量オーバーになりますね。

 

リサンプリングアルゴリズムと等高線形状の比較

指定したアルゴリズムによって等高線がどう変化するか比べてみました。以下の画像中央付近にある”旗のアイコン”を境界にして左側が5mメッシュ、右側が10mメッシュのデータです。”nearest”を使ったケースなどでは10mメッシュ側の等高線がリサンプリングの影響でガクガクになっているので分かりやすいと思います。"cubic","cubicspline","bilinear"辺りが無難かな。

contour_upsampling_mode.png
リサンプリング:modeの場合
contour_upsampling_average.png
リサンプリング:averageの場合
contour_upsampling_cubicspline.png
リサンプリング:cubicsplineの場合
contour_upsampling_bilinear.png
リサンプリング:bilinearの場合
contour_upsampling_nearest.png
リサンプリング:nearestの場合
contour_upsampling_cubic.png
リサンプリング:cubicの場合

参考までにリサンプリング無し(DEM10B、10mメッシュのデータだけ)を掲載します。出来上がった地形図と見比べると5mメッシュの部分はより細かい地形が判別出来そうです。その一方で10mメッシュと5mメッシュデータの境目となる場所の等高線には違和感がありますね。

contour_dem10.png
DEM10B(10mメッシュ)を元に作成した等高線

 

所感

異なる解像度の数値標高モデルを組み合わせて等高線を生成してみました。作業手順としては問題なさそうですが、もし登山で利用するとなると、うーんどうでしょうか。これから登る場所がちょうど継ぎ目に該当しなければ問題ないかもですが、富士山頂付近なんかがちょうど玉虫色になっているんですよね。。。

次回の地形図更新では試しに10mメッシュ版と10m/5mメッシュ混合版のふたつを作ってみようかな。

 

参考

この記事は以下の内容を参考にさせて頂きました。

公開日 カテゴリー 地図

sukeについて

自転車で日本一周旅行に出ようとー思い立ったエンジニア。 ガジェット類やセミナーに目がない。 将来は田舎でほっこりとしたいですねー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください