This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Strava (not Garmin after all) broke climbpro

I've seen a few posts on this and made some myself, but I now have conclusive evidence that Garmin have broken climbpro in the transfer of routes from Strava (and maybe other platforms) to Garmin Connect.

The problem is that Garmin recalculates the elevation data, but makes a mess of it. The image below is the elevation of the same route (via GPSVisualizer), one trace is  from Strava, and one is from Garmin Connect after transferring it through the API (favourite the route in Strava and it comes through automatically).

Heres the Garmin vs Strava elevation at the start of the route

and here it is at the end

Heres the full trace, at the start of the elevation profile its fine, at the end its way out.

  • Exporting the file from GC as GPX may add yet another place where things can change. GC loads the data from Strava as FIT and delivers it the devices as FIT. It never converted to GPX.

    That was why I was using the FIT file from GC. If Strava supported a FIT export then a FIT to FIT comparison would be the best test.

  • Let's try comparing the FIT and GPX files from GC for the same synced Strava ride.

    I would like to eliminate the fact the GPX conversion from FIT may be throwing these compassions off.

  • So I needed to zoom in to see the issue. This is is using the Flanders GPX from Strava and the FIT from GC

  • So I needed to zoom in to see the issue. This is is using the Flanders GPX from Strava and the FIT from GC

  • Now I have an example I think I have what I need to do some more investigation. 

  • Strava doesn’t export fit, just gpx or tcx, but actually the API doesn’t use a fit file, but an array of geopoints. (Coordinates and elevation). I only recently got access to the api and haven’t tried it as yet. I did try comparing Garmin gpx and fit and there wasn’t a difference. 

  • You are correct that the API delivers position and elevation. That is what I'm currently looking at. How distance is being computed. FIT uses semicircles. 

  • Theory incoming:

    My best guess is its related to the gaps between GPS points and the haversine formula to calculate distance. I think Garmin are adding intermediate points to the strava data, and they're too close together, causing the haversine formula to give an error as the distance between points approaches 0 due to lack of precision. Garmin is then not pushing the new elevation data point to the array, repeat a few times and the data falls further behind. If the theory is correct, then the errors will happen most frequently when the gps points in the gpx file are closest together.

  • That is close to what I came to. It is a compounding data precision calculation issue due to the difference in the number of data points.

    The GPX file has 3687 data points. If you load this to the Edge it creates a FIT file with 3687 data points. It has a total distance of 175787.2 meters. This gives an average spacing of 46.7 meters.
    The FIT file has 11789 data points and gives a distance of 175907.7 meters. This gives an average spacing of 14.9 meters.
    The difference in length is 120.5 meters that may not be much of an error on a course of this length, but is a very noticeable distance if a climb start/end is off by 120 meters.

    A small error in each calculation gets compounded by the number of calculations. Some may be over length, some may be under length, but you have no way of knowing for each course what the distribution will be. This is why not everyone is complaining about this. If you are lucky the over and under values balance each other out.
    If I take the record that is nearest to 100 Km from the GPX converted file and find that location in the FIT file from GC the distance is off by 100 meters.
  • That is close to what I came to. It is a compounding data precision calculation issue due to the difference in the number of data points.

    The GPX file has 3687 data points. If you load this to the Edge it creates a FIT file with 3687 data points. It has a total distance of 175787.2 meters. This gives an average spacing of 46.7 meters.
    The FIT file has 11789 data points and gives a distance of 175907.7 meters. This gives an average spacing of 14.9 meters.
    The difference in length is 120.5 meters that may not be much of an error on a course of this length, but is a very noticeable distance if a climb start/end is off by 120 meters.

    A small error in each calculation gets compounded by the number of calculations. Some may be over length, some may be under length, but you have no way of knowing for each course what the distribution will be. This is why not everyone is complaining about this. If you are lucky the over and under values balance each other out.
    If I take the record that is nearest to 100 Km from the GPX converted file and find that location in the FIT file from GC the distance is off by 100 meters.