Strava Tools

Command-line scripts to do things with Strava
Alternatives To Strava Tools
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
a year ago2May 03, 202013R
An interactive web application for the analysis of sports data from GPS-enabled tracking devices
Strava Tools14
2 months ago1Python
Command-line scripts to do things with Strava
12 years agoJava
Records accelerometer, gyroscope and GPS data and displays the data.
4 years agogpl-3.0C++
Easily create a versatile Heat Map of your outdoor runs and rides!
8 years agootherC#
A tool export GPS data from photos and more~
Healthkit Workout Routes2
4 years agogpl-3.0JavaScript
Apple HealthKit XML -> GPS routes on HTML 5 canvas. An experiment in data viz
5 years agoPython
UCLA Marine Data Visualization application/GUI in development in python for the Marine Operations Program at UCLA. Used to depict Ocean temperature along with GPS data ovelayed on a map. Check out the Marine Operations Program at:
New York City Taxi Trips Fare1
4 years agoJupyter Notebook
In this project using New York dataset we will predict the fare price of next trip. The dataset can be downloaded from The dataset contains 2 Crore records and 8 features along with GPS coordinates of pickup and dropoff
Gpx Visualize1
3 years agomitJavaScript
Visualize GPS tracks with a linear feature and chart
Alternatives To Strava Tools
Select To Compare

Alternative Project Comparisons


GitHub Actions status Python: 3.6+ Code style: Black

Command-line scripts to do things with Strava.

Exported data

Pre-GPDR, you could bulk export all your activities as GPX files which were named like 20170921-074112-Ride.gpx.

Post-GDPR, you can export an archive of your account which includes much more data, however your activities are now in their original file format (eg. GPX or FIT format, some gzipped, some not) and named like 971607640.gpx, 83514080.gpx.gz and (The Strava support page talks of deleting accounts when exporting, but you don't need to delete anything!)

Here are some tools and notes to have them in a similar format.

First request an archive from your account following this guide and wait for the email. Unzip and move the activities directory and activities.csv to the current dir.

Rename and unzip files

# Rename files from 1836025202.gpx to 20180912-064451-Ride.gpx
# First a test run without changing files
python3 --dry-run

# Then do it

# Unzip files, deletes GZ files
gunzip activities/*.gz

Convert FIT files

Here's some different methods to convert from FIT to GPX.


If you have any FIT files, you can use GPSBabel to convert them:

# Install on Mac
brew install gpsbabel

# Convert activities/*.fit to activities/*.gpx, keeps FIT files

# Optionally delete the FIT files
# rm activities/*.fit

The Wahoo Elemnt Bolt creates files in FIT version 2. Use GPSBabel 1.6.0 or later, or you may get fit: Unsupported protocol version 2.0 with older versions such as GPSBabel 1.5.4.


Alternatively, try Jeffrey Friedl's FIT-to-GPX.

  1. Download the Java FitCSVTool included with the free FIT SDK (direct download link).
edit fit2gpx

Update JAVA_FITCSV_CMD in fit2gpx to point to the file in the downloaded SDK and edit fits2gpxs to use fit2gpx instead of gpsbabel.

# Convert activities/*.fit to activities/*.gpx, keeps FIT files

Export as GPX from Strava

Follow the Strava guide to export each file.

Alternatively, use to get several. See instructions at the top of the file.

Split 'em

Left the GPS recorder paused when on a train? Chop out long paused sections of GPX tracks, and put them into a split/ subdir.

pip install --upgrade gpxpy termcolor tqdm
cp split/activities/*.gpx activities
# backup are at split-backup/activities

Make stuff


Generate heatmaps by dragging and dropping files into


You can make some great visualisations with marcusvolz/strava. See that repo and stravaviz.R for examples.


If you get an error with the marcusvolz/strava visualisation tools when plotting elevations:

> p3 <- plot_elevations(data)
> ggsave("plots/elevations-all.png", p3, width = 20, height = 20, units = "cm")
Error in FUN(X[[i]], ...) : object 'ele' not found

It means not all the coordinate trackpoints in your GPX files have elevation values.

Some options:

  • Export those tracks from Strava. Strava makes altitude corrections, which is why their exports have points with elevation values when original files do not.

  • Skip plotting elevations.

Generate heatmaps using See instructions at the top of the file and update the HEATMAPPY path for the file downloaded from

Popular Data Visualization Projects
Popular Gps Projects
Popular User Interface Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.