LoginSignup
46
58

More than 5 years have passed since last update.

python-fitbit データ取得クエリまとめ

Last updated at Posted at 2017-02-08

fitbitでは、心拍数、歩数、カロリー、登った階数など、多様なデータを計測しています!
それらのデータのpythonでの取得方法をまとめます。

Access Tokenなど、APIの使用環境を整えるのは前回記事を参考にして下さい。

【環境】
・ OS : OS X EI Capitan
・ 言語 : Python 3.5.2
・ライブラリ : python-fitbit

心拍数・運動 時系列データの取得

intraday_time_series という関数を使います。

例:歩数の取得

準備.py
import fitbit

# メモしたID等
CLIENT_ID =  "XXXXXXXXXXXXXXXXXXXXXXX"
CLIENT_SECRET  = "XXXXXXXXXXXXXXXXXXXXXXX"
ACCESS_TOKEN =  "XXXXXXXXXXXXXXXXXXXXXXX"
REFRESH_TOKEN =  "XXXXXXXXXXXXXXXXXXXXXXX"
# ID等の設定
authd_client = fitbit.Fitbit(CLIENT_ID, CLIENT_SECRET
                             ,access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)
歩数取得.py
# 歩数を取得(1分単位)
authd_client.intraday_time_series('activities/steps', base_date="2017-01-31", detail_level='1min', start_time="02:00", end_time="04:00") 
結果
{'activities-steps': [{'dateTime': '2017-01-31', 'value': '0'}],
 'activities-steps-intraday': {'dataset': [{'time': '02:00:00', 'value': 0},
   {'time': '02:01:00', 'value': 0},
   {'time': '02:02:00', 'value': 0},
   {'time': '02:03:00', 'value': 0},
   {'time': '02:04:00', 'value': 0},
   {'time': '02:05:00', 'value': 0},
   ...

detail_level

取得するデータの間隔
1sec, 1min, 15min のどれか
欠損値がある可能性が高いです。

取得するデータの種類

上記関数の'activities/steps'という項目を変更することで、いろいろな情報を時系列で取得することができます。

説明
activities/heart 平均心拍数
activities/steps 歩数
activities/calories 消費カロリー
activities/floors 登った階数(3m登って1階)
activities/minutesSedentary 座っている時間(分間)
activities/minutesLightlyActive 軽い運動をしている時間(分間)
activities/minutesFairlyActive アクティブな運動をしている時間(分間)
activities/minutesVeryActive 激しい運動をしている時間(分間)

睡眠データの取得

睡眠データは sleep 関数が便利です。

睡眠情報取得.py
authd_client.sleep(date="2017-01-29")
結果
{'sleep': [{'awakeCount': 1,
   'awakeDuration': 6,
   'awakeningsCount': 19,
   'dateOfSleep': '2017-01-29',
   'duration': 26700000,
   'efficiency': 93,
   'isMainSleep': True,
   'logId': 13626289712,
   'minuteData': [
    {'dateTime': '01:16:00', 'value': '3'},
    {'dateTime': '01:17:00', 'value': '3'},
    {'dateTime': '01:18:00', 'value': '3'},
    {'dateTime': '01:19:00', 'value': '3'},
    {'dateTime': '01:20:00', 'value': '3'},

    {'dateTime': '08:38:00', 'value': '1'},
    {'dateTime': '08:39:00', 'value': '1'},
    {'dateTime': '08:40:00', 'value': '2'}],
   'minutesAfterWakeup': 1,
   'minutesAsleep': 414,
   'minutesAwake': 30,
   'minutesToFallAsleep': 0,
   'restlessCount': 18,
   'restlessDuration': 25,
   'startTime': '2017-01-29T01:16:00.000',
   'timeInBed': 445}

データの中身

key名 内容
dateOfSleep 日付(起床日) 
isMainSleep その睡眠がメインの睡眠かどうか 
dateOfSleep 起床回数 
startTime 就寝時間
timeInBed ベッドに横になっていた時間(分間)
awakeCount 起床回数 
restlessCount 寝返り回数 
minutesAsleep 睡眠時間(分間)
minutesAwake ベットで起きていた時間(分数)
minutesToFallAsleep 眠りに落ちるまでの時間(分間)
minutesAfterWakeup 起きてから起き上がるまでの時間(分間)
dateOfSleep 起床回数 
minuteData 1分毎の睡眠レベル
{ 1:睡眠, 2:寝返りを繰り返す, 3:覚醒}

参考サイト

python-fitbit GitHub
python-fitbit ドキュメント

46
58
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
58