read garmin files
  • Python 99.3%
  • Shell 0.7%
Find a file
2024-01-24 21:29:20 +01:00
org-fit-files adding a 2.0 fit file 2018-01-19 14:29:13 +01:00
outputs some docs 2018-03-26 10:13:49 +02:00
.gitignore gitignore update 2018-03-25 13:03:51 +02:00
fit2gpx.sh change permissions 2022-06-17 18:58:22 +02:00
half_marathon.py docu 2017-07-20 17:19:32 +02:00
hiit.py no idea what i did there 2019-12-21 20:46:36 +01:00
LICENSE Initial commit 2017-07-20 17:11:15 +02:00
providers.py.in opensnowmap url update 2020-02-06 23:03:36 +01:00
README.md expand license info 2018-03-26 10:17:10 +02:00
requirements.txt alibi requirements file 2020-02-23 22:18:03 +01:00
setup.cfg small setup.cfg file 2018-03-25 13:01:43 +02:00
ski.py add two-sided power meter support 2024-01-24 21:29:20 +01:00
skimap.py reload higher res map upon zoom-in 2023-01-21 20:14:07 +01:00
steps.py opensnowmap url update 2020-02-06 23:03:36 +01:00
swim.py flake8 for swim.py 2018-03-25 12:34:44 +02:00
utils.py add two-sided power meter support 2024-01-24 21:29:20 +01:00

fitfile-jugglers

AIM

Use garmin devices without cloud and app. Get the files (copy through usb) and start nerding yourself.

Watch a lightning talk about the problem here.

what's there (or, well, drafted)

fit2gpx.sh

A command line call to gpsbabel to convert fit files to gpx, with the garmin extensions enabled (heart rate, cadence for cycling, temperature.)

Does not work at the moment for newer garmin files (2.0) e.g. from the skiing app.

half_marathon.py

Some plotting from the record of a half marathon, when two half marathon runs are stored in one gpx file, as exported from garmin basecamp.

hiit.py

Show heart rate during a HIIT session. Shows also whenever you hit the lap button. Interactive matplotlib plot, png output and an interactive html file (lots of external JS loaded, no idea if the JS module calls home).

steps.py

A parser of the acivity tracking (in MONITOR/ on garmin watches), shows your steps throughout the day.

swim.py

Heart rate parsing for indoor swimming. (haven't figured out the timestamps yet).

ski.py

Plot altitude, heart rate, and speed vs. time. detect changes from lift to piste, print stats on ski distance and descent and lift distance and ascent.

NB: final statistics don't agree with the in-app stats.

skimap.py

Plot the track on a map and colorize the track according to velocity (or hear rate, or other variable).

skimap

(map data (c) www.openstreetmap.org & contributors published under ODBL; map tiles by www.opensnowmap.org published under CC-BY-SA; the track overlay added by pseyfert, CC-BY-SA).

unit tests and references

I would love to let you help and hack around, but, you know, I have reservations putting some .FIT recordings of myself on the internet (other than what I somewhat had to share with Garmin, to get a "reference" reading, files are marked as private there and mostly deleted, but that's on trust basis and I don't want to make it worse).

requirements

I'm using:

  • python-fitparse commit 5283af577d593bfb11bdc582c7d2df61b6ce3c40
  • gpxpy with my commit 4449b9cb7b852ccd4068b712d99e71e9139826c4 (from here).
  • TileMapBase from commit 7e253c0b1b41ea8c22e3c6a49aec62675d006452

Most scripts have been written for python 2.7, though porting them to python 3.5 (or making them compatible) shouldn't be hard. Those relying on TileMapBase even are written for python 3.

LICENSE

The project is published under the MIT license. This does not include:

  • example outputs in the outputs directory (CC-BY-SA, see above)
  • some files imported from other projects:
    • setup.cfg (GPL)