How to determine the most accurate elevation algorithm

I use an Android GPS cycling app to track my bike rides and I would like to get a reasonably accurate estimate of the total ascent I did on a ride. I understand that GPS is very inaccurate at determining elevation, so I have been importing the resulting GPX files into several sites that use mapping data to determine elevation, and I've found they're ridiculously inconsistent. For example, from a 30-mile ride I get the following climb data from four sites using the same GPX file:

``````CardioTrainer   980
Strava          1085
MapMyRide       554
RideWithGPS     2131
``````

The results are consistent over multiple rides, and I can add more sites with an equally mixed set of results.

I think I can easily toss RideWithGPS as a badly flawed outlier based on subjective experience alone, but MapMyRide is consistently about half the ascent of the others, so it makes me wonder who is off by 2-to-1.

My question is, how can I determine whose algorithm is the most accurate without spending hundreds on a device with a barometric altimeter?

One option would be to compare the algorithms to your GPS tracks using a program such as GPS Visualizer. This program allows you to incorporate the best available DEM elevation data (i.e. usually 30m resolution) with your GPS data to produce an elevation profile. From there simply compare the min/max/range etc.

• Unfortunately, the graph presented by GPS Visualizer doesn't provide enough detail to discern which of the sites are most accurate. However, it was useful so I'm accepting the answer. What I did was use GPS Visualizer's elevation lookup tool to replace my GPS elevation data with DEM data, and then wrote a small program to read the file and calculate ascent myself. As it turns out, Strava is highly accurate, CardioTrainer is close, and the other two are completely wrong. Jul 31, 2013 at 18:06

Most of these systems probably leverage an elevation dataset.

For example the USGS National Map offers a web service to query elevations based on latitude and longitude. It uses 3DEP which has 1/3 arc-second (~10 meter) resolution.

https://nationalmap.gov/epqs/

For apps that allow offline updating of elevation they probably use the SRTM1 or STRM3 elevation datasets which have 1 arc-second and 3 arc-second resolution respectively, but the datasets are small enough to be stored locally.

http://www.cgiar-csi.org/data/srtm-90m-digital-elevation-database-v4-1

The discrepancy between most of those apps is a result of sample rate. If you calculate elevation change from one trackpoint to next across the whole set you will get a jagged line similar to what you see near 5km in your track. This jagged line, is most likely the result of error, but can produce a large amount of elevation gain to be measured.

This is where smoothing comes in. By smoothing the elevation profile you get a more realistic measurement of elevation gain. There are many techniques for applying smoothing to GPS track, everything from lowering the sample rate, to peak/valley detection, to Kalman filters. Depending on the approach the app uses the results will differ.

My guess is that looking at your results that Map My Ride uses a long (less frequent) sample rate where as Ride With GPS uses a short (more frequent) sample rate.

All that being said, I think going forward my money would be on Strava. Mostly because I don't have to speculate with them, and what their doing is well documented and I consider to be a smart approach. Knowing that barometric elevation data is currently one of the best abundant data sources for elevation, they are creating a Elevation Dataset based on barometric measurements. So if another runner/cycler using a device with a barometer had a reading near your location, they use that more accurate data.

In the case where they don't have barometric data available they use their legacy system, which leverages peak and valley detection, to smooth the elevation profile of your GPS track.

https://support.strava.com/hc/en-us/articles/115000024864-Announcing-Strava-s-Elevation-Basemap

https://support.strava.com/hc/en-us/articles/216919447-Elevation-for-Your-Activity

https://support.strava.com/hc/en-us/articles/216917087-Elevation-Gain

If you are looking for a good app to record your activity i suggest you whip live, we tested it alongside strava, koomot and other app and it was the most accurate compared to a garmin device that has a barometer.