最近になって山登りがしてみたくなって地図の読み方を勉強しはじめました。そこで登山でよく使うという1/25000地形図とGPSの地図を見比べてみると、どうにも等高線の形状が異なって見えます。GPSの等高線は明らかに荒いようです。ハイキングくらいなら気にしないでいいのかもしれませんが、これでは山に登った時に参考にならないかもしれません。ネットで公開されている無料地図は荒いものがほとんどのようで、もう少し等高線の精度が高いものを自作してみました。
環境
今回、等高線付きGarminGPS地図の作成に使用した環境です。途中経過も含めると数十GByteのファイルが生成されるのでHDDの空き容量には注意してください。
- GPS:Garmin Oregon400T
- PC:Windows10(64bit)
- CPU:Core i5 4670
- メモリ:DDR3 16GByte
地図作成にあたり、以下のサイトで公開されているスクリプト/設定ファイルを使用させて頂きました。この中にWindowsのバッチファイルが含まれていて、説明にあるように環境構築すればバッチファイルを叩くだけでGarminGPSで使える地図データが生成出来ます。
- 小道具展示室 - Garmin GPS英語版用 日本地図データ
(データ自作用の設定ファイル類 - "config170128.zip"を使用)
http://tmz.skr.jp/data/gmap.html
上記スクリプトを使用するのに以下のツールを使用しました。
- MSYS2(64bit版)
- Oracle Java 1.8.0_131(64bit版)
- mkgmap r3973
- splitter r584
- osmconvert(64bit版)
- kakasi 2.3.4
また、等高線の生成には以下のツールを使用しました(スクリプトではsrtm2osmが使われていますが、SRTMダウンロードサイトで仕様変更があり自動ダウンロードが出来なくなっています)。
- phyghtmap 1.80
無料地図の等高線は何故荒く見えるのか
高度情報の解像度が荒い
冒頭でも書いたようにネットで公開されている無料地図の等高線はかなり荒く、少し拡大すると線がカクカクしているのが分かります。1/25000地図とは比べてものになりません。場所によっては全く別な地形に見えることもあります。何故こうなるのかというと、等高線の生成に使われている高度情報の解像度が原因です。
高度情報は地球全体をゴマの目に区切りそれぞれの区画ごとに海抜高度を保持しています。このゴマの目が細かいほど解像度が高くなり、等高線の形状にした時より実際の地形に即した形状になります。例えば、国土地理院の1/25000地形図では10mメッシュのデータが使用されています。
では、ちまたの無料地図はどうかというと、私が調べた限りではNASAが公開している"SRTM-3"という高度情報が使われているようです。これは3秒(約90m)メッシュのデータです。1/25000地形図と比較すると、単純に面積辺りの情報量で81倍の差があることになります。これでは荒くもなるというものです。
等高線の間隔が荒い
1/25000地図では等高線が10m間隔で引かれています。それに対して無料地図の等高線は20m間隔が多いようです。パッと見で地図が荒く見えるのはコレも一因のように思えます(もしかすると、ベースとなる高度情報の解像度が荒いので間引いてあるのかも)。
より解像度の高い高度情報を利用する
NASAのSRTMを利用する
理屈の上では、国土地理院が公開している10mメッシュの高度情報を利用すれば1/25000地図と同等の等高線が出来上がるはずです。しかし等高線を生成するツール側が国土地理院が提供するデータのフォーマットを読み込めないため、すぐにどうこう出来ません。そこで、今回は同じNASAが提供しているより解像度の高い高度情報を利用することにしました。NASAが公開している高度情報には以下の種類があります。
- SRTM-1(1秒/約30mメッシュ、全世界)
- SRTM-3(3秒/約90mメッシュ、全世界)
- SRTM30(30秒メッシュ、全世界)
上記の"SRTM-1"を使って地図データを生成してみたいと思います。これで"SRTM-3"と比較すると9倍の情報量になりますので改善が期待できます。
SRTMをもとに地形図を作成するツールはいくつか公開されていますが、ここでは以下の"phyghtmap"を使用することにしました。このツールは動作させるのにPython(2.x)環境が必要です。私はMSYS2環境にPythonをインストールして動作させました。
- phyghtmap
http://katze.tfiu.de/projects/phyghtmap/ - Geofabrik - Download OpenStreetMap data for this region:Japan
http://download.geofabrik.de/asia/japan.html
詳細な手順はまた別記事でまとめたいと思いますので、ここでは簡単に使ったコマンドとオプションを記載します。等高線は日本国内のみ生成するようにしています("japan.poly"でエリア指定しています。ファイルはGeofabrikからダウンロード可能です)。等高線の間隔は1/25000地図にあわせて10m間隔としました。
$phyghtmap --polygon=japan.poly --output-prefix=japan_srtm_step10m --srtm=1 --step=10 --line-cat=500,50 --start-node-id=20000000000 --start-way-id=10000000000 --write-timestamp --no-zero-contour --earthdata-user=USER_ID --earthdata-password=PASSWORD
コマンドライン中の"USER_ID"と"PASSWORD"はEOSDIS EarthdataにログインするためのID/パスワードです。SRTMをダウンロードするために必要となるので、あらかじめ登録しておいてください。以下のURLから登録可能です。
- NASA EARTHDATA - Register for an Earthdata Login Profile
https://urs.earthdata.nasa.gov/users/new
国土地理院の基盤地図情報(デジタル標高モデル)を利用する
(2017/9/10追記)
その後、国土地理院が公開している10mメッシュのデジタル標高モデル(DEM10B)を使って地図を作成してみました。作成手順については以下の記事を参照ください。
(2017/9/27追記)
上記の地形図ですが、国土地理院より使用許可を頂きましたので公開いたします。興味のある方は下記ページからダウンロードしてください。
GarminGPS地図を生成する
前項で生成した等高線がGarminGPSのフォーマットに変換します。この辺りは冒頭で紹介した小道具展示室さんのスクリプトを使用させて頂きました。比較用としてSRTM-1/SRTM-3それぞれを使って地図を作成して同じ座標の等高線を見比べてみました。
(2017/09/10追記)
国土地理院のデジタル標高モデル(DEM10B/10mメッシュ)を使った地図を追加しました。レイアウトの都合で少し見切れてしまっていますが、画像をクリックすると全体を見ることが出来ます。10mメッシュともなるとかなり詳細になってきました。
SRTM-3(3秒/90mメッシュ) | SRTM-1(1秒/30mメッシュ) | DEM10B(10mメッシュ) (注1) |
(注1) : この地図は国土地理院の基盤地図情報(デジタル標高モデル)DEM10Bを元に作成したものである。
どうでしょうか。一見して等高線の形状が細かくなったことが分かるかと思います。
ただ、情報量が増えたため地図のファイルサイズもかなり増えました。等高線の間隔を変えるだけで結構インパクトがあります。参考までに私が作成した地図のファイルサイズを以下に記載します(ただし、"DEM10B"の地図は文字コードをUTF-8で作成したものです。同条件での比較ではありませんので注意してください)。もしかすると、お使いの機種によっては入りきらないかもしれません。その場合は必要なBaseCamp等を使って必要な地域の地図だけGPSに転送する等のひと手間が必要です。
高度情報 | 等高線の間隔 | 地図データ容量[KByte] |
SRTM-3 | 20m | 784,544 |
SRTM-3 | 10m | 977,120 |
SRTM-1 | 20m | 974,784 |
SRTM-1 | 10m | 1,434,464 |
DEM10B | 10m | 2,782,016 |
所感
解像度の高い高度情報を使うことで、より実際の地形に即した等高線の地図を作成することが出来ました。少々データサイズが大きくなってしまうのが難点ではありますが、無料地図をインストールしたGPSを山登り等の補助として活用されている方は一度試してみては如何でしょうか(逆に道路しか走らないという方は、SRTM-3を使った地図の方が軽くていいかもしれません)。