FitFilesAnalysisDeparalysis is a Python toolkit designed to unfreeze your fitness data, helping you analyze and compare metrics like heart rate, speed, and cadence from FIT files. Whether you’re trying to figure out which heart rate monitor is more precise (hint: the Polar H10) or lying (hint: the Apple Watch, but just a little)… Or want to compare how 2-5 runners’ hearts respond to your run together.
I couldn’t trust Strava.app or WorkOutdoors.app (even though it’s awesome). I wanted the beat-by-beat plotting, zooming in, overlays… Accuracy? Latency? Sampling rate? Sudden HR changes? Yes.
- Multi-Metric Analysis: Compare heart rate, and, in the near future, speed, cadence, and other metrics across multiple FIT files.
- Visual Comparison: Generate plots for up to 5 simultaneous activities—no more guessing which device is the most accurate!
- Dynamic Plotting: Zoom in, pan around, and get up close with your data — the axes’ ticks will adjust automatically for increasing precision
- Save Your Insights: Export plots as vector graphics — PDF or SVG — perfect to show those doubting the accuracy of this or that, or just to brag a little.
- Python 3.x → installed by your favorite method (Homebrew, anaconda… I prefer compiling from source to my
/usr/local/
🤪 matplotlib
package → I use pipfitparse
package
- Install the packages
pip install matplotlib fitparse
- Place the fit_files_compare_HR.py in a folder of your choosing
- create a
fit_files_compare_HR
folder next to it (to drop the FIT files into)
- Export your fitness data from any tracking app like Strava, WorkOutdoors, etc., as FIT files.
- Drop up to 5 FIT files into the
fit_files_compare
directory. Or plot just 1. - Run the script from the command line:
cd /path/to/where_you_placed_the_python_file_directory
mkdir fit_files_compare_HR
python fit_files_compare_HR.py
Of course, you can simply type python
in a terminal and drag and drop the fit_files_compare_HR.py from your files’ manager (such the MacOS Finder.app or Windows Explorer).
- The script will open your files in a GUI window, with a plot per file. Zoom in, pan around, and if you’re feeling generous, save the plot as a PDF or SVG.
Open the fit_files_compare_HR.py in your favorite plain text editor and change:
- the
save
button format to 'pdf' or 'svg - whether you’d like to automatically save a PDF and/or an SVG of the plot
- the name and location of the “drop-in FIT files” folder
- the max number of FIT files to compare
- More Metrics, More Fun: Coming soon—compare speed, cadence, and other metrics. Let’s dig deeper into that data!
- Enhanced Visuals: Think your data looks great now? Just wait until I add zone support and segmenting! After all, I’m a designer.
- More Plot Customizations: Because who doesn’t love making their data look as cool as it is informative?
FitFilesAnalysisDeparalysis/
│
├── /_docs/images/ # Some example outputs
├── /fit_files_compare/ # Directory to store your FIT files
├── example_output.pdf # Example output (generated after running the script)
├── fit_files_compare_HR.py # Main script file
└── README.md # Project documentation
If you’ve got ideas to unfreeze even more insights from FIT files, fork away! I welcome pull requests, feature suggestions, or the odd bug report.
This project is licensed under the GPL License - see the LICENSE file for details.
Created by Anatoly Ivanov - if you’ve got questions, feedback, or happen to run / ride in the same area of Paris, LA, the Swiss Alps…