2012年10月

ITM 形式(GPS Photo Tagger 他)のフォーマット仕様解析

【目次】

【はじめに】

KMZ 形式(Google Earth 形式)で保存されている GPS 軌跡データを、ITM 形式(GPS Photo Tagger 他の形式)に変換するツール、kmz2itm を作成する過程で、ITM 形式について調査を行ったので、その内容を整理してまとめておく。

※内容は不完全で、不明な点も多いので、間違いや補足ございましたら、メールやコメント等でご連絡いただけると幸いです。

【ITM 形式を用いているアプリケーション】

ITM 形式はいくつかのアプリケーションで使われている。どのアプリケーションも画面が似ており、iTravel-Tech 社の OEM と思われる。現時点で、ITM 形式を使っていることが確認できているアプリケーションは以下。アプリケーションが対応している GPS 機器も併記しておく。
  • GPSPhotoTaggerGPS Photo Tagger
    • CanMore Electronics……GT-730FL-S、GP-101
    • Transystem……747Pro、747ProS、PhotoMate887、860E、TripMate850、TripMate852

  • ezTourezTour
    • Holux……M-241

  • ATLASTOURATLASTOUR
    • ユピテル……ASG-CM11、ASG-1、ASG-2、AL20

ITM 形式の調査は、GPS Photo Tagger(Ver 1.2.4)で取り込んだ GT-730FS-S の軌跡において行っている。GPS Photo Tagger で保存した ITM ファイルを、他のアプリケーションからも読み込めたので、基本的には同じフォーマットと思われるが、一部のデータが異なる可能性はある。

【ITM 形式の概要】

ITM 形式は、ファイル形式としては ZIP 形式である。拡張子を .zip に変更して解凍すると、以下の内容が得られる。
  • attachfile(フォルダ)
  • icon(フォルダ)
  • imagegrid(フォルダ)
  • ituser.itx
  • ituser.poi
このうち、軌跡データが保存されているのは ituser.poi である。

【ituser.poi の概要】

ituser.poi は SQLite3 のデータベースファイルである。PupSQLiteSQLite Database Browser などの SQLite ツールで内容を確認することができる。

ituser.poi には以下のテーブル(全 20 個)が含まれている。
  • IT_TGVLib……目次のようなテーブル。他のテーブルに格納されているデータの情報が格納されている。
  • GPSLog……測定点データ。測定時刻と、速度を保持している。
  • WP……測定点データ。緯度・経度・高度を保持すると共に、測定点を軌跡として繋げるための情報も保持している。
  • Line……軌跡データ。軌跡名、開始地点、終了地点を保持している。
  • VStyle……軌跡線のスタイル情報。線の太さ、色など。
  • VSTag……軌跡線に関するデータと思われるが、詳細不明。
  • CP……詳細不明。
  • FileD……詳細不明。
  • FTag……詳細不明。
  • Map……詳細不明。
  • NTag……詳細不明。
  • POI……詳細不明。
  • PropDouble……詳細不明。
  • PropInt……詳細不明。
  • PropText……詳細不明。
  • TagD……詳細不明。
  • TypeD……詳細不明。
  • Val……詳細不明。
  • ValD……詳細不明。
  • VP……詳細不明。

【IT_TGVLib】

IT_TGVLibIT_TGVLib は、他のテーブルに格納されているデータについての情報を保持している。目次のようなテーブル。

全部で 20 行のデータがあり、各行が 1 つずつテーブルに対応している。

列は以下。
  • fUserType……連番。
  • fDBType……不明。
  • fObjNo……テーブルに格納されているレコードの数(行数)。
  • fObjFreeNo……テーブルに格納されているレコードのうち、削除フラグが付いているレコードの数。GPS Photo Tagger は、基本的にデータを削除せず、代わりに、削除フラグを付けて削除したことにしている。例えば、右の画面の 11 行目では、fObjNo が 10777、fObjFreeNo が 10400 なので、WP テーブルの有効レコード数は差し引き 377 ということになる。
  • fTypeName……対象となるテーブル名。

【GPSLog】

測定点 1 つ 1 つに関する情報を保持するテーブルその 1。各測定点の測定時刻と、測定時の速度を保持している。
  • fID……連番。
  • fZero……有効なレコードの場合は 0、無効なレコードの場合は 1。GPS Photo Tagger では、データを削除する際、レコードを削除するのではなく、fZero に 1 を立てて削除したことにしている。
  • fGPSTime1、fGPSTime2……測定時の時刻。具体的なフォーマットは不明。
  • fGPSSpeed……測定時の速度 [km/h]。
  • fGSensorX、fGSensorY、fGSensorZ……名前からして加速度センサーの値を保持するためのフィールドと思われるが、GT-730FL-S による測定においてはすべて 0 となっている。

【WP】

測定点 1 つ 1 つに関する情報を保持するテーブルその 2。緯度・経度・高度を保持すると共に、測定点を軌跡として繋げるための情報も保持している。テーブル名は Way Point(軌跡)の略と思われる。
  • fID、fZero は GPSLog と同様。
  • fParentID……軌跡線番号(Line テーブルの fID)。fParentID が同じ軌跡同士で、1 つの軌跡線を形成している。
  • fNextID……軌跡上で次の測定点が何番の fID かを示す。通常は fID+1。軌跡上、最後の点の場合は、fNextID が 0 となる。
  • fGPSLogID……対応する GPSLog テーブルのデータを示す。通常は fID と等しい。
  • fMapID……マップ番号(Map テーブルの fID)。通常は 1。
  • fPosX、fPosY……不明。通常 -1。
  • fLongitude、fLatitude、fAltitude……経度、緯度、高度。
  • fOrder……不明。通常 0。
  • fTemprature……名前からして温度と思われるが、GT-730FL-S による測定においてはすべて 0 となっている。
  • fMBar、fBPM、fRPM……不明。通常 0。


【Line】

軌跡線データ。軌跡名、開始地点、終了地点を保持している。

  • fID、fZero、fMapID はこれまでと同様。
  • fName……GPS Photo Tagger で表示される軌跡名。
  • fTypeID……不明。通常 2。
  • fIsGroup、fParentID、fVIID、fStartID、fEndID……不明。通常 0。
  • f1stWPID……軌跡の開始点を示す。WP テーブルの fID。
  • fLstWPID……軌跡の終了点を示す。WP テーブルの fID。


【VStyle】

軌跡線のスタイル情報。線の太さ、色などを保持している。

  • fID、fZero はこれまでと同様。
  • fName……スタイルの名前と思われるが、どこにも表示されない模様。
  • fVSDefineType……不明。通常 11。
  • fVSStyleType、fVSPattern……不明。通常 0。
  • fVSWidth……線の太さ。
  • fVSHeight……不明。通常 0。
  • fVSFColor、fVSBColor、fVSOColor……線の色を指定していると思われるが、具体的なフォーマットは不明。
  • fVSFontSize……不明。通常 0。
  • fVSFontName、fVSPatternName、fVSIconName……不明。通常 NULL。


【VSTag】

軌跡線に関するデータと思われる。

  • fID、fZero はこれまでと同様。
  • fStartType……不明。通常 11。
  • fStartID……不明。通常 fID と等しい。
  • fEndType……不明。通常 18。
  • fEndID……不明。通常 fID と等しい。


【PropInt】

存在意義が不明だが、軌跡線の測定開始時刻を保持しているようだ。

2 レコードが 1 セットとなっており(従って、レコード数は軌跡線の数×2 となる)、1 レコード目が GPSLog の fGPSTime1、2 レコード目が GPSLog の fGPSTime2 を保持している。
  • fID、fZero はこれまでと同様。
  • fName……1 レコード目が 't1'、2 レコード目が 't2'。
  • fObjType……不明。通常 11。
  • fObjID……Line テーブルの fID。1 レコード目の fObjID と 2 レコード目の fObjID は等しい。
  • fUserFlag……不明。通常 0。
  • fValue……1 レコード目が fGPSTime1、2 レコード目が fGPSTime2。

【軌跡線取得方法】

軌跡線を取得するには、以下の流れでデータを検索するとよい。
  • Line テーブルのレコードのうち、fZero が 0 のレコードを取得
  • そのレコードの f1stWPID を取得
  • WP テーブルのレコードのうち、fID が f1stWPID と等しいレコードを取得→軌跡開始点
  • そのレコードの fGPSLogID を取得
  • GPSLog テーブルのレコードのうち、fID が fGPSLogID と等しいレコードを取得→軌跡開始点の追加情報
  • WP テーブルのレコードから fNextID を取得
  • WP テーブルのレコードのうち、fID が fNextID と等しいレコードを取得→次の測定点
  • このように、次の測定点を次々とたどっていく
  • fNextID が 0 になったら軌跡終了

≪GPS 関連の記事一覧≫








KMZ→ITM ファイル変換サイトを公開

KMZ 形式(Google Earth 形式)で保存されている GPS 軌跡データを、ITM 形式(GPS Photo Tagger/ezTour 形式)に変換するウェブサイトを公開。

GPS Photo Tagger は、GPS 軌跡データを KMZ にエクスポートできるが、逆に、KMZ からのインポートができないので、作成した。

単純な変換以外にも、複数ファイルの結合(ITM+ITM→ITM も可能)や、ITM ファイルの最適化(ファイルサイズ縮小)も行える。

GPS ロガー「V-990」の使い方まとめ

GPS ロガーのなかでも、ボイスメモなど珍しい機能を搭載している機種「V-990」(Victory Technology の COLUMBUS ブランド)を購入したので、使い方をまとめておく。

GPS ロガーとは、その名の通り、GPS で測定した現在位置を刻々と記録するアイテム。記録した位置データをパソコンに転送し、地図上にプロットしたり、写真と結びつけたり、という使い方が一般的。

V-990 は比較的新しい機種で、高性能の GPS チップ MTK II(66 チャンネル)を採用し、22 時間以上の稼働が可能とハイスペック。さらに、ボイスメモ(音声録音)、超長時間稼働モード(スパイトラッキングモード)など独自の機能を備えている。

まだ買ったばかりなので、すべての機能は使っていないが、そこは追々。


目次


現在位置測定
  1. 購入したらまず、充電する。
    • 付属の USB ケーブルで PC と V-990 をつなぐと、V-990 の左上が赤く光って充電される。
    • 3.5 時間程度で満充電になるとのこと。
    • 購入直後でもある程度充電されているようだが、自分でも充電した方が確実。
  2. microSD カードを V-990 に差し込む。
    • V-990 には内蔵メモリは無く、GPS データはすべて microSD カードに記録するため、microSD カードが必須。
    • 4GB までの microSD に対応している。
    • FAT でフォーマットされている必要がある(FAT32 や NTFS は NG)。
  3. V-990_LEDV-990 の電源を入れると、測定開始。
    • 本体上部の小さなボタンが電源ボタンで、これを長押しする。
    • カメラみたいなマークの LED(GPS の状態表示 LED)が緑に常時点灯している状態では、GPS 衛星を捕捉していない。
    • GPS 衛星を捕捉すると、ピピッという音とともに、GPS LED が 1 秒ごとに点滅するようになる(GPS 捕捉までは通常 35 秒程度を要する)。
    • microSD を正常に認識していると、ペンマークの LED(microSD の状態表示 LED)が橙色に常時点灯する。GPS 衛星捕捉後は、データ記録の際、たまに点滅する。microSD を入れ忘れた場合、microSD LED は、電源投入直後にしばらく点滅した後、消えてしまう。
    • GPS データの記録は 1 秒ごと(変更不可)。
  4. 電源を切れば測定終了。
    • 再度、電源ボタンを長押しする。

ソフトのインストール
  1. Java ランタイム(JRE)をインストールする。
    • JRE は、次の Time Album を動かすために必要。
    • 付属 CD の
      X:\Utility\Time Album\Step1. Install The JAVA Virtual Machine\For Windows
      にある jre-7u5-windows-i586.exe をダブルクリックする(32 ビット版 Windows の場合)。
    • Oracle のホームページから最新の JRE をダウンロード&インストールしても良い。
  2. Time Album をインストールする。
    • Time Album は、V-990 本体の設定を変更したり、microSD に記録されているデータ(CSV 形式)を各種フォーマット(Google Earth の kmz など)に変換したりするためのソフト。
    • 付属 CD の
      X:\Utility\Time Album\Step2. Run The TimeAlbum\For Windows
      にある TimeAlbum_V1.9.1_ENG.exe(Windows の場合)をハードディスクにコピーするだけで良い(コピーせず CD から直接起動することも可能)。
  3. Google Earth をインストールする。
    • 付属 CD の
      X:\Utility\Google Earth\For PC
      にある GoogleEarthSetup.exe をダブルクリックする(Windows の場合)。
    • Google のホームページから最新の Google Earth をダウンロード&インストールしても良い。

データの PC への取り込み・閲覧
  1. V-990 の電源を切り、microSD を V-990 から取り出して、PC のカードリーダーに差し込む。
  2. Time Album を起動する。
  3. TimeAlbumのTimeZoneTime Album 初回起動時は、Time Album の「Time Zone」ボタンをクリックし、タイムゾーンを GMT+09(日本の時刻)に設定する。
  4. TimeAlbumでCSVを読み込んだ状態GPS データ(CSV 形式)を読み込む。
    • Time Album の「Import」ボタンをクリックし、microSD の中にある CSV ファイルを指定する。
    • または、エクスプローラーから、microSD の中にある CSV ファイルを、Time Album のウィンドウへドラッグ&ドロップする。
    • CSV ファイルは GPS 測定した日付で名前付けされており、[年][月][日][連番(00 から始まる)].CSV というファイル名になる。例えば、2012 年 10 月 07 日の 1 回目の測定であれば、12100700.CSV となる。
  5. TimeAlbumのExport形式選択Google Earth 形式に変換する
    • Time Album の「Export」ボタンをクリックする。
    • 「KMZ」ボタンをクリックする。
    • ファイル名を入力して KMZ 形式(Google Earth 形式)で保存する。
    • 私の環境だと、ファイル名に日本語を入れるとうまく動かなかった。半角英数のみのファイル名にしている。
  6. V990高尾山軌跡Google Earth でデータを閲覧する。
    • 保存した KMZ ファイルをダブルクリックすると、Google Earth が起動し、V-990 で測定した軌跡が表示される。
  7. microSD を V-990 に戻し忘れないように注意。

V-990 の設定変更

V-990 の設定変更は、microSD に設定ファイルを書き込むことによって行う。
  1. V-990 の電源を切り、microSD を V-990 から取り出して、PC のカードリーダーに差し込む。
  2. Time Album を起動する。
  3. TimeAlbumのDeviceSettings「Device Settings」ボタンをクリックすると、設定画面が表示される。
    • Tracking modes……GPS データ記録時に保存する項目。通常は Standard mode で良い。より多くの項目を保存したい場合は Professional mode にする。
    • Over-speed tag……一定以上のスピードで移動した場合に警告音を出したい場合(高速道路でのスピード出し過ぎなど)は、ここにチェックを入れ、しきい値を入力する。km/h ではなく mil/h(時速○○マイル)であることに注意。
    • Spy mode timer……スパイトラッキングモード(超長時間稼働モード)での測定間隔を指定する(分単位)。10-100 と書いてあるので 10 分以上でないと設定できなそうだが、実際には、1 分以上で指定可能。
    • 設定を終えたら「OK」ボタンをクリックする。

  4. 設定ファイルを保存する。
    • 設定画面で「OK」ボタンをクリックする。
    • TimeAlbumの設定ファイル保存警告注意書きのダイアログが表示されるので「OK」ボタンをクリックする。
    • 設定ファイルの保存先を選ぶダイアログで、microSD カードのドライブを指定する。
    • TimeAlbumのSuccessメッセージが表示されるので「OK」ボタンをクリックする。
    • TimeAlbumのCONFIGtxtmicroSD に「CONFIG.txt」というファイル名で設定が保存される。
    • 通常モードの測定データの記録間隔(1 秒固定)や、動作音の On/Off は設定できない。
  5. microSD を V-990 に戻すと、次回測定時から、設定が反映される。

その他

microSD を V-990 本体から出し入れする際は、必ず電源を切ろう。電源を入れたまま出し入れすると、最悪壊れる可能性があるとのこと。

せっかく USB で PC と繋げられるのなら、USB マスストレージで microSD の中身を読み出せれば良いのに、と思うのだが、そうはなっていない。いちいち microSD を本体から出し入れするのは面倒くさい。

他に、V-990 の難点は、ストラップを通しづらいこと。普通、ストラップ穴は緩やかにカーブしていて、ストラップを押し込めば反対側の穴から出てくるが、V-990 はストラップ穴がカーブしていない。どころか、逆段差があってピンセット等でつまんで引っ張り出さないと無理。

逆に、利点としては、格安 GPS ロガーの GT-730FL-S よりも電波感度が高い(電波を拾いやすい)。まだあまり使っていないが、この違いは分かりやすい。




≪GPS 軌跡(実際の動作結果)の記事≫
※その他の記事については、一覧を参照。

V-990外観≪V-990 の主な仕様≫
  • サイズ:74(縦)×43(横)×9.9(高さ) [mm]
    (QUO カードより 1 周り小さい)
  • 重量:55g
  • 稼働時間
    • 通常モード:公称 22~24 時間
    • スパイトラッキングモード:公称 15~30 日
  • 記録間隔
    • 通常モード:1 秒(固定)
    • スパイトラッキングモード:1~100 分
  • 記録可能データ数:4GB microSD の場合 5,000 万件
    (1 秒に 1 回の記録で約 580 日分)
  • GPS チップ:MTK II(66 チャンネル)
※写真について:ストラップは付属品とは異なる。USB メモリと QUO カードは大きさ比較用。

≪更新履歴≫
  • 2012/10/09 主な仕様を記述。



月別アーカイブ
記事検索
最新コメント
  • ライブドアブログ