- 健康データをSQLiteデータベースとして解析・操作するPythonスクリプト
- Garmin ConnectまたはGarminウォッチ、FitBit CSV、MS Health CSVファイルからデータをダウンロードして解析し、Jupyterノートブックを使ってSqliteデータベース内のデータを分析
機能
- Garmin Connectの「Daily Summary」ページから、1日を通じた心拍数、アクティビティ、上昇/下降、ストレス、強度分などのデータを自動でダウンロードして取り込む
- 睡眠、体重、安静時心拍数データをGarmin Connectから抽出してJSONファイルとして保存し、データベースに取り込む
- Garmin Connectからアクティビティファイルをダウンロードして取り込む。すべてのアクティビティのサマリーテーブルと、一部アクティビティ種別の詳細データを含む
- 日次、週次、月次、年次のサマリーを含むテーブルにデータを要約する
- コマンドラインまたはJupyterノートブックを使ってデータをグラフ表示する
- ダウンロードしたJSONおよびFITファイルを保存しておくことで、Garmin Connectに再接続したりデータを再ダウンロードしたりせずにデータベースを再構築できる
- アクティビティをTCXファイルとしてエクスポートできる
使い方
リリース
- GarminDbはPyPIでホストされている。Python 3.xが必要。ターミナルで
pip install garmindbを実行して最新リリースをインストールする
GarminConnectConfig.json.exampleを~/.GarminDb/GarminConnectConfig.jsonにコピーし、Garmin Connectのユーザー名とパスワードを追加して、データの開始日を調整する
- すべてのデータをダウンロードしてデータベースを作成するには、
garmindb_cli.py --all --download --import --analyzeを実行する
- 最新データをダウンロードして取り込み、データベースを段階的に更新するには、
garmindb_cli.py --all --download --import --analyze --latestを実行する
- データベースファイルをバックアップするには、ときどき
garmindb_cli.py --backupを実行する
ソースから
- SSHクローン方式を使ってGarminDBリポジトリをGitクローンする。サブモジュールもSSHを使う必要がある
- クローンしたツリーで
make setupを実行し、データ処理の準備を行う
GarminConnectConfig.json.exampleを~/.GarminDb/GarminConnectConfig.jsonにコピーし、ユーザー名とパスワードを追加して開始日を調整する
make create_dbsを一度実行して、データを取り込んで処理する
- すべてのローカルデータを最新の状態に保つため、定期的に
makeコマンドを実行する
Jupyterノートブック
- データベース内のデータを分析するためのJupyterノートブックは、ソースツリーの「Jupyter」ディレクトリにある
プラグイン
- プラグインにより、ユーザーはデータベースで処理・保存するデータ種別を拡張できる。GarminDbには、サードパーティ製Connect IQアプリやデータフィールドを処理するための複数のプラグインがすでに用意されている
1件のコメント
Hacker Newsのコメント
Garth を使って認証するアプリには注意が必要。Garmin との統合は難しい
デバイスから現在のデータを取得する方法がある
Intervals を使って Garmin と Strava 関連のデータを分析するのは有用
Garmin はスマートフォンアプリに依存するのではなく、データをより適切に管理できるハードウェアを提供すべき
Garmin の SDK は古く、データアクセスも制限されている
データアクセスがより優れたフィットネスウォッチが必要
新しい Garmin Vivoactive5 を購入し、Garmin の API は最適とは言えないが満足している