WS007SHをGPSロガーにして写真に位置情報を追加
GPSが付いていない普通のデジカメ画像に別途取得したGPSのログから時刻データをキーに位置情報(ジオタグ)を紐づけて画像にジオタグ(Exif)を付与する一連の作業ログ。
これをやるとGoogleMapとかで写真を取った場所が一目瞭然になって非常に楽しいのです。
当然のことですがカメラの時刻設定は正確に。
材料
ハードウェア
- W-ZERO3(WS007SH, Windows Mobile 5)
- BU-353(GPSモジュール本体)
- USBホストケーブル(BU-353をW-ZERO3に接続するための変換ケーブル)
バッテリーが一時間ちょっとしか持たないので外部バッテリーを併用しています(以下のようなやつ)。
My Battery Pro n DCカプラー for NB-2LHセット
以上でケーブルが大変にょろにょろしています。W-ZERO3で何かをする、ということが目的でない方は以下のような便利なものがあったりします。スマートだし怪しげなアンテナも出てなくて大変よい。欲しい。5000円くらいなら。
Bluetooth GPSロガー HOLUX M-241
ソニー GPSユニットキット GPS-CS1KSP
ロケーションプラスA1 A1ーWH
手順
[RelocateLMDll]おまじない
適当なフォルダにコピーして使う。
GPSモジュールを接続していない状態でRelocateLMDllを起動する。ライトメールが再起動されるのを待つ。確認ダイアログ等出ないので
W-ZERO3のライトメールのdllがRS232のアドレスを喰っててうまいこと232usbのdllが配置されないバグへの対処。ライトメールを塩梅よう再配置する。
[232usb]GPSモジュールをW-ZERO3に接続
232usbは適当な場所にコピーして使う。
起動して「New」ボタン押下。「Connected now」ダイアログが出たらUSBモジュールを接続。しばらく待つ。「OK」ボタンを押下してなにやら表示が更新されていたら認識成功。後の操作でうまいこと認識されていないように感じたら、「Del」で既存のデータを削除後同様の操作を行ってみる。
[VisualGPSce]GPSロガーソフト上で確認
ここでGPSモジュールがうまいこと認識されていなかったら、アラート「Could not intialize communication buffer size」が表示される。そのときは最初からやり直してみる。WARNINGで「運転中は気をつけて」旨のメッセージが出るので「Agree」押下。
「Connect」メニューで「Serial Port」を押下、「Port」から先ほど認識されたであろうポートを選択(COM1はビルトインのシリアルポートになっているはずなので大抵COM2以降)。
[VisualGPSce]Logging開始
メニュー「Log」→「Start」でログ名称、保管場所(SDメモリがベター)を指定後「保存」でログ開始。
[VisualGPSce]Logging終了
メニュー「Log」→「Stop」でログ終了。
PCにデータを転送
できたログファイルをPCに転送。ここからはPC上での処理。
[GPSBabel]NMEA 0183からGPX XML形式に変換
GPSBabelのGPSBabelGUI.exeを起動しGUI操作画面を起動する(コマンドプロンプトの場合はgpsbabel.exe)。
[Input]→[Format]で「NMEA 0183 sentences」を選択。
[File]で変換元のログファイルを指定。
[Output]→[Format]で「GPX XML」を選択。
[File]で出力ファイルを指定。
[let's go]ボタンを押下。下のエディットボックスに実行コマンドが吐き出されるので、バッチファイル等で再利用できる。
[GMM2]画像にExif位置情報書き込み
GMM2を起動。変換後の「GPX XML」形式のファイルをD&D。[GPSトラック]タブに表示される「ポイント数」「開始終了日時」をチェック。うまいこと読み込めていたらそれらしいデータが表示されているはず。
画像ファイルをD&D。「ポイント編集」タブに読み込んだ写真の情報が表示される。自動的にGPSログの時間に一番近接した位置情報が写真の位置情報として表示される。この時点で画像のExifタグには位置情報は書き込まれていない。
写真を個別に選択して右クリック→[画像にジオタグをつけて保存]するか、メニュー[ツール]→[ジオタグ一括追加]を押下してファイルに位置情報書き込み。