STRAVAのGPXとFITBITのTCX
StravaのAndroidアプリとFitbit Charge2×Fitbit Androidアプリで保存したライドログデータを比較してみました。
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データに出力される標高の値が異なるのはちょっと違和感ありますね。
StravaのWeb画面からはGPXファイルが、FitbitのWeb画面からはTCXファイルをダウンロードすることができます。
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データに出力される標高の値が異なるのはちょっと違和感ありますね。