TCX を KML に変換

ここで TCX を KML に変換できます。無料、アカウント不要です。ファイルを上の枠に落とせば、数秒で結果がダウンロードできる状態になります。 変換はお使いのブラウザーの中で行われるので、ファイルはアップロードされません。Windows でも macOS でも Linux でも、iPhone でも Android でも同じように動き、通信を切っても動き続けます。

  • 処理される場所 ブラウザーの中です。ファイルがアップロードされることはありません。
  • 作り直し KMLはTCXとは仕組みが違います。非可逆コーデックのような段階的な劣化ではありません。KMLが表現できるものは忠実に再現され、対応するものがないものはまったく残りません。
  • ファイルサイズの上限 1ファイルあたり100MBまで。無料、アカウント不要です。
  • 知っておきたいこと 位置・標高・時刻は引き継がれます。センサーの記録、表示スタイル、埋め込まれた画像は引き継がれません。

一度に100ファイルまで。フォーマットが混ざっていても構いません。

これは「絵」への変換だと考えてください

TCX は密度の高いデータです。セッションの毎秒、位置、標高、積算距離、心拍数、多くの場合ケイデンスとパワーまで記録し、それぞれの周回ごとに時間、距離、消費カロリー、平均・最大心拍を持つラップに区切られています。多くのアスリートが持つファイルの中でも、もっとも情報量の多い部類です。

KML の LineString は座標の並びにすぎません。行き先はこれだけで、変換は翻訳ではなく削減です。8 つか 9 つあるデータの流れのうち 1 つだけが残り、その周りの構造は残りません。「上った谷を見せたい」「行ったことのない人にコースを見せたい」という目的なら、これはちょうどよい情報量です。「Google Earth のファイルはトレーニングの持ち運び可能なコピーだ」と思っているなら、それは誤りです。

変換で終わるデータの流れ

トラックポイントごとの心拍数、ケイデンス、積算距離、ワット数やランニングケイデンスを持つ拡張ブロック。ラップごとの合計時間、距離、最高速度、カロリー、平均・最大心拍、強度、開始方法。アクティビティごとのラップの区切り自体と、記録した機器を示すブロック。これらすべてが対象です。

渡るのは各点の位置と標高だけで、これは座標の 3 つ目の値になります。理由は努力不足ではなく構造の違いにあります。KML は「絵」をモデル化するもので、絵には幾何と見た目があるだけで、ある瞬間の測定値という概念自体がありません。心拍数を入れる要素がないので、それを保つ版の変換はそもそも存在しません。

時刻さえも残りません

タイムスタンプも失われます。これはセンサーの値が消えるより意外に思われる点です。LineString は座標だけを持つので、TCX の各トラックポイントに付いていた時刻は捨てられ、KML には経路がどこを通ったかだけが記録され、どの部分をいつ通過したかは記録されません。

Google Earth 上での見た目としては、経路を時間に沿ってなぞるタイムスライダーが表示されなくなります。あのアニメーションは gx:Track 要素と並んだ複数の when 値によって動いており、この変換が書くのは平坦な LineString です。再生を見たいなら、TCX から GPX への変換のほうが向いています。Google Earth は GPX を直接開けます。

地形を見るという、正直な理由

平面の地図にはない「起伏」が Google Earth の利点です。視点を傾ければ、記憶の中で長く感じた登りが実際の勾配を持つ形として見え、下りの片側に壁が現れ、行ったことのないコースが抽象的でなくなります。レースレポートや下見、あるセグメントがなぜきつかったかを説明する用途には十分で、捨てられたデータが役に立つ場面ではありません。

ラインには「地表に沿わせる」フラグが立っており、頂点の間の地面をなぞって描画されます。これがないと、谷を横切る直線は地下を通り、トラックが山肌に消えたように見えます。壊れたファイルのように見えて、実際は描画上の性質です。フラグが立っていれば、経路は全長にわたって見えたままで、これが地形表示を意味あるものにしています。

標高はファイルに書かれ、地面に沿って描かれます

各座標は 3 つの値の組で、3 つ目が AltitudeMeters から来た標高をメートル単位で保持します。セッションの標高プロファイルは KML にちゃんと存在していて、データとして読むソフトなら見つけられます。

ただし Google Earth はこれを描画しません。altitudeMode が宣言されていないため、既定でラインが地表に固定されるからです。GPS のトラックにはこの既定が妥当です。気圧高度も衛星高度も数十メートル単位でぶれるため、稜線の上に不揃いに浮かぶラインは測定というより誤りに見えてしまいます。LineString に altitudeMode を absolute として手で追加すれば宙に持ち上がり、受信機がどれだけドリフトしていたかが分かって、それはそれで興味深いものです。

受信機が空を見失った場所は、直線で飛びます

位置情報のないトラックポイントは座標になれず、除外されます。トンネルや地下道、立体駐車場を通っても心拍計は記録を続けるため、それらの区間は TCX の中では位置なしの時刻付きの点として存在し、KML の中では何もない状態になります。

地球上ではこれが、障害物の前の最後の位置と後の最初の位置を結ぶ直線として、間にある地形を無視して現れます。壊れているわけではなく、直す必要もありません。ファイルにはその間の位置がそもそも記録されていないのです。屋内のセッションなど、どの点にも位置がない場合は幾何自体が生成されず、「トラックもウェイポイントも見つかりませんでした」と表示されます。それはどこにも行っていないセッションの正しい説明です。

ラベルになれるのはスポーツの種類だけです

各アクティビティは 1 個のプレイスマークになり、名前は Sport 属性——TCX のスキーマで種類が限られており、実質「Running」「Biking」「Other」のいずれか——から来ます。これが Google Earth のサイドバーに表示されます。

Garmin Connect や Strava で付けたセッションのタイトルは、そのプラットフォームのデータベースに属していてエクスポートには含まれないため、引き継がれません。複数のセッションを同じ Earth プロジェクトに置くと、サイドバーが同じ単語の列になります。あとから KML の name 要素を書き換えるのが直し方で、プレイスマークごとに 1 行の編集で済みます。プレイスマークを手で編集しやすいように、このファイルはあえてプレーンテキストとして書かれています。

ラップは消え、セッションの構造も一緒に消えます

ラップの境界は 1 本の連続した線に均されます。KML のプレイスマークは線の中の区切りという概念を持たないため、12 本のインターバル走行も一定の強度で走ったセッションも、同じ見た目の幾何になります。

経路の見せ方でトレーニングの構造まで説明したいなら、それは別の手段が必要です。Google Earth で手動で分けたプレイスマークを描くか、あとから注釈を加えるかです。風向きが変わった場所、グループが分裂した場所、機材トラブルが起きた場所——そうした情報はどれも線には符号化されておらず、Google Earth にはそれを引き出す方法もありません。その場所に 2 行の説明を付けたプレイスマークを 1 個落とすほうが、どれだけ幾何を凝っても読み手には伝わります。

大幅に軽くなる、明確な理由のある縮小

時刻と標高を含む 7,200 点のトラックで測ると、この形の TCX はおよそ 2.2 MB、対応する KML は約 258 KB でした。トラックポイント 1 個あたりおよそ 315 バイトに対し、KML の座標 1 個は約 36 バイトです。心拍数やケイデンスを含む実際の Garmin エクスポートはさらに大きく、実際の縮小率は 8 分の 1 を超えることも珍しくありません。

この縮小は圧縮によるものではなく、ファイルがもう保持していないものを直接反映した結果です——タグ名、タイムスタンプ、センサーの値。小さいファイルが目的ならそれで構いませんが、TCX のほうは残しておいてください。KML からは元に戻せません。

セッションを渡さずに地図を作る

TCX の解析と KML の書き出しは、開いているタブの中だけで行われます。変換を実行している間、ネットワークパネルにはファイルを運ぶ通信が一切現れず、読み込んだあとは接続を切っても動作します。

変換されるファイルは、心拍数と時刻、位置と時刻という健康データと位置データが 1 個の文書に同居したものです。多くの場合、自宅の玄関から記録が始まります。出力される KML はセンサーの値と時刻が消えているぶん露出は少なくなりますが、それでも経路は生活の一部をなぞっています。地図をその場で作ることで、より情報量の多い元のファイルは、より情報量の少ない絵になる過程で外に出ることがありません。

TCX を KML に変換する手順

  1. お手元の TCX ファイル をこのページに落とすか、押してファイルを選んでください。
  2. 変換先に KML を選びます。変換はブラウザーの中で行われ、ファイルはアップロードされません。
  3. できあがった KML ファイル をダウンロードします。

TCX と KML——何が変わるか

TCXとKMLの比較
TCXKML
正式名称Training Center XMLKeyhole Markup Language
拡張子.tcx.kml
メディアタイプapplication/vnd.garmin.tcx+xmlapplication/vnd.google-earth.kml+xml
最初の公開2007
発行元GarminKeyhole
仕様Training Center XMLOGC KML 2.3
ライセンス公開仕様、標準化はされていないオープン標準
現在の位置づけ現行現行
ブラウザで開けるか対応なし対応なし
代わりに検討される形式GPX, FITKMZ, GPX

結果を開く

開くプログラムが重なりません。TCX はGarmin Connect、Strava、TrainingPeaksで、KML はGoogle Earth、QGIS、ArcGISで開きます。結果を渡す相手には後者のどれかが要ります。

どちらの形式が何のためのものか

2 つは狙っている用途が違います。TCX は運動の記録、KML は地図です。ここは考える価値があります。一方が存在する理由が、そのままもう一方が使いにくい理由になっていることが多いからです。

TCX は Garmin の形式です(2007 年に登場)。 Training Center XML で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。

KML は Keyhole の形式です。規定は OGC KML 2.3 です。Google Earth、QGIS、ArcGISがこの形式を読めます。

TCX から KML:よくある質問

TCX ファイル はどこかにアップロードされますか。

いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。

TCX から KML への変換は無料ですか。

はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。

TCX を KML に変換すると品質は落ちますか。

TCX と KML は、内容の表し方が根本から違います。ですからこの変換は複製ではなく再構築です。誠実ではありますが、1 バイトも同じというわけではありません。 位置・標高・時刻は引き継がれます。センサーの記録、表示スタイル、埋め込まれた画像は引き継がれません。

できあがった KML ファイル を開くのに、何かインストールが必要ですか。

変換には要りません。すでに開いているブラウザーの中で行われます。そのあと結果を開くには、お使いの端末がふだん Keyhole Markup Language を表示するのに使っているソフトが必要です。

これらのフォーマットについて