STRAVAのGPXとFITBITのTCX

StravaのAndroidアプリとFitbit Charge2×Fitbit Androidアプリで保存したライドログデータを比較してみました。

StravaのWeb画面からはGPXファイルが、FitbitのWeb画面からはTCXファイルをダウンロードすることができます。
これらはどちらもXMLファイルですが、フォーマットが違います。詳しく見てみたいと思います。
STRAVAのGPX
<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="StravaGPX Android" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd">
 <metadata>
  <time>2018-05-28T09:09:25Z</time>
 </metadata>
 <trk>
  <name>Evening Ride</name>
  <trkseg>
   <trkpt lat="38.2606010" lon="140.8754790">
    <ele>43.4</ele>
    <time>2018-05-28T09:09:25Z</time>
   </trkpt>
(中略)
  </trkseg>
 </trk>
</gpx>
FITBITのTCX
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2">
    <Activities>
        <Activity Sport="Biking">
            <Id>2018-05-28T18:08:08.000+09:00</Id>
            <Lap StartTime="2018-05-28T18:08:08.000+09:00">
                <TotalTimeSeconds>4370.0</TotalTimeSeconds>
                <DistanceMeters>18981.940000000002</DistanceMeters>
                <Calories>534</Calories>
                <Intensity>Active</Intensity>
                <TriggerMethod>Manual</TriggerMethod>
                <Track>
                    <Trackpoint>
                        <Time>2018-05-28T18:08:08.000+09:00</Time>
                        <Position>
                            <LatitudeDegrees>38.2607057094574</LatitudeDegrees>
                            <LongitudeDegrees>140.87479209899902</LongitudeDegrees>
                        </Position>
                        <AltitudeMeters>83.7</AltitudeMeters>
                        <DistanceMeters>0.0</DistanceMeters>
                        <HeartRateBpm>
                            <Value>94</Value>
                        </HeartRateBpm>
                    </Trackpoint>
(中略)
            </Lap>
            <Creator xsi:type="Device_t" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <Name>Fitbit Charge 2</Name>
                <UnitId>0</UnitId>
                <ProductID>0</ProductID>
            </Creator>
        </Activity>
    </Activities>
</TrainingCenterDatabase>

TCXのほうはヘッダーにサマリーがあります。総時間や距離、計算された消費カロリーなどが載ってます。
Trackタグの中には、各計測時刻での座標(緯度・経度)と標高、走行距離、心拍数が延々と記録されています。
GPXのtrksegタグの中には、各地点の座標(緯度・経度)と標高、計測時刻が延々と記録されています。

FITBITのTCXは時刻ベース、STRAVAのGPXは座標ベースとなっているのが一つの差ですね。STRAVAは信号などで停止すると自動停止し、その時間記録が止まります。動き始めてからまた記録が始まります。ですので、長い休憩をはさんだロングライドではデータ量に相当差が出そうです。ですが、今の時代データはすぐにクラウドに上がるのでそのデータ量はあまり気にしなくてもいいポイントだと思います。

次に、緯度・経度の精度が異なっていることがわかります。TCXは小数点以下14桁に対し、GPXは小数点以下7桁。さらに7桁目は常にゼロですので実質6桁。どの程度の差が有意な誤差になるのか、Google Mapで調べてみると、小数点以下5桁目が変わると数m程度動くようです。ヒュベニイの平均経度の式で緯度38.26度付近で緯度0.000001変わると11.1cm、経度0.000001変わると8.7cm。こちらもあまり気にする必要はなさそうです。

最後に標高を見てみます。上に出したのは1件目のデータなのでGPSも安定していない状態ですが、GPSが安定したところでも標高が全然違います。FITBITのほうは「AltitudeMeters」と明示しているのでメートルです。実標高ともほぼ合っているように見えます。しかし、STRAVAの「ELE」がどうにも合わない。調べてみるとSTRAVAは独自に標高のデータベースを持っているようで、そちらをルックアップしつつ、GPSのデータも見ているようです。(参考サイト)しかし、画面で見る標高の値とGPXデータに出力される標高の値が異なるのはちょっと違和感ありますね。



このブログの人気の投稿

MS Azure Information Protection を入れたら右クリックの「分類して保護する」がうざい

Zwiftがいきなり楽になってしまった件(顛末)