ライドを外へ持ち出す:GPX・KML・CSV の使い分け
三つの形式に、三つの別々の仕事があります。それぞれが実際に何を保持しているのか、どの用途にどれを選ぶのか、そして「そもそも書き出せること」が、走った履歴が自分のものかどうかを決めてしまう理由。
一つのアプリの中にしか存在しないライドの記録は、借り物です。アプリは終了しますし、サブスクリプションの価格は上がりますし、会社は買収されます。そして「自分の履歴を持って出られるのか」という問いは、たいてい急に切実になります。それを決めるのが書き出し機能で、必要になる前に各形式が何をするものかを分かっておく価値があります。
GPX — アプリ間でルートを移すための形式
GPX は XML ベースの形式で、二〇〇二年以来、GPS ソフトウェアの共通語であり続けています。ほぼ何でも読めます。Garmin の機器、Strava、komoot、Gaia、QGIS、OpenStreetMap のエディタ、アップロード欄のある地図サイトは、だいたい全部です。
中身は三種類あり、これを取り違えることが、トラブルの定番の原因になっています。
- ウェイポイント。単独で打たれた点で、順序を持ちません。登山口、水場など。
- ルート。これから通るつもりの場所を順番に並べた点列。つまり計画です。
- トラック。実際に記録された点を時刻付きで並べたもので、トラックセグメントに分かれます。つまり、実際に通った場所の記録です。
記録されたライドはトラックです。各点は緯度と経度を持ち、たいていは標高と時刻も持ちます。拡張として心拍やケイデンス、気温などを載せることもできます——そして相互運用が怪しくなるのはこの部分で、拡張は任意であり、メーカーごとに好みが違うからです。
トンネルを通る人にとって効いてくる細部があります。GPX のトラックは複数のトラックセグメントを含むことができ、そのセグメントの切れ目こそが、「記録はここで中断された」を表現するこの形式の正式なやり方です。中断のあったライドを一本の連続したセグメントに潰して書き出すアプリは、その情報を捨てています。そして後からそのファイルを読んだものは、両端をつなぎます。
KML — Google Earth で眺めるための形式
KML も XML で、Google Earth のために作られ、いまは Open Geospatial Consortium の標準になっています。GPX と守備範囲は重なりますが、狙いは交換ではなく提示のほうにあります。スタイル、色、アイコン、フォルダ、そして線を地形に貼り付けるか実際の高さに浮かせるかを決める高度モードなど。
ルートを三次元で眺めたいとき、地形に沿わせたいとき、ダブルクリック一回で Google Earth が開くファイルを誰かに渡したいときは KML です。保存用の正本には向きません。描画寄りの形式ですし、Google の外での対応は薄く、KMZ は KML を zip で固めただけのものです。
CSV — 自分で計算するための形式
CSV はそもそも GPS の形式ではありません。だからこそ役に立ちます。行と列があるだけで、どの表計算ソフトでも開けて、アプリの画面が答えてくれない問いを自分で立てられます。
本当に別物の形が二つあり、どちらが欲しいのかを分かっていると、ずいぶん時間の節約になります。
- 一点一行。ライド中のすべての測位点を並べます。時刻、緯度、経度、標高、速度、精度。これが分析用のファイルです。勾配に対して速度を描く、本当に失速したのがどこかを探す、信用していない区間の精度の数字を確かめる。
- 一本一行。これまでに記録したライドを一本一行で並べます。日付、距離、所要時間、獲得標高。一年分の表を作るためのファイルです。月ごとの合計距離、アクティビティ別のピボットテーブル、シーズンのグラフ。
Roam(ローム)は、この四つの形をすべて書き出せます。GPX、KML、点ごとの CSV、トラックごとの CSV。FIT は、中途半端に動くものを用意するくらいなら意図的に用意しない、という選択です。雑に作るのが簡単な形式については、妥当な選び方だと思います。
形式の一覧より効いてくる、二つの性質
稼働中のレコーダーではなく、ディスクから書き出せること
いちばん救い出したいライドは、たいていうまくいかなかったほうのライドです。記録が中断され、そのまま戻ってこなかった、あれです。稼働中のレコーダーが抱えているものしか書き出せないアプリでは、まさにそのライドだけが取り出せません。Roam の書き出しはエンジンではなくデータベースを読むので、記録プロセスが落とされて二度と再開しなかったトラックも、それ単体で書き出せます。
そのファイルが信用できるかどうかを伝えること
書き出しは、完全でありながら間違っていることがあります。アプリがそのライドについて信じている内容と、実際に保存されている内容が離れてしまった場合です。Roam はその二つを突き合わせます。サマリが主張する点の数と、ディスク上にある点の数。そして一致しているかどうかを報告します。ファイルはどちらの場合でも書き出されます。これは意図的で、書き出しを拒めば、悪い知らせと一緒にデータまで取り上げることになりますし、それについてまだ何かできるのは、その端末を手にしている人だからです。
実務的な注意
- 保存用は GPX。十年後も読める見込みがいちばん高く、ほかのどのツールも受け付ける形式です。
- 必要になる前に書き出しておく。履歴を外に出したくなる瞬間は、たいてい何かがすでに起きた後です。
- 途切れのあるライドについては、第三者のサイトが出す距離を信じる前にセグメントの構造を確かめる。そのサイトは穴について独自の判断をするからです。
- 一年の振り返りには、GPX を二百本書き出して合計しようとするより、一本一行の CSV を使う。
- トラックは自分がどこにいたかの記録だということを忘れない。自宅の玄関から始まるものを公開する前に、そこを一度考えてみてください。
Roam では、書き出しは Roam Pro の機能です。一本まるごと記録すること、それを見ること、再生することは無料で、これからも無料のままにするつもりです。
よくある質問
GPX と KML は何が違いますか
GPX は交換のための形式です。ほぼすべての GPS ツールが読み書きでき、保存用の正本としてはこちらが正解です。KML は提示寄りで、Google Earth のために作られ、GPX が持たないスタイルや高度モードを載せられます。データを移すなら GPX、三次元で眺めるなら KML です。
CSV はどちらを書き出せばいいですか
一本のライドを分析したいなら一点一行。ルートに沿った速度、標高、精度が並びます。多くのライドを表にしたいなら一本一行。月ごとの合計やシーズンのグラフを作るのに向いています。
中断されたライドも書き出せますか
書き出せます。アプリが稼働中のレコーダーではなく保存済みのデータから書き出す作りであれば、という条件付きですが。Roam の書き出しはデータベースを読むので、記録が落とされて二度と再開しなかったライドも書き出せます。
書き出した距離がアプリの表示と違うのはなぜですか
たいていは、そのファイルを読み込んだ先が独自のルールで計算し直しているからです。平滑化の仕方が違いますし、信号の途切れをどう扱うかもそのツールの判断です。セグメントの切れ目を保った同じファイルでも、ツールごとに扱いは変わりますし、どのツールも互いに一致する義務を負っていません。
ライドを失わない記録アプリ
Roam は測位点が届いたその瞬間に、走行中の累計値と同じトランザクションで端末へ書き込みます。信号が切れた区間は直線でつながず、切れた区間として残します。獲得標高は GPS の高度ではなく気圧センサーから読みます。アカウントもサインインも同期もありません。一本まるごと記録して、見て、再生するところまでは無料です。