exififd/gpsifd

V0.20c 16-Mar-2008

16-Mar-2007 V0.20c α新機種、新レンズ、テレコンバータ対応。
21-Dec-2007 V0.20a Adobeメタデータ形式でのαレンズ名埋め込み。
09-Dec-2007 V0.19j 抽出系コマンドで自動正立回転サポート。
25-Nov-2007 V0.19i 細かいバグ修正。
17-Nov-2007 V0.19h EOS 40D,α700に対応。
06-Apr-2006 V0.18d 最近のCanon, Kodak、RawShooterのexif 2.2に対応
02-May-2004 V0.18c exif 2.2対応
26-Apr-2004 V0.18b exif 2.2仮対応
17-Dec-2000 V0.18a LML出力改良
14-Dec-2000 LML出力時、カシバードサポート
26-Nov-2000 -XC,-XG CAPTGPS6.CSM対応。Gtrex,Navin'You,PictureGear追記
26 Mar, 2000 LMLサポートを追加
28 Feb., 2000 例を追加
13 Feb., 2000 Initial release


始めに
デジタルカメラが作成する.JPGファイルのほとんどが撮影情報を含むExifと呼ばれるタイプだと言うことは良く知られていると思います。このExif規格2.1に撮影時の位置情報を記録するためのGPS IFDの定義があります。このプログラムは主にこれを扱うためのものです。

GPS IFDがあると何が出来る?
GPS IFDが記録されていても、それを扱えるソフトウェアがなくてはあまり意味がありません。いまのところGPSIFDを扱えるソフトウェアはPro Atlas 2000とMapFan IV/Vくらいです。これはGPS IFDを作成するデジタルカメラがほとんど無いこともあると思います。デジタルカメラと地図ソフトどちらかが増えれば一気に普及しても不思議は無い便利な機能だと思うのですが..
追記:SONY GTrexが新たに加わりました。

GPS IFDをExifに埋めこむ
現在のデジタルカメラでGPSと接続して直接、GPS IFDを作るものはほとんどありません。しかし、後からExififdにGPS IFDを埋めこむことももちろん可能で前記のPro Atlas 2000,Mapfan,Navin'You+PictureGearともあとからGPSIFDを埋めこむ機能を持っています。しかし、どちらもまだまだ満足とはほど遠いところがあります。

最大の不満は自動的に一気にできないことです。

そこで、Exifに記録されている撮影時刻と別に取得したGPSログの時刻とを照らし合わせて自動的にGPSIFDを作るのはどうかと思いついてからほぼ1年、10ヶ月ほど前(Feb.2000現在)に実際に照合して位置を求めるプログラムを書いたのですが結果は私の観点からはあまり芳しくないものでした。最大の問題はデジタルカメラの時計はきちんと時刻合わせするのが難しく、数十秒も狂うと移動速度の速い車の中からの撮影では隣の町にポイントされてしまうこともあったのです。もちろん正確に合わせておくか、ずれが分かるようにしておけば良いのですが人間は忘れる動物ですしなにより面倒です。

ということで、このアイデァはお蔵入りになり、GPSを持ち歩きやすくするためのブラケット製作に傾きました。RightStuffさんの協力でブラケットが出来あがり、当たり前のようにGPS IFD付きexifが手に入るようになったのですがProAtlas 2000もMapFan Vもインプリメントの不備がありストレスが溜まります。そこで、GPSIFDをこれらのえり好みの激しいソフトウェアでも扱えるように以前、作成したプログラムにI簡易なIFDの書き換え機能を加えてみました。せっかくIFDを扱えるようになったのだからと以前の構想の通り、GPS IFDを付加できるようにしたのがexififd/gpsifdです。

現在、SONY GTrexがgpsifdと同じ時刻照合方式で地図上に写真をする機能を持っています。200m以内に複数のポイントを置けないなど精度的に物足りませんが手軽で便利なソフトです。なお、gpsifdを使ってGPS IFD付きexifにしておけばトラックログは不要です。

V0.17ではDC290 Digita Scriptで位置情報を埋め込んだexifからGPS-IFDが作成できます。ケーブル接続のXD530同様、時刻照合では望めない精度を達成すると同時に懸案だった移動方向ではない、撮影方向の記録を実現しています。

V0.18では 撮影方向(移動方向ではありません)が取得できる時、.LMLにカシバード起動用のリンクも作成するようにしました。

V0.19ではディレクトリをドロップすることでその下のExif形式ファイルのExif情報をCSV形式で一覧出力できるようになりました。CRC32も計算しているのでファイルの重複/改変チェックに使用することもできます。

αSweetDigital, α100, α700の場合、MakerNoteやそれが指している独自情報も保存されます。
EOS 40Dの場合、-GSオプションで用意されているエリアのみに書き込む動作となりMakerNoteなどの独自情報が保存されます。
Optio 43WR, FinePix F31fdは持ってますがMakerNoteや独自情報の保存には対応していません。

exififd020c.zip 288KB
exififd020d.zip 204KB


V0.20c 14-Mar-2008
 α200/300/350対応
 αマウントテレコンバータ対応
 αマウント新規レンズID追加(2470ZA,70300G)

V0.20a 21-Dec-2007
 細かいbug修正

V0.20 13-Dec-2007
 αlens名をAdobeメタデータ形式でJPGに埋め込む機能を追加。 (-cl)
 LightRoomでαレンズ名が表示され、レンズ名でフィルタ可能に。(JPGのみ)

V0.19k 09-Dec-2007
 -LcでCRC32を計算しないように変更。
 LensIDからLens名に変更するロジックをID+焦点距離範囲+開放F値範囲に変更。
 Minolta/SONYのLensIDも.CSV出力
 DT55-200のレンズIDに対応。

V0.19j 09-Dec-2007
 抽出系のコマンド(プライマリ、サムネイル、独自サムネイル)でロスレス自動回転をサポート。
 JIGのjpegtran呼び出し。ついでにオプティマイズも。
  α700の場合、ファイルのあるディレクトリにexififdとjpegtranをコピーして
  exififdをexififd-xmにリネームし、ダブルクリックで実行するとthumbディレ
  クトリに正立した1616x1080の独自サムネイルができる。画面で見るには十分で
  400K-1M程度と小さいため持ち運びや人に渡すのに便利。

V0.19i 25-Nov-2007
 αレンズのID追加に対応。(但しDT55-200は不明のまま)
 参照されていない領域リスト(-D2,-D3オプション)が正しくないなど細かいバグの修正。

V0.19h 16-Nov-2007
LST出力のファイル名に元の拡張子も付加。
EOS 40Dで-GSオプション時にもディレクトリを作成してコピーするよう変更。
 α700での-Gオプションに対応。(MakerNoteの保存)
 α700での-XM,-XTオプションに対応。
 α700で追加されたタグにわかる範囲で対応。
 ちょっと遅くなる場合があったので最適化。

V0.19g 16-Nov-2007
Canon EOS 40Dに埋め込むexifタグをExif 2.0 -> 2.2のセットに。
-GSオプションをEOS 40D以外のJPEGに適用した場合、不正アクセスで落ちていた。
 MakerNoteを壊されたα700のJPGのリストが途中で切れていた。

V0.19f 15-Nov-2007
 Canon EOS 40Dで正しく動作しない。
  EOS 40DのJPGは想定外の中身が空のGPSIFDを持っており、正しく動作しなかった。
  空のGPSIFDを埋めるオプション、-GSを新設。他の部分をいじらないのでMakerNoteが
  壊れないメリットあり。
 SONY α700で正しく動作しない。
  とりあえず修正。
  タグ情報の追加とMakerNoteの保存(GPSIFD追加時のMakerNote保存はこれから)

V0.19e 19-Jun-2006
 Minolta/SONY MakeNoteタグのサポート範囲拡大

V0.19d 14-Jun-2006
 .ARW仮対応
 後処理アプリケーションでおかしくなったMakeNoteに気づいた範囲で対応。
 DROとSSSタグに仮対応。

V0.19c 07-Jun-2006
 SONY α100のmakerNote,独自Thumbnailに仮対応。
 (GPSデータを付加しても整合性が保たれる、リスト可能、-XM有効)

V0.19b 26-May-2006
 Minolta MakerNoteのLensIDからレンズ名称を出力。(Minolta製のみ総て対応)
 Minolta MakerNote、CSV出力関係のbugをいろいろと修正。

V0.19a 20-May-2006
 ICC Profile TAG
 Minolta X20/Z5/A2/A200/αSD/α7DのmakerNote,独自Thumbnailに対応。
 (GPSデータを付加しても整合性が保たれる)
 Minoltaの独自Thumbnail取り出しオプション、-XM追加。
 その他、細かいbugの修正。

V0.19alpha 20-Apr-2006
 -LCオプション Tiff, exif TAG情報をまとめてCSV出力(まだベータ版レベルの機能です)
 ディレクトリをDrop(指定)すると-LCと同じ動作。
  ファイルをDropした場合、パラメータ無しの場合の動作は従来通り。
 -LC指定時、サブディレクトリも対象に。
  出力はディレクトリ名.csvになります。但し、ファイル名に使えない"D:\"などは適当に変換。
 -LC指定時、CRC32も計算。重複ファイルチェックなどに利用できます。
 終了時にPauseするよう変更。
 強制Abortしていたところを数箇所、リカバリして継続するよう修正。
 その他、ドライブ丸ごと全ファイルチェックで発覚した予想外の構造のファイル、異常のあるファイルに対する脆弱さの修正。
 まだあると思います。遭遇した方はご連絡ください。
 -LC指定時は拡張子に関係なく総当りしTif,Exif,MRWと見なせるものは総て対象になります。
 懐かしのKodak DC25の.K25などもちゃんと見分けます。

 primaryイメージ抽出時、サムネイルイメージへのポインタが残るbugの修正。
 primaryイメージがexifでもtiffでも無いとき(αSweetDigitalの.MRW)、エラーを出さずに終了するbugの修正。
 αSweetDigitalの.MRWからもサムネイル抽出可能に。但し決め打ちなので潜在的な問題があるかも..。
 ファイル名重複時、_99まで行く筈のrenameの諦めが早すぎるbugの修正。

 ToDo:CSVに出力する項目のユーザカスタマイズ。

V0.18e 14-Apr-2006
 Picasaなどの作成するAPPdのあるJPEGに対応。但しAPPdは保存されません。
 ミノルタRAWフォーマット,MRWのexif情報に対応。A200ではthumb抽出も可能。
 TimeZone設定オプション -TZn新設。
 exif情報をまとめてCSV出力-LC (まだベータ版レベルの機能です)
 コマンドライン、オプション関連のbug修正

0.18d
 一部のデジタルカメラが作成するJPEGを正しく扱えないBugの修正。
 RawShooterの作成するAPP0のあるJPEGに対応。但しAPP0は保存されません。

0.18c
 exif2.2で追加/拡張されたタグに対応しました。
 exif2.2のファイルに対して不正なGPSIfd, InterOperabilityIFDを作成してしまう場合がった。
 exif2.2で加わったGPSDateStampがある場合、時間情報として使用するようにした。
 gpsifd追加時、exif2.2で加わったGPSDateStampと、GPSTimeStampを加える様にした。


exififd/gpsifd/gpsmpsの使用例

Pro Atlas 2000にgpsifdでGPS IFDを付加したexifファイルをドロップした例

MapFan V付属のデイジーコラージュLite3 for MapFanを使って表示した例
XD530+GPSで作成したGPS IFD付exifからgpsmpsで作成したMapServerScriptをダブルクリックしてPro Atlas 2000で表示した例。
画像番号をダブルクリックすると画像を表示します。

上と同じMPSファイルをSONYのNavin'You4.0で処理した例。
右の写真は手動でDropしたものです。
LMLを使ってKashmirで表示した例。
ダブルクリックで画像ファイルが表示されます。
(これはただの画像なのでクリックしても表示されません)
ドラッグして位置を調整することも可能です。
CSVを使ってKashmirでWayPointとして表示させた例。

使い方

工事中..アーカイブに収められているexififd.txtか下の関連リンク、掲示板を見てください。

使用できるデータ
1) 普通のexif形式データ。 トラックデータと時刻照合してGPS-IFDの作成、LML,MPS,TRK,CSV出力が出来ます。
2) 既にGPS-IFDのあるexif。タグの書き換え/追加/変更、LML,MPS,TRK,CSV出力が出来ます。
3) CAPTGPS6.CSMでユーザーエリアに位置情報を書き込んだexif。GPS-IFDの作成、LML,MPS,TRK,CSV出力が出来ます。
4) CAPTGPS6.CSMで位置情報を写しこんだexif。GPS-IFDの作成、LML,MPS,TRK,CSV出力が出来ます。


関連リンク
GPS、デジカメ&電子地図を使って思い出整理 
exififd/gpsifdのMPS(マップサーバースクリプト)部分を書いて下さった佐藤さんのページ。

[Home]|[GPSとH8(電子工作)の掲示板]