9
10
2009
GPS-CS3のデータを活用する(その1)
GPS-CS3のデータをGoogle Earth で表示してみる
前の記事でSONYの小型ハンディタイプGPSロガー GPS-CS3 の記録データの内容(フォーマット)について触れました.コンピュータの専門家であれば、PerlやRubyなどのスクリプト系言語やC言語などを用いて、自分の利用したいデータフォーマットに変換する事ぐらいは朝飯前でしょうが、一般のユーザにとっては敷居が高すぎます.そこで今回は、オープンソースベースのフリーソフトウェアを使って、GPS-CS3 の記録データを目的のデータフォーマットへ変換する方法を簡単に紹介します.
今回紹介するソフトウェアは、GPSBabel というオープンソースベースのフリーソフトウェアで、GarminなどのGPSツールのデータを様々な形式のデータへ変換することができます.残念ながらGPSのデータ形式はメーカーや機種、アプリケーションソフトウェアによってまちまちで、現状では標準化されていないようです.今後はGPXのような XMLベースのデータ形式を採用するケースが増えてくるでしょう.
GPSBabel はC言語で書かれているオープンソースのフリーウェアで、ソースコードは勿論のこと、Windows, Linux, Mac OS X 用のバイナリ実行形式プログラムも用意されています.GPSBabel 自体はコマンドライン形式のプログラム(Windowsの”コマンドプロンプト”やMac OS X の”ターミナル”上で使うことを前提としたもの)ですが、一般のユーザでも使いこなせるようにGUIベースのフロントエンドプログラムが付属しています.コマンドラインでおまじないのような訳の分からない文字列を打ち込むのが苦手な人でも、普段使い慣れたWindowsやMac OS X のユーザインタフェースを使って操作が可能です.
GPSBabelが対応しているデータフォーマットについては、GPSBabelのページを見ていただくとして、今回は Mac OS X 用のGPSBabelをダウンロードしてインストールし、GPS-CS3 のデータをGoogle Earth のKML形式に変換する方法について説明します.
GPSBabelのインストール
GPSBabelのダウンロードページからMac OS X 用のバイナリイメージをダウンロードします.現時点での最新版はV1.3.6 で、PowerPCとインテルMacの両方で使えるユニバーサルバイナリになっています.Mac OS X 10.6 (Snow Leopard)に対応しているとは書かれていませんが、Snow Leopardでも問題なく使えるようです.
dmg形式のイメージファイルですので、ダウンロード後にダブルクリックでファイルを開くとデスクトップ上に”GPSBabel+-1.3.6″という名前のボリュームが現れ、その中に”gpsbabel” と”GPSBabel+.app” という2つのアプリケーションファイルがあります.(Finderの設定でファイルの拡張子を表示しないモードになっている場合は、 単に”GPSBabel+” としか表示されません)
この2つのアプリケーションのうち、”gpsbabel” は変換プログラムの本体(コマンドライン版)で、”GPSBabel+.app”の方が、Mac OS X 上でGUI 操作を行うための GUIフロントエンドプログラムです.GUIフロントエンドプログラムがダイアログを表示してユーザにファイルの指定やデータ形式の指定を促し、その結果に基づいて”gpsbabel”プログラムに指示を与え、変換プログラムを実行するという役割分担になっています.言うなれば、”GPSBabel+.app”がコマンドラインの面倒な指定を肩代わりしてくれると考えれば良いでしょう.Windows版のGPSBabelでもMac OS X版と全く同じ仕組みのようです.
この2つのアプリケーションをMac OS X の標準的なアプリケーションの置き場所である “アプリケーション” フォルダ ( /Applications )に2つともコピーしておいて使うのが一般的です.
尚、実行プログラムの “gpsbabel” はGUIフロントエンドプログラムの “GPSBabel+.app” のPreference設定で任意の場所に置けるようになっていますので、Mac OS X のコマンドの標準的な置き場所である “/usr/bin/” 配下に置いた方がスマートかもしれません.その方がコマンドラインプログラムとしても使い易いし、”アプリケーション” フォルダ内に殺風景な “gpsbabel”のアイコンが現れなくて良いでしょう.
起動方法は簡単で、カラフルなアイコンの”GPSBabel+.app”をダブルクリックするだけです.コマンドライン上でGPSBabelを使う場合には、”ターミナル”を開き、”gpsbabel”プログラムを直接起動して下さい.
今回は、GPS-CS3のデータ形式である NMEA-0813 から、Google Earth のKML データ形式への変換ですので、入力側のデータ形式として “NMEA-0813 sentences” を、出力側のデータ形式を”Google Earth (Keyhole) Markup Language” を指定します.
ダイアログの下の方にフィルタを指定する箇所がありますが、これはウェイポイントの数を間引いたり、指定された条件に合致したものだけ取り出すなどの中間処理を行うフィルタリング指定のためのものです.今回は使用しませんので、フィルタに興味のある方はGPSBabelのホームページのドキュメントを参考にして下さい.
後は単純に”Save File..” ボタンを押して変換プログラムを実行するだけなのですが、GPS-CS3の生データをそのまま与えるとエラーとなって変換できません.
GPS-CS3のデータをそのまま与えるとエラーになる
エラーの原因はまだ確かめてはいませんが、次に示す前処理を行うことによってこのエラーは回避することができます.
【前処理】
GPS-CS3のログデータをテキストエディタ(OSXに付属してくる”TextEdit” でも構いませんが、保存するテキストデータ形式は プレーンテキストにして下さい)で開き、ファイルの先頭にある “@Sonygps/ver1.0/wgs-84/gps-cs3.0” という1行を削除して下さい.
この処理を行うことによって、上記のエラーは解消されます.但し、GPS-CS3におまけで付いてくる”GPS ImageTracker”などの純正?ツールでは、”@Sonygps/ver1.0/wgs-84/gps-cs3.0″という文字が先頭に入っていないと不正なデータ形式とみなされて受け付けてくれなくなりますので、先頭の行を削除する場合はできるだけコピーしたログファイルに対して行うようにした方が良いでしょう.
無事変換が行われると、変換が成功したというメッセージダイアログが現れます.変換されたデータを Google Earth で表示してみて下さい.Google Earthの画面上に移動経路が表示されていることと思います.
【追記:GPS-CS3の生データをそのまま与えるとエラーとなる件について】
GPSBabel で 入力データ形式として “NMEA-0813 sentence” を指定した場合、GPSBabelは”GeoGrid Viewer“というドイツ製のソフトウェア(デバイス?)のトラックログ形式を想定しているようです.
ソースコード(ファイル:”ggv_log.c” )を覗いてみると、63行目でヘッダ情報らしきものをチェックしています.
if (strncmp(magic, “DOMGVGPS Logfile V”, 18) != 0) break;
DOMGVGPS Logfile Vxxx (xxの部分は1.0か2.5)という文字列が埋め込まれていることを想定しているようです.試しにファイルの先頭に”DOMGVGPS Logfile V1.0:” という文字列を書き込んでおくとエラーを起こさずに処理してくれました.
DOMGVGPS Logfile V1.0: $GPGGA,220323,3520.7136,N,13908.3765,E,1,04,02.2,00008.6,M,039.4,M,00,0000*47 $GPGSA,A,3,09,18,12,27,,,,,,,,,02.4,02.2,00.9*0B
【追記:GPSBabel をGPS-CS3に直接対応させる方法について】
GPSBabel のソースコードを書き換えて直接GPS-CS3のデータを読み込めるようにする方法については、下記の記事を参照して下さい.
『GPSBabelをGPS-CS3に対応させる』