【GPSロガー】GPX形式をITM形式に変換するウェブアプリを作りました。

WS2013-04-25_03_40_55

GPX2ITM コンバータ (GPX TO ITM Converter)

私は、HOLUXのM-241というGPSロガーを使っています。GPSを利用してハイキングや旅行などで、自分が通った軌跡を記録することができる便利なツールです。

HOLUX ワイヤレスGPSロガー M-241

こんなヤツです。

関連記事:Wireless GPS Logger M-241【GPSロガー】 – KUMA TYPE

WS2013-04-25_03_48_43
そして、M-241にはezTourというログデータの管理ソフトが付属しています。GPSロガーからGPSログデータを読みだして、地図上に軌跡を表示したり、GPSのログと写真の撮影日付とマッチングして画像データにジオタグを埋め込んだりと色々できるソフトです。ezTourのプロジェクトファイルはITMという拡張子のファイルです。

HOLUX ezTour for Logger v2.1にアップデートした。 – KUMA TYPE

Screenshot_2013-04-25-03-53-01
そして、androidには地図ロイドという便利な地図ソフトが有ります。Googleマップやヤフー地図や国土地理院の地形図などを切り替えて表示出来ます。また、エディット機能で予めルートを作成して、それを見ながら移動ししたり、GPSで自分の位置を確認したりできます。

地図ロイド – 地図ロイド for Android

Screenshot_2013-04-25-03-53-12
私が利用している地図系アプリ。

Screenshot_2013-04-25-03-53-29
そして、山旅ロガーというアプリが有ります。これは、GPSロガーの機能をするアプリです。地図ロイドと連携する機能があり、地図ロイド上に軌跡を表示することができます。有料版の山旅ロガーGOLDを利用すると、地図ロイド上にリアルタイムに軌跡を表示することが出来て超便利です。どうせ使うなら山旅ロガーGOLDをおすめします。

Screenshot_2013-04-25-03-55-24
上のように、地図ロイド上に、ルートを書いたり、山旅ロガーを使えば記録した軌跡を地図ロイド上に表示出来ます。

 

で、本題です。

M-241はそんなに大きなものでもないのですが、カメラのフィルムをちょっとだけ長くした感じなのですが、それでもちょっとした時にいちいち持ち歩くのはやっぱり億劫になります。特に最近はDMC-TZ30も持ち歩いたりするので、荷物は少ないほうがいいわけです。

なので本格的にハイキングする時以外は、M-241を利用しないで、山旅ロガーで済ませたいと考えたわけです。

ただひとつ問題としては、山旅ロガーを利用するにしても、便利なezTourは利用したいと思ったわけです。しかし、ezTourはITM形式以外のデータを読み込めないのです。

しかし、山旅ロガーはITM形式でログを出力できないわけです。GPX形式とKML形式なら出力できるので、GPXとかKMLで出力してみたわけです。

「どうせきっと、ITM形式に変換できるツールがあるはず!」そんな風に思っていた時期が俺にもありました。

ないんだなこれがw。

ITMからコンバートするツールは、いくつか見かけましたが、ITMに変換するツールが無いんだなこれが。

なので、必要に迫られて作りました。

(作ってみて、コンバータがない理由がわかりました、結構色々大変でした。)

 

使い方は簡単です。

GPX2ITM コンバータ (GPX TO ITM Converter)

上のサイトにアクセスして、GPX形式のファイルをアップロードすると変換されて、「Download」というリンクが表示されるのでそれをクリックするとITM形式でダウンロードできます。

若干あやしいところもありますが、ほぼ大丈夫なはずです。

試しにヤマレコからお借りしたGPXデータで試してみます。

ヤマレコ – 登山やハイキング、クライミングなどの記録を共有できる、登山の総合コミュニティサイト

雨飾山(荒菅沢で敗退) [山行記録] – ヤマレコ

こちらのページにある「track-287735.gpx」で試してみます。

WS2013-04-25_04_26_11
ぐふぅ。成功です。

そういうわけで良かったら使ってみたください。

バグ報告やご要望などもお待ちしております。


追記:2013.05.09

2013.05.08に以下の件に付いて対応しました。

  • 2013.05.08 巨大データでout of memoryになる問題を緩和。XMLをモジュールでメモリ上に展開するので物理的な限界は有る。
  • 2013.05.08 Google My Tracks、nüvi 205W Plus等で生成された、trk内にtrksegが複数存在するタイプのデータに対応。地点データには未対応。
  • 2013.05.08 アップロードしたGPXファイルが破損している場合、エラーを表示するようにした。

具体的には、山旅ロガーとezTourで生成したGPXファイルの中では見たことが無かったのですが、他のソフトで、一つの<trk></trk>タグの中に<trkseg></trkseg>タグが複数存在する場合が、有るようなので対応というのが大きな変更点です。


追記:2013.05.12

  • GPXファイルのspeedエレメントは「メートル/秒」で有ることが判明したので、時速に変換してから登録するようにした。
  • speedエレメントがない場合、座標と時刻から自力で速度を算出するように改良した。


追記:2013.05.18

  • スピードを自力で算出した場合に、外れ値を計算し外れ値だった場合は、前後のレコードまたは平均値に置き換えるようにした。

画面キャプチャ2
具体的には上記のグラフに現れる様に、算出した速度には突然突出した値があらわれることがあります。上記は山旅ロガーで取得したログをITM形式に変換しグラフ表示しているものですが、1秒間隔の超精密で測定している場合、時たま詰まった感じのログが生成されることがあります。

2163 2013-05-17T06:32:14.000Z 32.697086 130.5662 13 spd=8.20202343855882 range=16.4040468771176 td=2
2164 2013-05-17T06:32:18.000Z 32.69694 130.56613 13 spd=4.36780179475272 range=17.4712071790109 td=4
2165 2013-05-17T06:32:19.000Z 32.69622 130.56595 13 spd=81.6118514513252 range=81.6118514513252 td=1

詰まった感じとは具体的には、通常は1秒間隔でログの取得が行われているのに、突然4秒ほど間が空き、更にその次のレコードとは1秒に戻るが、座標間の距離が81メートルと突然長くなっていたりします。このような変なログからは当然変な値が計算されてしまうわけで、突然異常値が発生しそれがグラフになると顕著に見て取れます。ただこの時は超精細モードかつ他のGPSロガーアプリを二つの計3個のGPSロガーソフトを動かしていたので、そのせいの可能性も有るため、今後の検証が必要かもしれません。

画面キャプチャ
ただ、上記は同時に計測していたGPSロガーソフトMy Tracksで取得していたログを同じくグラフ化したものですが、こちらは、異常値が発生していません。ちゃんとログられている感じです。山旅ロガーのグラフの様にカクンドッカンしているところがありません。

ただ、最高時速100.19km/hとやっぱり異常値が紛れ込んでいます。

画面キャプチャ1
せめて山旅ロガーのログから算出した結果の最高時速293km/hというF1かよというツッコミが出そうな値は除去したいわけです。飛行機やリニアモーターカーや新幹線に乗ったりしてGPSログを取る場合もあるわけで、単純に速度を決めて除去はできません。
そこで、外れ値を計算して、異常値な場合は前後のレコードの速度の値に置き換えるようにしました。レコード自体除去するのも一つの方法だと思いますが、今のところこれで行きます。
外れ値

私はどちらかと言うと勉強が出来た方ではないので、平方根とか標準偏差とか言われても、「なにそれ美味しいの?」といったぐあいで、よくわからないのでちょっとだけ苦労しました。下のサイトのように算数のレベルまで噛み砕いて説明してくださっているサイトには大変感謝します。

標準偏差 - 計算

そういうわけで、上のグラフのように上に極端な値は、除去され、F1マシンはいなくなりました。

ただ、下に極端な値はそのままなので、MyTracksのログよりも谷間が目立ちます。

MyTracksはデフォルトが超精細(1秒間隔)なので、その点はよく作られているのでしょう。1秒単位でログを取得する場合はMyTracksがいいかもしれません。山旅ロガー+地図ロイドには地図キャッシュという強みがありますが、My TracksはGoogle謹製なこともあり、ソフト一個で色々できて、無料でお手軽に使えるという点があります。

普通は電池やメモリの問題なども有り、1秒間隔でログを取る人は少ないと思うのですが、My Tracksがそうであるため、今後はそういう方向に進んでいくのかもしれません。なにより1秒間隔で取得したログは視覚化した時に線がなめらかで綺麗ですからね。

(Visited 19 times, 1 visits today)

タグ :