Python scripts for parsing health data into and manipulating data in a SQLite database. SQLite is a light weight database that doesn't require a server.
What they can do:
Once you have your data in the DB, I recommend using a supplied Jupyter notebooks, third party Jupyter notebooks, and/or SQLite browser like SQLite Studio, HeidiSQL, or DB Browser for SQLite for browsing and working with the data. The scripts create some default views in the DBs that make browsing the data easier.
GarminDb releases are hosted on PyPI. GarminDb requires Python 3.x. With Python installed, install the latest release with pip by running pip install garmindb
in a terminal.
GarminConnectConfig.json.example
to ~/.GarminDb/GarminConnectConfig.json
, edit it, and add your Garmin Connect username and password and adjust the start dates to match the dates of your data in Garmin Connect.garmindb_cli.py --all --download --import --analyze
in a terminal.garmindb_cli.py --all --download --import --analyze --latest
in a terminal.garmindb_cli.py --backup
to backup your DB files.Update to the latest release with pip install --upgrade garmindb
.
The scripts are automated with Make. Run the Make commands in a terminal window.
make setup
in the cloned tree to get the scripts ready to process data.GarminConnectConfig.json.example
to ~/.GarminDb/GarminConnectConfig.json
, edit it, and add your Garmin Connect username and password and adjust the start dates to match the dates of your data in Garmin Connect.make create_dbs
once to fetch and process for you data.make
.There is more help on using the program in the wiki.
Jupyter notebooks for analzing data from the database can be found in the 'Jupyter' directory in the source tree. Links to user submitted notebooks can be found in the wiki.
Plugins allow the user to expand the types of data that are processed and stored in the database. GarminDb already has a number of plugins for handling data from third-party Connect IQ apps and data fields. Read more about plugins here.
Do you find this project useful?
Find out who's using GarminDb on what platforms, OSes, and python versions here. If you're using GarminDB and your scenario isn't listed send me a message or file an issue with your success case.
garmindb_cli.py --rebuild_db
. Your DBs will be regenerated from the previously downloaded data files. All of your data will not be redownloaded from Garmin.GarminConnectConfig.json
the "steps" element of the "course_views" is list of course ids that per course database views will be generated for. The database view allows you to compare all activities from that course.make bugreport
or garmindb_bug_report.py
and include bugreport.txt in your bug report.Please submit a pull request targeting the develop branch and add your self to the contributors file. Run make flake8
at the top level and fix all errors before submitting your pull request.