ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Garmin GPSコミュのスペースシャトルからのレーダーのデータで地図

  • mixiチェック
  • このエントリーをはてなブックマークに追加
●スペースシャトルからのレーダー映像を基にした地形図をGPSMAPに導入●

なーんて難しいタイトルを付けてみましたが、プログラムの知識は無くても目的とする地域のデータ(緯度、経度)がスペースシャトルからのレーダーで高度データベースが作られてさえいれば、誰でも簡単に地図を作ってGPSMAP60に持ってこられます。

ただし、ここで言う地図とは等高線を持った地形図であり、道路地図ではありません。 バックグラウンドが透明な地図を作る事によって、道路地図があれば、それに重ねて表示する事が可能です。

自分の場合は、バイクでベトナムの山岳地帯を旅をする為に、どうしても地図が欲しくて地図を作るに至りました。 地図の一部は公開されていますが、ベトナム全土をカバーする地図は現在作成中です。 (協力して下さる方がいれば、助かります)

地図自体はここで公開するのは控えます。 なぜならMIXIはバイナリーを配布出来るようになっていませんし、権利関係の書類を読むのが辛いからです。  ただし、NASAのデータを個人的な目的に利用するのは構わないようなので、「誰でも作れるGPSの地形図の作り方」をここで公開します。  このステップに沿ってステップ・バイ・ステップで作れば、通常のWindowsの操作が出来るスキルの人ならば、難なく地図を作れるので、欲しい地図を自分で作ってみてください。 (私に地図の作成依頼は受けません)

しかし、これから説明する手順に不明点などがありましたら、ある期間内は出来るだけ答えるようにします。

手順の流れとしてはこんな感じになります。

A. NASAのFTPから必要な地域のバイナリデータを入手 (hgtファイルという高度データです)
B. 高度データをプロットし等高線を抽出してポーランド形式(MP)に直します (DEM2TOPOを使います)
C. テキストエディタで地図の名前を変更します。 更に付加的な機能の要望があれば、テキストエディタで手直しします。(バックを透明にする等の要望がなければこのプロセスはスキップできます)
D. GPSMapEditというツールでポーランド形式(MP)を読み込み、このツールと連動するcGPSMapperでIMGファイルを作ります。
E. SENDMAP20でGarminに送り込みます。

以上の手順です。 パソコンの速さや地形の複雑さにもよりますが、緯度1度、経度1度の区域で10分ぐらいで地図が作れます。 A-Eのステップには入れていませんが、MAPSOURCEにもこのデータは入れてPCでも見られます。

地図上でPOIを追加したい場合等はCのプロセスでMPファイルに手を入れる事になります。

これに沿った話、皆さん興味ありますか?

コメント(28)

素材: NASAのデータベース:Shuttle Radar Topography Mission (SRTM)  ここでは2005年に公開された一番よさげなSRTM-3(3秒メッシュ)無料のデータを使います。 私の説明に沿って作るのでしたら、下のURLから北緯19度、東経105度のブロックを使ってください。 でも本当はどこでも構いません。  下のFTPを見て、想像の余地さえ与えないファイル名の"N18E105.hgt.zip"というファイルをダウンロードして、UNZIPしてください。 UNZIPの方法が分からない方はGOOGLEででも探してみてください。

ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SRTM3/Eurasia/


ツール1 IDL VM

ここからダウンロードしてください。

http://www.ittvis.com/download/download_splash.asp?wdiid=1030

からIDL 6.3 Virtual Machine - Microsoft Windowsョ (2000, 32-bit XP)というIDL VMをダウンロード
これはDEM2TOPOを動かす環境として必要なだけで、このツールを使ってプログラムを作る事はありません。
このツールを直接プログラムファイルから起動する必要もありません。 DEMO2TOPOを起動すると、自動
的に環境がロードされ、DEM2TOPOを終了すると自動的に終了します。 ランタイムは無料です。 ですから
インストールした後は意識的にこれを起動する必要は無く、自分はこのツールは起動すらしたことは
ありません。 ダウンロード後にインストールをして下さい。 

ツール2: cGPSMapper Free Version

このツールは非常に素晴らしく、多くの地図がこのコンパイラによって作られています。 基本的には人間に理解しやすく、エディットできるポーランド形式の地図やPOIのソースファイルをIMG形式に変換してくれるツールです。 フリーウェアバージョンもあり、機能制限もありますが、個人的な地図を作るには必要で十分な機能があります。 このツールもここの例では直接は起動しません。 次に出てくるGPSMapEditが自動的にこのツールを呼び出して使ってくれます。  Windows GPSmapper 0086a packageというファイルをここ http://gps.chrisb.org/download/GPSmap0086a.zip からダウンロードして、どこかのフォルダにUnzipします。

ツール3: GPSMapEdit

このツールはIMG形式やMP形式のファイルを画面上に図形化して、地図をマウスでエディットをし、IMGファイルに戻す役割を果たしてくれます。 この地図はGPSMapEditのExport機能を使ってGarminの地図であるIMG形式に変換できます。 このExportのプロセスでcGPSMapperが呼び出されます。 最初に地図をExportする時にcGPSMapperのインストールされている場所を聞いてきますので、教えてあげてください。 ここからダウンロードしてインストールします。 http://www.geopainting.com/download/mapedit1-0-32-0.zip


ツール4: SENDMAP20

このツールはIMGファイルをGPSにロードするツールです。 シンプルなツールですが、便利です。
http://gps.chrisb.org/en/download.htm からダウンロードして、どこかのフォルダにUNZIPしてください。

ツール5: DEM2TOPO

デジタル高度モデル(Digital Elevation Model)という高度データのデータベースをTOPO形式に変換してくれるツールです。 CPUやプラットフォームに依存しないコードで書かれており、IDL VMという仮想マシン上で動作します。 ツール1で入手した環境がその仮想マシンです。 通常Windowsのプログラムの拡張子は.EXEですが、IDLのアプリケーションの拡張子は.savです。 このツールを起動するのはdem2topo.savというファイルをダブルクリックします。  http://people.uleth.ca/~brad.gom/dem2topo/index.htm

上記のツールの作者に感謝します。
さて、ツールとデータが揃ったら、早速、等高線の地形図を作ってみましょう。

暗黙のお約束として、これらの操作によりパソコンやGPSが不調になったとしても保証はできません。 自己責任でお願いします。そして、地図をロードする際は、以前にGPSのメモリーにある地図は【消去】され、新しくロードされる地図のみがGPSにロードされる事を覚えておいてください。

【ステップA】はもう終了しています。 NASAからのデータを選んでUNZIPした時点で終わりです。


【ステップB】

エクスプローラを使ってdemo2topoを入れたフォルダを開きます。 そして、保存してあるdemo2topo.savをダブルクリックします。 IDL VMが正常にインストールされていれば、IDLの宣伝が出てきますが、その中の"CLICK TO CONTINUE"を押します。  DEM2TOPOが立ち上がってきたら左上の"SELECT DEM File(s)を選択します。 そこで、NASAのSTRMの".hgt"の拡張子のついたファイルが格納されているフォルダを指定してファイルを開きます。 (この例では"N19E105.hgt"です)  すると、画面の描画が始まります。 画面上のブルーの色は水面ではありません。 このデータは等高線データなので、低い陸地と海面、内水面の区別はありません。
画面が表示されたら、画面の左下の"Create .mp fils(s)"をクリックします。 すると高度の大きい部分の等高線の生成から高度の小さい部分の等高線の生成まで順次自動的に行われ、"Finished"のダイアログが出てきます。  これでもうこのツールは"Exit"を押して終了します。  ここまでの操作で、N19E105.hgtが入っているフォルダに"N19E105.mp"というファイルが作成されます。

【ステップC】

お好みのテキストエディタ(たとえば、Windowsのノートパッド)を開き、N19E105.mpというテキストファイルを開きます。 拡張子が.mpになっていますので、エディタによっては「すべてのファイル」という選び方をしないとこのファイルが見つからないかもしれません。 ドラッグ&ドロップでも開けるエディタは、エクスプローラからエディタにドラッグ&ドロップして開いてみても構いません。

さて、.mpファイルを開くと3行目ぐらいに[IMG ID]という部分が見えると思います。 ここから十数行がこの地図の属性を決めるブロックです。 残りの部分は等高線の数値データのブロックになっていますが、今回、エディットする必要があるのはこの最初の十数行のブロックの部分です。 

まず[IMG ID]の次の行の「ID=00000000」の部分をエディットします。 これは地図に付けられる番号です。 これが0のままだとGPSはロードできません。 GPSが受け付ける数値と受け付けられない数値があるらしいですが、忘れました。 しかし、この番号は、次のフィールドの名前と共通点を持つほうがなにかと便利です。 したがって、ここの8桁の数値をこう"90190105"しましょう。
9は他の地図で一番上の桁が9だったから付けているに過ぎません。 残りの数値は東経、北緯の数値を使いました。 西経、南緯だったらどうするかは、とりあえず考えてません。 なにか簡単で共通の名前の規則を誰か考えてくれるとありがたいです。 自分は緯度は3桁になることはないので、もし南緯70度西経150度なら 便宜的に"91701150"というように南緯、西経の数値に頭に1をつけて表現しています。

IDの次の行は"Name=N19E105"という名前になっています。 この名前はこの地図をGPSにロードした後、画面でも確認する事ができます。 とりあえずこれはそのままにしておきます。  

お好みで[IMG ID]から[END-IMG ID]で囲まれた部分に地図の属性を追加することもできます。 ここでは地図の背景を透明にしてみましょう。 この.mpファイルの形式についてはcGPSMapperのマニュアルに詳しく書かれています。 興味がある方は見てみてください。 さて、透明にするためにTransparent=Yという行を追加してみました。  この時点でのヘッダはこんな感じになっているはずです。

[IMG ID]
ID=90190105
Name=N19E105
Preprocess=F
Datum=W84
Elevation=M
TreSize=500
TreMargin=0.02000
RgnLimit=250
POIIndex=N
Levels=4
Level0=24
Level1=21
Level2=18
Level3=17
Zoom0=0
Zoom1=1
Zoom2=2
Zoom3=3
Transparent=Y
[END-IMG ID]

これでテキストの変更はとりあえず終わりです。 ファイルを上書きして保存してください。 

【ステップD】

さて、もう終盤です。 GPSMapEditを起動します。 File->Openから、先ほどエディットした"N19E105.mp"というファイルを選んで開いてみてください。 小さく地図が見えるはずです。等高線が少ないように見えますが、虫眼鏡のツールを使ってどんどんズームしていくと細かい等高線が出てきます。 このGPSMapEdit上でマウスを地図の余分な部分を削ったり必要な部分を加えたり、位置のズレを直したりできますが、今回は何もしません。 地図を確認しcGPSMapperを起動する為だけに使わせてもらいます。 地図の単位がメートル単位ではない場合はこのツールのTool->Option->Unitで変更します。 このツールのデフォルトはフィートだったかもしれません。

さて、ここで地図の見物?が終わったらFILE->Export->Garmin IMG->cGPSMapper.exeを選びましょう。 すると、出力ファイル名を聞いてきますので、デフォルトのままにしましょう。 N19E105.imgが出ているはずです。 次へ進むと今度はcGPSMapperのパスを聞いてきます。 素直にインストールしていれば、"C:\Program Files\cGPSmapper\cgpsmapper.exe"にあるはずですが、違う場所にインストールしたならば、cgpsmapper.exeの場所を指定して「Run」を選びましょう。 コンパイルが始まり途中経過が画面に出ます。 RGNLIMITの警告が出ていますが、実害はありません、気になるようでしたらステップCに戻って250を500以上にしてDのステップをやりなおしてください。  このコンパイルには私の遅い3年も使っているノートブックパソコンでは時間がかかります。 それでも例題に使ったN19E105.mpというファイルはさほど複雑な地形ではありませんので、12分で済みます。 しかしある別な地図では数時間もかかりました。 気長に待ってみましょう。 高速な最新型PCならすぐに終わります。

【ステップE】

さあ、ここでもう最終段階です。 sendmap20.exeを起動して、ステップDで作成したN19E105.mpを指定してパソコンに接続したGPSにロードしてみましょう。 前にも書きましたが、既にGPSのメモリに入っている地図は消去され、上書きされます。 このsendmap20では、複数のファイルを一度にロードできますので、今後、地図を追加する場合はまとめてロードすると良いでしょう。

右上のAdd Mapsで地図を追加し、Upload maps to GPSでロードします。 ロードが終わったら"Exit"を押してsendmap20を終了します。

【確認】

GPSの地図画面を見て北緯19度、東経105度の部分にスクロールさせ、拡大してみて見ましょう。 もし、表示されなかったら、どこかのステップが間違っています。 自分の場合、ステップDで同時に他のファイルをロードしたファイルが正しくなく、ロードがうまく行かない場合がありました。 その場合、一個ずつGPSにロードしてみて、ダメな.IMGファイルを外すとロードできます。
長くなりましたが、これで終わりです。  

電車の中でカチャカチャ書いて読み直していませんので誤字脱字等、ご容赦願いします。
素晴らしい解説ありがとうございます。

後でチャレンジいたします。

ところで手元にGPS76があるのですが、これにも地図はアップできるでしょうか?

GPSMAPxxあたりでないと無理でしょうか?

いちど試してみます。
では よろしくです。
あら、気が付いたら説明の途中で北緯19度の地図と18度の地図が入れ替わってしまいました。 申し訳ありませ、19度でも18度でも大丈夫です。
>>よってるさん、

GPS76だとどうかは分かりません、ただし、地図さえ表示できれば、あとはモデルによっての地図自身の「方言」は少ないようです。  メモリ容量さえ許せばOKではないかと思います。 幸いな事にコンパイル後の緯度経度グリッドあたりの容量は地図は500Kから数Mぐらいですので、大丈夫ではないかと思われます。 
■りょうさん
どうもいい情報ありがとうございます。
週末でもチャレンジしてみます。
ふぅ、やっとベトナム全土の地図が完成しました。 これで地形図は完璧ですが、あとは市街地図・・これが別トピの「紙の地図を・・」が実現すれば、なんとかもってこられるのにと悔しく思っています。   ソースコードが345メガバイト、コンパイル後のIMGファイルは15.3MBになりました。

街以外のベトナム旅行には役に立つかも?
一旦完成したつもりだった地図ですが、GPSで見ると、どうも殺風景です。 何が足りないのか、何が多いのか、よーく考えてみると、「海岸」「川」「湖・池」のような水が無いのです。 これが無かったせいで地図のメリハリが無く、単なるモアレ模様のような地図になっていました。

そんなワケで、水を探していると、これまたスペースシャトルから観測したデータがNASAのFTPで見つかりました。

ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SWBD/SWBDeast/

です。 ここにあるデータは何故か前に出たSRTM3のデータとは違うルールで名前が付けられています。 経度+緯度.ZIPみたいな名前です。  こうなると経度に沿って南北に地図を作っていくのが作りやすいのですが、前のデータとの連携を考えて、経度ではなく、緯度に並び替えてデータを作ってみました。

前回はかなり複雑な事をして等高線データを取り出しましたが、今度はものすごく簡単です。 行程にして数分の一の労力で水マップを作れます。

1. NASAのFTPからご希望の緯度、経度のデータのZIPファイルをダウンロードする。

2. どこかにUnzipする。

3. GPSMapEditに2.で出てきたshpファイルをドラッグ&ドロップ叉はインポートする。(http://www.geopainting.com/download/mapedit1-0-32-0.zip )

4. GPSMapEditからファイルを保存した後、Exportしてimgファイルを作る。(http://gps.chrisb.org/download/GPSmap0086a.zipが必要)

5. Sendmap20でGPSにアップロードする。

これで終わりです。  これを前に作った地図に重ねれば、ほーら、地図らしくなりました。 (画像は後で・・なぜならパソコンが遅く3のプロセスで時間かかってます)
先ほど処理が終わり、GPSにロードできました。

最初の画像は水マップのみの画像、続いて、その上にPOIを重ねた画像、そして、別な位置ですが、ダム湖の画像です。

ちょっとは地図らしくなったでしょうか? ただし、スペースシャトルのデータは水面に関しては30mの解像度なので、あまり小さな池は出ませんし、輪郭も拡大するとカクカクです。

まぁ、素人の作る地図ですので、こんなもんでしょう。
今まで、地形図、内水面、海岸線と次々にインポートしてきたのですが、地形図としては、こんなもんでしょうが、他のデータも重ねたくなります。

トピックとしてここが適切かどうかは微妙ですが、スペースシャトルのデータではなく、今夜ははGISのデータを重ねてみようかと思っています。 GISのデータと言ってもスペースシャトルのデータ自体もGISのデータ形式で加工されているものをGETしたわけなので、特別恐れるべき存在ではないように思えます。  さて、今夜寝るまでにアップできるでしょうか?

WEBでググってみると http://search.geocomm.com というGISデータのサーチエンジンが見つかりました。 今回私が作っているのはベトナムのデータなので、Vietnamで検索するといくつかありました。 ダウンロードしようとするとログインが必要だと言われたので、無料(これが自分のポリシー)だという事で、メアド、パスワードを登録し、transportというセクションのデータ4つのダウンロード完了。  Aeronautical - Points、Railroads - Lines、Roads - Lines 、Transportation Structure - Lines という4つのデータをダウンロードしたところで、フリーのアカウントのダウンロード制限に引っかかったらしく、「これより先はお金を払え」と言って来たのでこの4つのデータを使います。 RDLINE.E00.GZというようなネーミングだったので、Winzipで解凍すると、予想通りE00形式のデータが出てきました。

さて、今、夜の9:40分はこの状態です。 どうなるかな・・
地図のコンパイルを始めて犬を散歩に行って戻ってみるとエラーが出て終わっていました。 IDと名前をセットしなおして、コンパイルしなおしたらエラーは直りました。 またコンパイルすると、見たことのないエラー、どうやら、レベル0(一番詳細なマップ)では、こんなに広いエリアは表示できないよみたいなエラーです。 IMGファイルが生成できたのですが、GPSのUSBケーブルが見つかりません。 GPSMAPEDITのFile-->Map PropertyからLevel 0,1しかデフォルトではないので、これを0,1,2,3と4レベルに設定しなおし、地図の全データをレベル0から2に移動しました。 それで現在再コンパイル中です。  現実にはそうサクっと行かないですね。 E00をSHPファイルに変換するのもフリーのソフトの組み合わせだと結構苦労しますね。
コンパイルが終わりました。  cGPSMapperのコンパイルのログはこういう感じになります。

*******************************************************************************
cGPSmapper a GIS converter into GARMIN compatible format maps
Version : 0090 Oct 7 2006
Copyright(C) Stanislaw Kozicki, 2000-2006
cgpsmapper@gmail.com

THIS IS A FREE / SHAREWARE / PERSONAL VERSION OF CGPSMAPPER - YOU CAN USE
IT ONLY IF YOU AGREE WITH CGPSMAPPER NON COMMERCIAL LICENCE TERMS OF USE
BE SURE TO READ LICENCE.TXT FILE WHICH COMES TOGETHER WITH CGPSMAPPER
OR GO TO HTTP://CGPSMAPPER.COM
*******************************************************************************
Non Commercial only - Free cGPSmapper version
*******************************************************************************
Custom type definition : YES
ESRI data support : NO
POI full info : NO
POI indexing : NO
City indexing : NO
Find intersection support : NO
Street numbers support : NO
Street full address : NO
Global indexing support : NO
Auto-routing support : NO
Marine types : NO
Marine extended support : NO
*******************************************************************************
Garmin and MapSource are registered trademark or trademarks of
Garmin Ltd. or one of its subsidiaries.
*******************************************************************************
cGPSMapper home page: http://cgpsmapper.com
*******************************************************************************
Importing data

D:\HCMC\Railroad\Transport\Transport.mp(22) : Warning W014: RGNLIMIT should not be lower than 500.
Current import datum is: W84 :WGS 84 Global Definition II
POI info sorting
Layer >>>>>>0<<<<<< generation
****points 1****
Elements to process -->118
100%
Processed -->118
100%
Successfully imported: 118 not imported: 0
**** END ****
****lines ****
Elements to process -->3040
100%
Processed -->39518
Split -->2552
100%
Successfully imported: 39518 not imported: 0
**** END ****
Maximum error: 2.3808 meter
Mean error: 0.193333 meter
Layer >>>>>>1<<<<<< generation
****points 1****
Elements to process -->118
100%
Processed -->118
100%
Successfully imported: 118 not imported: 0
**** END ****
****lines ****
Elements to process -->3040
100%
Processed -->5577
Split -->1269
100%
Successfully imported: 5577 not imported: 0
**** END ****
Maximum error: 13.0278 meter
Mean error: 0.0468263 meter
31774 regions to import... done
Layer >>>>>>2<<<<<< generation
****points 1****
Elements to process -->118
100%
Processed -->118
100%
Successfully imported: 118 not imported: 0
**** END ****
****lines ****
Elements to process -->3040
100%
Processed -->3128
Split -->76
100%
Successfully imported: 3128 not imported: 0
**** END ****
Maximum error: 51.6482 meter
Mean error: 0.119997 meter
2121 regions to import... done
202 regions to import... done

Size optimization in progress

Map ID:55ed5f2 Biggest internal file: 925427
Done!
File :D:\HCMC\Railroad\Transport\Transport.img is ready to use

写真はGPSMapEditの画面です。 飛行場他、網目上に交通網が表示されているのがわかります。
ここで大きな問題が発覚、GPSにロードする為のケーブルが見つかりません。 カバンに入れたまま、会社に置いてきてしまったに違いありません。

それと、2つ前に書き込み忘れたのですが、データに属性を持たせるときに、Airaport=空港、RailRoad=鉄道、Road=道路までは良かったのですが、Transportationは何でしょう? 交通だと思うのですが、飛行機も鉄道も道路もすべて交通です。 とりあえず、ハイウェイという事で定義しておきました。

ケーブルが無いので、GPSの画面はアップできません。 その代わりに昨日作った緯度データに重ねた水マップをGPSMapEditに読み込んで表示したものをここに提示します。

って重ねてみたのですが、見事にズレてます。 原因はベトナム座標系をUTM48というメルカトル法のゾーン設定をしたのですが、これは自動的に緯度0というところにマッピングされます。 というワケでこんな感じの状態で今日の所は断念。
久しぶりの書き込みです。  11日間ほどベトナムに旅行に行って来て、ここ何ヶ月かここで手順を発表していた地図を試す機会に恵まれました。 ベトナムで2本の国道が南北に走っていますが、一般的に知られている国道1号線と15号線ではなく、もう一つの隠しルートである西ホーチミン道路という林道をオフロードバイクで1500km程走ってきました。 信号はこの区間で最後の市街地に行くまではゼロ、現地のガイドがバイクで先導するものの、何年ものキャリアのある彼も通った事の無い林道で、道幅も狭いためにこのうち800kmぐらいすれ違った乗用車はゼロ、すれ違ったバイクさえ20台ぐらい、ベトナムの信頼できる地図帳には載っていない分岐や迂回路があり、自作地図+GPSMAP60CSxはめっちゃ役にたちました。 もちろん、こんな林道ですので、スペースシャトルの地図やデジタルで公開されている道路地図には載っていないルートでしたが、山岳部の等高線に沿って道路があるので、現地ガイドが度々バイクを止めて私のバイクにGPSを見に来るぐらい役立ちました。 ラオス国境から最短で数百メートルの所を走っている為に国境を間違って超えないように注意しつつのアドベンチャーでした。 

地形図とは別に紙の地図トピで起こした市街地図もばっちりで、街で乗ったタクシードライバーに、「ここ右、次の交差点をまた右」みたいに指示できるレベルでした。
りょうさん

日記も見ました。
ルールのところが面白い。
泣かないと ときめかない 
旅慣れている人の言葉ですなあ。

そして 羨ましい。
そして3つめのルールが「下痢しない」でした。(笑)
これが無ければ綺麗なルールだったのですが・・・
【パラセールの為の台湾地図】 (その1)

友人が台湾でパラセールをやるというので、スペースシャトルからレーダーで観測したデータを元に地図を作ってあげることにしました。 もちろん、この地図の通りに地形がなっていないからといって保証しないよと言ってはありますし、命の保証もしませんが、とりあえず、山がどうなっているのか、地形から風の向きの予想が出来る参考資料として、GPS用の地図を作りました。

もう1年近く前にベトナムの地図を作って実際に旅行に使ったわけですが、前回と同じ要領で作ってみたところ、不具合(ショボくなった)があったので今回は少しグレードアップしました。

★ 等高線を100m毎のスケールから20m毎のスケールにした。(前回比25倍のデータ量!)

★ スペースシャトルが何らかの原因で測量できなかった穴[データ値がVOID]が地図上に多数あるのでそれらを埋める。

という2点の改良を台湾の地図に加えました。 等高線に関しては100mスケールだとかなりの丘でも見逃してしまい、苦労したのですが、20mスケール等高線だと中規模な丘なら十分に地図で確認できると思います。 また、データの穴は100mスケール等高線の地図だと殆ど気にならなかったのですが、20mスケールの等高線にしてみると地域的に偏ってVOIDデータが発生していたらしく、インドネシアや台湾は穴だらけでした。 (と言っても直径で十〜数十メートルの垂直の穴ですが・) 

これから数回に渡ってその手順の説明をして行きたいと思います。 基本的な流れは前回と似ていますが、レーダーのデータのデーターソース、形式、そして等高線を生成する過程が若干異なるだけです。  ベトナムの地図のは正直言ってデーターの細分化が多く、手順はともかく、同じ事を何十回もやらなければいけないという手数が掛かったのですが、今回は国の形が丸に近く、新しい方法を導入した事でしこみさえちゃんとすれば、あとは半日もパソコンを動かしっぱなしにしておけば台湾の地図が出来上がります。

(つづく)
【我慢できないレベルの穴だらけ】→違うデータベースを使っちゃえ

等高線地図(以降TOPO MAP)をより精密に作る際、前にも書きましたがどうしても許せない限界を超えているデータがあります。 スペースシャトルのレーダーから地表を観測した際のデータ欠損です。  具体的にはこんな具合に見えます。  左の画像がNASAのSRTMのFTPから直接取って来たデータをベクトル化して見えるようにしたものですが、赤い部分がデータの欠損部分です。 [VOID]というデータになっており、地図上は海抜0メートルの「穴」としていました。  この「穴」出現はの局所的な偏りが多く、今回の台湾では許せる範囲を超えていました。  台湾の山はスペースシャトルの生データだと、まるで蜂の巣のような穴だらけの山脈に見えます。

この「穴」を埋めるにはどうしたら良いか?と考えていたのですが、一個一個手でやっていてはキリがありませんし、間違いも多くなりそうです。

そういうワケで色々探し回っていた所、全世界をカバーする「穴補正後」のデータベースを見つけました。 それが"CGIAR-CSI"という空間データベースです。 URLはhttp://srtm.csi.cgiar.org/ で、全世界のデータをダウンロードできます。 ここからダウンロードしたデータで上記の穴だらけと同じ場所のデータが右の画像です。  綺麗に補正されていますよね?  気に入ったのでこのデータを今回からは使わせて頂く事にしました。
このデータベースの気に入った点は、データのダウンロードがやりやすいという事もあります。 NASAの場合、あるエリアのデータをダウンロードをするにはその地域が含まれる緯度、経度の正方形をそれぞれ1度単位で記録し、それに相当するファイルをFTPから探してこなければいけなかったのですが、こちらのCGIAR-CSIはそれに加え、マウスで地図の矩形領域を指定するだけで目的とするデータをダウンロードできます。 ですので、処理するファイルの数もぐっと少なくなりますし、ミスも冒し難い一石二鳥です。

穴が無いせいか、パソコンでデータを処理していく上で重要な処理速度もこのデータだと上がっている気がします。  (前回のベトナムは4年落ちのノートパソコンで1週間以上かかりましたが、規模の差はあるものの、今回は半日です)

前回はDEM2TOPOというソフトを使ってNASA、SRTMのDEM(デジタル高度モデル)のレーダーの計測値を処理したのですが、これはHGT形式というデータ形式でNASAから提供されています。 CGIAR-CSIは同じデータをGEOTIFFという形式で提供しています。 最初、この形式を処理できるフリーソフトを探していたのですが、なんと同じDEM2TOPOというソフトはこのGEOTIFFを読んで同じように処理してくれます。 GEOTIFFは画像形式のTIFFの拡張で、緯度、経度、そして曲率を持ったデータ構造です。

DEM2TOPOを使う目的は等高線データを生成するという事です。 スペースシャトルが元々測定したデータはある距離を持った地点の高さを連続的に測っていくという方法をとっていますので、それを並べていくとブロックで作った丘のようにゴツゴツした棒グラフのような地表になってしまいます。  そこでDEM2TOPOは、このゴツゴツした地表に粘土をぬって滑らかに一度して、その後に等高線のデータを計測しなおすという事をやってくれます。  ですので、データの正確性には疑問が残りますが、見た感じではうまいぐあいに滑らかな等高線を任意のピッチで生成してくれます。  今回は20mごとの等高線ですが、技術的には1m単位の等高線でも作れます。  ただ、1m単位の等高線は表示すると山間部はGPSの画面が真っ黒になってしまうの実用性は低いので今回は20mとしました。 

次回はその具体的な手順の話です。
さて、必要なツールはこのトピの#1に書いたツールです。 私は2月ごろにPCがクラッシュして(バックアップ無しで泣き顔)ハードディスクを入れ替えましたのでツールはもう一度ダウンロードしなおしました。 これは今でもこの手順が有効である証明にもなると思います。

1. 電球DEM データの入手指でOK

前に紹介したsrtm.csi.cgiar.orgへ行って必要なデータをダウンロードしましょう。 地図上の格子で必要な所だけをクリックしていくか、ドラッグで決めるか、緯度経度を入力するかのセレクションがあります。 今回はデフォルトMultiple Selectionを使って台湾を選び、"Search>>"ボタンを押して必要なデータブロックをダウンロードしましょう。この際、ダウンロードのデータはGeoTiffが選択されている事を確認します。 これは便利です。 国の形が入り組んでいても好きなブロックずつ選べますし緯度、経度とも5度のブロックにまとめられていますので、今年の前半にご紹介した方法よりも25倍も効率があがります。 台湾の場合、実は南北に2ブロック分必要です。(画面では1つしか選択していません)

Search>>を押すと2枚目の画像に進みますが、地図とファイル名を表示してくれます。 ここでダウンロードをするわけですが、4つあるダウンロード方法から選べます。"Data Download(FTP)を選びました。 こうしてsrtm_61_08.zipとsrtm_61_07.zipという二つのファイルをハードディスクに保存してZIPファイルを展開して中身を取り出します。手(チョキ)

2. 電球DEM2TOPOを使って等高線のベクトルデータを作ります。(Geotiff→MP形式)

同じく#1で紹介したDEM2TOPOというツールを使ってベクトルデータを作ります。 

ここでは赤で囲った部分で地図の等高線の細かさ具合が変わります。 デフォルトではMajor Intervalが1000m, Intermediate Intervalが500m, Minor Intervalが100mになっていると思いますが、これをそれぞれ500m, 100m, 20mに変更してみました。 5倍、5倍と増えていくのが見やすいと思ったからです。この値は地図の見栄えに大きく影響します。 私が選んだこれらの値は個人的にはハズレがまん顔です。 地図の縮尺を大きくしたときに地図が真っ黒に見えてしまいます。 見やすい地図を作るには1000m, 500m, 20mぐらいにしたほうがよさげです。 色々変えてみて見やすい値を見つけてください。

値をセットしたら"Create .mp files(s)のボタンを押してMP形式のファイルを作ってください。 このMP形式は逆ポーランド形式のファイルで次のステップで使うcGPSMapperという地図コンパイラに直接読み込む事ができるテキストファイルです。  ここでこのファイルの先頭の地図の名前やIDを書き換えてあげましょう。 こうする事によって、GPSから人間がわかりやすい名前で地図のON/OFFがしやすくなりますし、同じIDの地図をロード出来ないのでユニークなIDをつけましょう。

[IMG ID]
ID=00000000  → 68800618
Name=Z_61_8  → 変更してもしなくても良い

上のは"Z_61_8.mp"というファイルの最初の3行ですが私はこの8桁の数値を68800618という変更だけをしました。 この数値は台湾の国際電話のコード688と地図のファイル名を合体させたものです。

次回は地図の不要な部分のカットといよいよ地図の完成です。
今回はいよいよGARMINに読み込ませるIMGファイルを作ります。

3. 地図の見え方等の下準備指でOK

前回作っておいたMPファイルをGPSMAPEDITで開きます。(このツールの入手先は#1に説明済み)  このままコンパイルでも構わないのですが、等高線という性質上他の地図と重ねて使う場合(たとえば、道路地図と等高線)が想定されるので他の描画と重なった場合、この等高線が透明になるように設定します。 他にもおまじないのようなものですが、cGPSMapperのコンパイラが推奨しているように電球TreSizeをデフォルトの500から2000に増やしています。 (これが無くてもOKな地図はありましたが、変更が無いとコンパイル中に落ちる地図もありました) このTresizeの変更はGPSMAPEDITのFILE->Map Propertyで行います。  また、電球等高線が他の描画と重なった場合に透明にするには"Transparent=Y"という指定を行いますが、同じくMap PropertyのExtraというタブで"Add"ボタンを押すとKeyとValueを入力できるようになっているので、Keyに"Transparent", Value"Y"を入力してOKを押します。

4. 地図に不要な地域のカット指でOK

今回作った2分割された台湾の地図の片方は台湾の北端から中国本土の部分までカバーされている広いエリアですが、中国本土の部分は不要ですので、電球GPSMAPEDITで矩形領域を指定して"DEL"キーを押して不必要な部分の地図をカットします。 これで台湾北部をカバーする地図の大きさは95%ぐらい小さくなります。

5. コンパイル

GPSMAPEDITでFile→Export→Garmin IMG/cGPSMapper.exeを選択して地図のコンパイルを開始します。  例の穴が無くなったデータは思ったよりも軽く、穴あり地図よりもずっと速くコンパイルできる感じがします。   終了を待つと"Z_61_8.img"というファイルがMPファイルのあったフォルダに出来ますので、これをSENDMAP20.exeでGPSに流し込むと完了です。 台湾は二つのブロックがありますので"Z_61_7T.img"というファイルと一緒にロードします。 終わりです。手(チョキ)

更に水データが欲しい場合、SWBDというデータ(こちらは最初からShapefileになっているのですが、緯度・経度に1度ずつなので面倒くさい)をこのトピの#8のように作成しロードしてくれば、海岸線や河川、湖等が表示されます。 注意点としてはこのSWBDの地図はTransparent=Yの指定をしない事です。 これを指定するとベースマップのテキトーな海岸線が存在している場合、SWBDの地図が遠慮してしまい、自分を透明にしてしまって、海岸線のデータが細かくなったり直線的になったりしたちぐはぐの地図が出来てしまいますので、Transparent=N、又は何も指定しないにしないといけません。

最近のSENDMAP20はGPSに送り込むIMGファイルをテキストとして保存したりロードしたりできますが、私はこんな感じのファイルを台湾用としてロードしています。

:Taiwan TOPO SWBD Map
C:\Documents and Settings\me\My Documents\My Garmin\Garmin Custom Map Tools\Taiwan\swbd\Taiwan_SWBD.img  危険・警告水マップです。
:region
C:\Documents and Settings\me\My Documents\My Garmin\iQUE3600 Basemap\GMAPBMAP.IMG  危険・警告iQUE3600用の世界全体をカバーする道路地図のベースマップ
:region
C:\Documents and Settings\me\My Documents\My Garmin\Garmin Custom Map Tools\Taiwan\geotiff\srtm6107\Z_61_7T.img  危険・警告今回作った台湾北部地図
:region
C:\Documents and Settings\me\My Documents\My Garmin\Garmin Custom Map Tools\Taiwan\geotiff\srtm6108\Z_61_8.img  危険・警告今回作った台湾中部・南部地図

(終わり)

次はどこの地図作ろうかな?
今晩は、読ませていただいてます。凄いです。時間が出来たら私も試して見ます。

> 次はどこの地図作ろうかな?
Malawi とか、、^_^;;
調子に乗って他の地域の地図を作ろうとしました。 具体的にはメキシコのBAJA CALIFORNIAの地図を作ろうと上のサイトからデータを落としてきてコンパイルしたのですが、cGPSMapperでエラーが出たり、エラーが出なくてもIMGファイルが異常だったりと、踏んだり蹴ったりでした。 いくつか5度単位でもコンパイルできる地域はあるのですが、それは陸地の面積が小さく、海が大きいブロックのみでした。  MPファイルのファイルサイズがどうやら原因っぽい感じです。 緯度経度が5度ずつで20mの等高線で陸地が多い地域だと、ソースファイルだけで一つのブロックだけでソースファイルが300MBを越す場合も珍しくありません。  台湾がうまくいったのはたまたま海の中に浮かんでいる島だったからでしょう。  このcGPSMapper、どうやらソースファイルが50MB辺りだと間違いなくコンパイルできるのですが、それから300MBまでの間に見えない壁があるようです。 

というわけでSRTM・スペースシャトルのレーダー測定の高度データの抜け(VOID)を補正したもっと小さな単位のデータを探しているのですが、見つかりません。 どなたか、1度単位でデータ抜け補正済みのデータがダウンロードできるサイト、ご存知ないでしょうか?もうやだ〜(悲しい顔)
9ヶ月ぶりのアップデートです。

最近、私の作った地形図があちこちで使われはじめたのですが(もちろん無料)、穴だらけで恥ずかしく、見直してみた結果、穴を埋める事に成功しました。 険しい山岳地帯ですと緯度、経度それぞれ1度のエリアで、20,000個程度の「穴」が発見されていましたが、なんとかこれを埋めて見られるデータを生成する事が出来ました。

画像でいうと、最初の画像がスペースシャトルのレーダーからの生データを立体化した画像です。 これはVOIDと呼ばれる計測不能データが所々にあります。 理由は悪天候、傾斜した角度からのレーダー測定が別な山の陰になったりと色々あるらしいですが、自分の行く先にこのVOIDのエリアがあると怖いです。 今までこのデータは奈落の底に落ちる「穴」として処理されていました。 

2枚目の画像は同じ地点を補完したデータです。  穴が消えてスムースになっているのがわかります。  そもそもデータが無いので8方向のセルを使って補完しているのですが、そこそこ使えそうに見えるのが分かります。 フリーのツール3DEMを使用しています。

3枚目の画像はこのデータを基にして等高線(Contour)を生成しているところです。  フリーのツールDEM2TOPOとフリーの仮想マシンランタイムのIDLを使用しています。

これで全部無料ツールでやっと穴無し(厳密には殆ど無し)の地形図が完成できました。 
もう自己満足の世界?ほっとした顔
トピック違いかもしれませんが、日本地図の等高線に関して、
以下のような試みをされている方を発見しました。

http://abelpapa.blog52.fc2.com/blog-category-15.html

暇があったら試してみたい…
>ふぉふさん

情報ありがとうございます。  旧空間データ基盤をMapView25000で変換する方法はあちこち載っていましたが、TOPO地図の高精度化は興味深いです。  ニセコ付近の等高線地図の作成依頼が来てまして、時間があったらやってみようと思っていた所でした。

http://www.ersdac.or.jp/GDEM/J/index.html

公開始まった模様ですね。
はい、早速データ処理中です。あっかんべー

添付の図、1枚目が20世紀最後の2000年、毛利さんが乗っていたミッションで取得した
SRTMデータ、2枚目のが今回の地球観測衛星テラのデータです。

1枚目の図では青いエリアが"VOID"いわゆる計測不能、2枚目にはそれが無いのがわかります。
また、データの精度も1枚目は90mの精度、2枚目は15m(水平)の精度ですので、空間比だと
216(6の3乗)のデータ密度だという事ですので、期待しています。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Garmin GPS 更新情報

Garmin GPSのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング