Command-line scripts to do things with Strava.
Pre-GPDR, you could bulk export all your activities as GPX files
which were named like
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
(The Strava support page
talks of deleting accounts when exporting, but you don't need to delete
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 export_xxxxxxx.zip 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 rename_activities.py --dry-run # Then do it python3 rename_activities.py # 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 bash fits2gpxs.sh # 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.
wget https://raw.githubusercontent.com/jeffrey-friedl/FIT-to-GPX/master/fit2gpx edit fit2gpx fits2gpx.sh
fit2gpx to point to the file in the downloaded
SDK and edit
fits2gpxs to use
fit2gpx instead of
# Convert activities/*.fit to activities/*.gpx, keeps FIT files bash fits2gpxs.sh
Export as GPX from Strava
Follow the Strava guide to export each file.
download_fit_as_gpx.py to get several. See instructions at
the top of the file.
Generate heatmaps by dragging and dropping files into https://erik.github.io/derive/
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.
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
gpx_heatmap.py. See instructions at the top of the file and
HEATMAPPY path for the file downloaded from https://sethoscope.net/heatmap/