Wednesday, July 2, 2014

Merging Activities

It happens to the best of us; for whatever reason you have an issue with your ride data.  Whether you hit the reset button on your favorite bike computer at a bad time, or you end up running out of juice on your smartphone, there are times that you end up with multiple data files for a single event.  This can be immensely important if you are looking to track efforts, or have a data issue while completing an online Challenge.  For these types of scenarios, it is very easy to "stitch" two rides together.  For these examples I am going to reference a notepad utility and online activity site.  I personally use Notepad++ for Windows for editing, and Strava for my data management.

Obtaining the Data

The first thing you need is the GPS data to be merged.  While Strava has a built-in export command, the data that it will export will be in GPX (GPS Exchange) format.  While GPX is an open standard, it has been extended by several manufactures to include customized data.  Thus when exporting a ride using GPX some data, such as  Heart Rate information, can be lost.  The alternative is to export the data using the TCX (Garmin Training Center XML) file format.  In order to export the data using TCX format, you have to use a hidden feature on Strava.  Instead of using the export button, you add "/export_tcx" to the end of the URL string for your ride.  After you hit enter the ride data in TCX format will be saved to your local downloads directory.  As a general rule, you will need to download all activities in the same format.  

If you upload your rides to Garmin Connect, you can also easily export them in TCX format.  In both their Modern and Classic modes, there is an export button with multiple options available.  Once you select TCX the activity download will start.

Classic InterfaceModern Interface
Merging the Segments

Once you have downloaded the activities you wish to merge, you need a text editor. Because both GPX and TCX files are in a standardized text format (XML), it is relatively easy to find the sections that you are looking for. TCX files are a little easier to read than GPX files, but they both have a similar layout. For those that have done much HTML design, XML markings should look familiar. What you are looking for is the starting section for event. In TCX files this is the <Lap ...> tag. For GPX files you are looking for the <trkseg> tag. At the end of the file should be a corresponding closing tag ( </Lap> for TCX, </trkseg> for GPX) that marks the end of the event.  The information between the opening tag and closing tag is your actual activity data, so be careful to not delete or change the format of that section of the file.

To merge the two activities copy everything between the event segments, including the opening tag and closing tag, from the later of the two activities to the earlier of the two activities. You should be pasting the newer data at the bottom, in between the closing tag of the original activity (</Lap> for TCX, </trkseg> for GPX) and the closing of the activity itself ( </Activity> for TCX, < /trk> for GPX). After pasting the second activity into the first save the file as a new name (typically File, Save As), remembering the name and location.

Select everything between and
Save As a new filename, using the same .tcx extension

Uploading the Results

Once the new file is created, it is time to upload the combined data.  In Strava, there is an option to upload files as well as importing directly from your chosen fitness device.  Once you click the upload button, select File from the left menu.  From there you can choose the new combined file.

The new file will now upload.  If you are replacing a previously uploaded activity, you may get an error saying that your activity is a duplicate, specifically of the earlier of the two activities.  It should be best practice to delete the original activities, if previously uploaded, from your feed.   


Since the end result is two files that are merged together, there may be some errata.  This should be expected, as the data set is most likely not complete.  The most common issue is that you are going to have a straight line that connects the end of the first activity to the beginning of the second.  Currently Strava will also add this distance into your total as the crow flies, and take the timestamp difference between the two activities and use it for your average speeds.  If there is a large difference in location and/or time, it may create a rather large amount of data error.  

Data Errata
This seems to be the most common issue I've encountered in the rare occasion that I've had to stitch two activities together.  If you do not delete any previously uploaded data, you may also have data duplication.  Depending on the terms of use on the website, this can also be considered a breach of the Terms of Use, as you could be using this strategy to upload data that is not accurately depicting the efforts put out.  Be sure to know what the fitness site that you are using says about modification of data prior to using these methods.  Currently Strava does not explicitly state that this method is disallowed, but that could change over time depending on continual abuse.

For the rare time times that I have ended up with data issues that have resulted in multiple activity files, this method has shown to be useful.  For those that track data using device files and fitness sites, having a method to accurately display fitness data is helpful.  

No comments:

Post a Comment