FIT

FITファイルとは

スポーツウォッチが自動で書き込むバイナリ形式。密度が高く、変換しないかぎり読めません。

FIT とは何か

FIT はバイナリ形式です。これを知っているプログラムにしか意味を持ちません。 運動の記録のために使われます。

拡張子は .fit、正式名称は Flexible and Interoperable Data Transfer です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。

FIT はどこから来たのか

Garmin が 2008 年に公開しました。 仕様は Flexible and Interoperable Data Transfer です。

古さが役に立つのは、ごく実務的な理由からです。形式が古いほど、それを覚える時間が多くのプログラムに与えられてきたということだからです。

仕様は公開されていますが、公開しているのはそれを所有する会社です

文書があり、それに沿って実装できます。それでも、次の版がどうなるかを決めるのはその会社です。実務上、ファイルが開き続けるにはこれで足ります。安心するには足りません。

捨てられるものはありません

FIT ファイルは中身をそのまま保存します。保存し直しても何も変わらないので、開いて、直して、また保存する——それを何度繰り返しても劣化は積み上がりません。これが、渡すための形式ではなく作業のための形式である理由です。

自分を守るために何を備えているか

FIT ファイルは壊れたファイルが黙って誤読されるのではなく、壊れていると分かるようにするチェックサムを備えています。

チェックサムは何も直しません。ファイルが壊れていると教えてくれるだけです。ただしそれは、今それを知るか、送った相手から知らされるかの違いです。

FIT を開けるのは何か

Garmin Connect、Strava、GoldenCheetahが読めますし、同じ種類のプログラムならたいてい読めます。

ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。

ブラウザーで開く

これを読めるブラウザーはありません。

これを変換するいちばんよくある理由がこれです。形式が悪いのではありません。ファイルを見せたい場所が、それを読めないというだけのことです。

渡すための形式です

FIT は渡すために作られたもので、中で作業するためのものではありません。編集は可能ですが、快適だったためしはありません。賢い道は、元のファイルへ戻ってもう一度書き出すほうを通ります。

この形式でよく起きること

繰り返し挙がる不満はこれです。本来の分野の外では対応がまばら。

どれも、この形式を避ける理由にはなりません。どれかに不意を突かれる前に知っておくべきことがら、というだけです。これは別の主張であり、そして役に立つほうの主張です。

時計が実際に記録しているもの

FIT はエクスポート用の形式ではありません。運動している間に端末がそのまま書き込んでいく形式で、一件ずつ記録されるコンパクトなバイナリログです。メモリーの少ないハードウェアと、一週間持たせる必要のあるバッテリーを前提に Garmin が設計しました。

つまり FIT ファイルは原本です。GPX や TCX、トレーニングプラットフォームでの表示など、それ以外のアクティビティーの記録はすべてこの FIT から派生したもので、派生形式は一貫して情報が少なくなります。この一点こそが、変換してすぐ捨てるのではなく理解しておく価値がある理由です。

自己記述型のバイナリだからこそ長く使える

この形式は、書き込みながら自分自身の構造を定義していく仕組みです。定義メッセージが「この種類のレコードは、この大きさのタイムスタンプ、心拍数、ケイデンスを含む」と宣言し、それに続くデータメッセージは、フィールド名を繰り返さない値だけの並びになります。

これがこれほど小さいファイルになる理由です。一秒ごとに記録した一時間のライドは数十キロバイトで済み、同等の TCX なら数メガバイトになります。何も壊さずに拡張できるのもこの仕組みのおかげです。新しい計測項目を記録する端末はそのための定義を追加するだけで、古いソフトは理解できる部分だけを読み、残りは読み飛ばします。今年発売された時計のファイルが、何年も前に書かれたリーダーでも開けます。

他では持てないデータを保持している

ランニングダイナミクス — 接地時間、上下動、ストライド長。サイクリングのパワーの詳細 — 左右バランス、トルク効率、ペダリングのなめらかさ。スイミングのストローク種類とプールごとの回数。トレーニング効果や回復時間といった生理学的な推定値。端末情報、バッテリー残量、センサーの識別子、セッション内のすべてのラップとイベントマーカーです。

これらのどれ一つとして GPX への変換では残らず、TCX でも一部しか残りません。アクティビティーを残すために書き出すなら、GPX ではなく FIT を書き出すことが、そのセッションそのものを残すか、単なる経路だけを残すかの分かれ目になります。

だからこそツールなしでは読めない

テキストエディターではバイナリのノイズしか見えません。日付や距離をひと目で確認する方法がなく、それがコンパクトさと引き換えの代償です。

無料の閲覧ツールは存在し、よくできています。Garmin は SDK を公開していて、いくつかのウェブツールもファイルを開いてセッションやラップ、各種データストリームを表示してくれます。ちょっと確認したいだけなら、何かをインストールするよりトレーニングプラットフォームにアップロードするほうが早いことが多いです。プログラムから扱うなら、SDK かオープンソースのパーサーが入り口になります。

FIT ファイルの出どころと行き先

Garmin の端末がこれを書き出し、Wahoo、Zwift、Suunto、Coros、そして現行のサイクルコンピューターの多くも同様です。もはや Garmin だけの形式ではなく、この分野全体の事実上の標準になっています。USB で接続した端末では、Activities というフォルダーに入っていて、そのままコピーできます。

Strava、TrainingPeaks、Garmin Connect、intervals.icu といったプラットフォームはどれも FIT のアップロードを受け付け、むしろそちらを好みます。追加のデータがそこに含まれているためです。プラットフォームから書き出すときは、FIT が選べるならそれを、なければ TCX を、それもなければ最後の手段として GPX を選んでください。

変換で失われるもの

FIT から TCX への変換は、経路、タイムスタンプ、ラップ、心拍数、ケイデンスを保ちますが、ランニングダイナミクスや詳細なパワーの指標、端末情報は失われます。FIT から GPX への変換は経路とタイムスタンプだけを保ち、それ以外はほぼすべて失われます。心拍数はベンダー拡張としてかろうじて残る程度で、受け取る側が無視することもあり、座標のない屋内セッションでは残るものがほとんどありません。

逆方向に有用な変換はほとんどありません。GPX を FIT に変換しても、それはトレーニング形式の皮をかぶった単なる経路にすぎず、ラップは一つだけ、心拍数もケイデンスもありません。もともとソースにその情報がなかったからです。プラットフォームがそれを求めるときだけ下位の形式に変換し、セッションそのものを保持するコピーとして FIT は残しておいてください。

壊れた記録を修復する

よくあることです。ライドの途中でバッテリーが切れた時計、プラットフォームが拒否するファイル、間違った種目や大きく違った距離でアップロードされたセッション。この形式は自己記述型のメッセージの連続なので、途中で止まったファイルでも、止まった時点までは読める場合が多く、無料のツールで修復やトリミングができることがあります。

編集する前に知っておく価値があるのは、詳細な記録とセッションの要約は別々に保存されていて、一方から他方が自動的に再計算されることはないという点です。記録の十分間を切り取っても、要約が 42 キロメートルのままだと、どのプラットフォームもその要約を信じてしまいます。両方を編集するか、両方を編集してくれるツールを使ってください。

基本情報

FITフォーマットの識別子と出自。
拡張子.fit
メディアタイプapplication/vnd.ant.fit
公開元Garmin
初版2008
仕様Flexible and Interoperable Data Transfer

FIT ファイルについてのよくある質問

FIT ファイルを開くには

バイナリなので、テキストエディターでは何も分かりません。手早く確認したいなら Strava や Garmin Connect、intervals.icu にアップロードするか、無料のウェブ版 FIT ビューアーを使ってください。プログラムから扱うなら Garmin が SDK を公開しています。

FIT と TCX の違いは何ですか

FIT は端末が自ら記録するコンパクトなバイナリで、TCX はそこから派生した XML のエクスポートです。TCX は経路、ラップ、心拍数、ケイデンスを保ちますが、ランニングダイナミクスや詳細なパワー指標、端末情報は失われます。

FIT と GPX、どちらを書き出すべきですか

選べるなら常に FIT です。GPX は経路とタイムスタンプ以外ほとんど何も保ちません。心拍数はベンダー拡張としてかろうじて残る程度で無視されることもあり、座標のない屋内セッションでは変換後にほとんど何も残りません。

なぜ FIT ファイルは TCX よりずっと小さいのですか

自己記述型のバイナリだからです。定義メッセージがレコードの中身を宣言し、それに続くレコードはフィールド名を繰り返さない値だけです。一時間のアクティビティーが数十キロバイトで済み、同等の TCX なら数メガバイトになります。

FIT は Garmin 専用の形式ですか

作ったのは Garmin ですが、Wahoo、Zwift、Suunto、Coros、そして現行のサイクルコンピューターの多くも書き出します。この分野全体の事実上の標準になっていて、主要なトレーニングプラットフォームはどこも受け付けます。

途中で止まった記録を直せますか

たいてい直せます。ファイルは自己記述型のメッセージの連続なので、途中で切れたものでも、止まった時点までは読める場合が多く、無料のツールで修復やトリミングができます。要約と詳細な記録は別々に保存されていて、一方から他方が自動的に再計算されない点は覚えておいてください。