このツールについて
スポーツウォッチやサイクルコンピューターが記録するのは .fit、ところが多くのルートサイトやアプリが受け付けるのは .gpx です。どちらでもこのページへドロップすれば、その場で解析されます。まずサマリー——距離、経過時間と移動時間、獲得標高と下降、平均・最高速度(またはペース)、心拍、パワー、記録した機器——続いて縮尺どおりに描いた軌跡(スケールバーと北矢印付き)、そして標高・速度・心拍・ケイデンス・パワー・気温のグラフを、ファイルに入っている分だけ表示します。複数ファイルをまとめてドロップし、左のリストで切り替えることもできます。
すべてブラウザの中で完結します。GPS 軌跡は「いつ、どこにいたか」の日記そのもので、ちょっと中身を見たいだけなのにサーバーへ渡す理由はありません。解析はあなたのマシン上の Web Worker で動き、ページにアップロード先は存在せず、タブを閉じれば何も残りません。軌跡を地図の上ではなく無地の背景に描くのも同じ理由です。地図タイルを要求した時点で、ルートのある地域がタイルサービス側に伝わってしまうからです。
FIT を GPX や CSV に変換
FIT から GPX への変換は GPX 1.1 のトラックを書き出し、心拍・ケイデンス・気温は Garmin の TrackPointExtension に収めます。Strava、Komoot、Garmin Connect をはじめ、ほとんどのルートツールが読める形式です。GPX にはラップ、機器イベント、developer fields、機器が計測した速度と距離を入れる場所がないため、これらは失われ、ページに失われた項目を列挙します。パワーには標準の GPX 要素がなく、チェックを入れると非標準の <power> として書き出せますが、スキーマ検証に通らなくなるため初期状態ではオフです。FIT も GPX も CSV に書き出せます。レコード1点につき1行、単位は列名に含めてあり(ele_m、speed_mps、hr_bpm)、そのまま CSV Explorer で開くリンクも用意しています。
数値の計算方法
獲得標高と下降は、前回カウントした地点から 3 m 以上変化したときだけ加算します。GPS のぶれが積もって山になるのを防ぐためです。Strava や Garmin Connect はそれぞれ独自の平滑化と標高ソースを使うので、合計が一致しないのは普通のことです。移動時間は、隣り合う2点間で 0.5 m/s 以上の速度が出ていた秒数だけを足し合わせます。距離はファイルが許す限り2種類示します。機器が記録した値(ホイールセンサーや機器側の GPS フィルタ)と、生の座標を点ごとに足し合わせた値です。
パーサーが「分からない」と認める部分
FIT ファイルにはメーカー独自のメッセージが含まれ、そのメーカーのソフトでしか読めません。詳細セクションでは、メッセージ種別ごとの件数とフィールド名、developer fields の名前と単位、そして解読できないメッセージ番号を列挙します——分かったふりはしません。1レコードが壊れていてもファイル全体を捨てることはなく、解析できた点はそのまま表示し、スキップした件数を下に示します。FIT の時刻は UTC で保存されているため、ブラウザのタイムゾーンで表示しつつ UTC 値も併記します。GPX の時刻に末尾の Z も +09:00 のような時差もない場合は、推測せず「タイムゾーン不明」と表示します。