Fitbitが計測したライドデータとSTRAVAに連携したデータの比較(高度編)

こんにちは、Takum!です。
前回に引き続き、FitbitとSTRAVAのライドデータの比較作業をしています。

このエントリーでは、Fitbitのデータと、FitbitのデータをSTRAVAに連携させた後のデータを比較してみます。



 前回、それぞれのデータをDataFrameに変換し、pickleとして保存しましたので、それを使用していきます。


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df_fitbit = pd.read_pickle('fitbit.pickle')
df_strfit = pd.read_pickle('stravafitbit.pickle')




 joinで結合してみます。
 HR、緯度経度に違いは無いのですが、高度のデータが異なりました。

df = df_fitbit.join([df_strfit])
df['lat_diff']=df['fit_lat']-df['stf_lat']
df['lng_diff']=df['fit_lng']-df['stf_lng']
df['hr_diff']=df['fit_hr']-df['stf_hr']
df['alt_diff']=df['fit_alt']-df['stf_alt']

df.tail()


fit_altfit_distfit_hrfit_latfit_lngstf_altstf_hrstf_latstf_lnglat_difflng_diffhr_diffalt_diff
2019-01-31 08:22:3557.5000009388.57031211738.259911140.87570249.500000117.038.259911140.8757020.00.00.08.000000
2019-01-31 08:22:3658.0000009389.86035211738.259911140.87570249.500000117.038.259911140.8757020.00.00.08.500000
2019-01-31 08:22:3758.4000029391.21972711638.259922140.87570249.500000116.038.259922140.8757020.00.00.08.900002
2019-01-31 08:22:3858.5499999392.66992211538.259930140.87571749.599998115.038.259930140.8757170.00.00.08.950001
2019-01-31 08:22:3958.7000019394.23046911538.259937140.87571749.599998115.038.259937140.8757170.00.00.09.100002

 Matplotlibでグラフ化してみましょう。

fig, ax = plt.subplots()

ax.plot(df.index, df['fit_alt'])
ax.plot(df.index, df['stf_alt'])
ax.legend(loc='upper right')

plt.show()


Fitbitの生データとSTRAVAに連携した後の高度データ


 生Fitbitのデータは25~50mくらい高い数値になっています。初期(一番左)地点は自宅なのですが、高度はGPS信号で読む限り、75mくらいです。なので、STRAVAに連携した方が正しく見えます。なお、STRAVAは補正するためのデータベースを持っており、デバイスが正しく高度を取れなくても、その座標の高度のデータベースから補正してくれるようです(STRAVAのFAQページ)。
 ですが、後半のほとんどは平坦路です。STRAVAデータの跳ね上がっているところが気になります。この地点の緯度経度を見てみると、東二番丁通りなので、やはり平坦なはずです。しかし、下記のように左車線を走行しているはずが、大きく蛇行していました。この辺は道路沿いに背の高いビルやマンションがあるのもそうですが、バス停にてバスを右から追い越したりすることも影響しているんでしょう。そういったズレが、道路上ではなく、違う場所の高さに補正されているのかもしれません。
STRAVAの走行軌跡。大きく蛇行している。地図はOpenStreetMap。
最後のFitbitがゼロに落ちているところは、地下にある駐輪場です。GPS信号が取れなくなった時点で、Fitbitはゼロになるんですね。STRAVAのほうは、先に述べた、最後に見えた地点の高さデータになっているかと思われます。

次は、STRAVAアプリで取得したデータとの比較をしてみようと思います。


コメント

このブログの人気の投稿

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