メニューをスキップして本文へ


ここから本文

GPS-CS1KのGPSログからEXIF情報を画像に書き込むスクリプトgpslog2exif

  • 2007年1月 3日(水) 09:35 JST
  • 投稿者:
    white
  • 閲覧件数
    2,424
Linux技術ノウハウ ソニーのGPSユニットである、GPS-CS1Kを購入しました。
スイッチを入れるだけで、延々と位置情報を記録してくれます。
デジカメが画像に書き出すEXIF情報の時刻とGPSのログを照合して画像のEXIFにGPS位置情報を記録し、EXIFのGPS情報に対応した地図ツールで画像を地図上に配置してみるというweb2.0的?使いかたもできるわけです。

さらにGPS-CS1KはUSBストレージに対応しているので、Linuxに接続するとマウントでき、ログファイルを読み出すことができます(MAC OS Xでは何故か認識されない)。さらに、ログ形式はNMEA-0183という汎用のテキストフォーマットで記録されています。ソニーらしくない(笑)標準化対応した製品です。

でも、肝心のGPS情報を読み出して画像に書き込むソフトである、付属のGPS Image TrackerはWindowsソフトです。
私のメインの環境はLinuxなので、Linuxでできるようにしたい、ということで、perlのスクリプトgpslog2exifを作成しました。

続きは本文で。
perlモジュールの準備

まず、以下のperlモジュールが必要になりますのでインストールしてください。
  • ExifTool
  • DateTime
インストールはCPANから可能ですので、rootで
perl -MCPAN -e shell
でCPANのシェルを起動した後、「install ExifTool」「install DateTime」としてください。

ダウンロード

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

GPS-CS1Kのログの準備

GPS-CS1Kのログをリネームせずに一箇所のフォルダにまとめてコピーします。
gpslog2exifはこのフォルダにあるGPS-CS1Kのログから、最適なものを自動的に選択します。

画像の準備

EXIF情報の含まれた画像を用意します。念のためオリジナルをバックアップしておいてください。

実行

gpslog2exif.pl -d <ログファイル> <画像ファイル>...
と実行すると、画像の撮影日時からGPSログを検索し、画像が撮影される直前のGPS情報を記録します。

画像ファイルは複数指定可能です。

ログファイルのディレクトリは環境変数GPSLOGDIRに設定可能ですが、「-d」オプションの指定が優先されます。

GPS情報が画像の撮影日時より60秒以上(「-t」オプションで変更可)差がある場合は、そのGPS情報を画像に記録するかどうか聞いてきますので、y/nで答えてください。

既にGPS情報が記録されている画像に記録しようとした場合に、記録するかどうか聞いてきますので、y/nで答えてください。

最後にEXIF情報をファイルに書き込むかどうか聞いてきますので、y/nで答えてください。「-f」をつければ聞かずに書き込みます。


注意

画像の日付は日本時間を前提としていますので、カメラの時間は日本時間にあわせてください。(他のタイムゾーンには容易に対応できると思います)

あまり細かいエラー処理をしていないので、意図しない情報を画像に書き込む場合があります。

その他、利用は自己責任でお願いします。画像はあらかじめバックアップをとっておいてください。

トラックバック

このエントリのトラックバックURL:
http://www.vx-xv.com/geeklog/trackback.php?id=2007010309350156

  • GPS-CS1KのGPSログからEXIF情報を画像に書き込むスクリプトgpslog2exif
  • 0件のコメント
  • アカウント登録
表示形式
コメント投稿

コメントは投稿者の責任においてなされるものであり、サイト管理者は責任を負いません。

サブメニュー1をスキップしてサブメニュー2へ

記事カテゴリ

楽天

ログイン

ログイン

ここからサブメニュー2

サブメニュー2をスキップしてフッタへ


ここからフッタ