JUMP TO:

Understanding Sport Device GPS Elevation Issues

You’ve just completed your out and back bike ride out on the flatlands of Florida, yet your GPS device is telling you that you went out and climbed the rocky mountains.  Why is that you ask?  Well, the answer is…it depends.

Outside of ‘Why is my HR strap acting erratic”, the next most asked question I get is ‘Why is my elevation chart all dorked up?’  Thus…this post.

In order to explain that though in something other than a one-liner, I’m going to dive into the two different type of athletic devices that measure elevation out there, and what causes issues with each of those.  Then I’ll talk about how to fix it (good news: it’s easy).  Don’t worry, I’ve tried to keep it all pretty easy to understand – despite the fact that behind the scenes the math is actually pretty hairy.

Types of sport devices

GPS based altimeters:

The most common type of altimeter found in consumer grade fitness devices today is one based on GPS coordinates.  This includes units such as the Garmin Forerunner series (305/405/310XT/110), but this doesn’t include most of the Edge based series, which I’ll talk about in the next section.

In a GPS-based altimeter, the unit uses a whole crap-ton of math to determine exactly how high you are.  Without getting into all the details, elevation is determined by utilizing the simple GPS coordinates and a known value called the ‘reference ellipsoid’ to determine your height about sea level, to varying degrees of accuracy.

The challenge here though is that with GPS altimeters there can be numerous inconsistencies introduced by a set of different sources.  First, is the base error rate within GPS itself – which horizontally is usually a few meters, but vertically is significantly more.  Then you add in any earth obstructions (buildings, trees, cows, etc…) that further increases the error rate.  Next, the reference ellipsoid can actually introduce further deviations.  Meaning, you could be standing at sea level, yet the reference ellipsoid may assume that that area has a deviation of –4 meters.  As you can see, this quickly starts to pile up, generating plenty of errors for even the simplest of out and back courses.  Note how upon closer inspection of the below graph, they aren’t the same if split half-way, even though this was an out and back run course.

image

Now, for most sports applications this isn’t a terribly huge issue.  It’s not perfect, but it’s functional.  In some sport applications like Skydiving or Hang gliding, the data comes out all wonky.  Before we get to the fixes though, let’s go into the next type of devices.

Barometric Altimeters:

Compared to GPS-based altimeters, barometric altimeters are downright simple, mostly because they’ve been around for quite some time.  They utilize atmospheric pressure to determine your elevation.  As you go up, atmospheric pressure decreases, and based on that and a known calibration factor you can determine exactly how high above sea level you are.

Barometric altimeters from a sports standpoint tend to give you graphs that are ‘shaped’ correctly – meaning when you go up the graphs show an incline, and when you go down they show a decline.  The challenge though with barometric based devices is that the baseline altitude can sometimes be incorrect.  This is because normally barometric altimeters are calibrated off of a known barometric pressure reading.  In airplanes for example, this ‘calibration factor’ is constantly being tweaked as the pilot flies the plane.

Given you probably don’t have air traffic control relaying the latest altimeter setting to you during you run, newer units utilize GPS-assisted altimeters that can establish a starting point using GPS.  Once that’s established they then have the remainder of the elevation data recorded via the barometric altimeter onboard.  Sorta a checks and balances system.

In fact, the Edge 500 even goes a step further and allows you to set known elevations for various GPS points.  So for example, if you know your house is at 609 feet, then you can set it such that at that lat/long it will utilize your specified elevation as your default one.

From the Garmin line, it’s the cycling devices that get the added love.  The Edge 500 and  Edge 705 use barometric altimeters.

In general, as a result elevation graphs from the Edge series of devices tend to be quite accurate.  And a good litmus test of that is when looking at any elevation chart where you start and end in the same place is to validate that your ascending and descending elevation are roughly the same, like the below:

image

Elevation Correction Options:

The great news here is that over the past few years a number of software applications have stepped in to help ‘fix’ any bad data points that show up in your graphs.  This data is generated by various organizations, usually government in nature such as NASA and USGS, that has known elevation data for any given set of coordinates.  This data is typically generated using radar that’s bounced off the earth’s surface from satellites and then measured to determine exact elevation.  This is great for correcting any activities that are ground-based (running, cycling, etc…), but less ideal of course for correcting activities that are airborne (flying, skydiving).  Hence why those activities are typically done with barometric altimeters.

Garmin Connect:

By default Garmin Connect will now do elevation correction on all imported activities from devices that don’t have a barometric altimeter, which is pretty cool.  What’s even cooler is that you can turn it on or off as you see fit.

Garmin Connect Elevation Correction Enabled

On the left hand side below your device type, you can see whether or not elevation correction is enabled for that given activity.  With it disabled, you’ll see a bit of a different picture:

Garmin Connect Elevation Correction Disabled

Note that Garmin Connect will automatically set the elevation correction to ‘Disabled’ for devices that have barometric altimeters, such as the Edge 500:

image

Sport Tracks:

Sport Tracks can do elevation correction via the elevation correction plug-in, which is available free.  I talk about this plug-in in my ‘Top 10 plug-ins’ post, but here’s the skinny… After installation it’ll go ahead and add a settings control panel for elevation correction:

image

But you can largely ignore that once installed, as I have it set to simply correct all activities automatically, which makes it look like this:

image

And you can turn it off per-activity as well if you want to:

image

Simple, yet effective.

WKO+:

While Training Peaks online (TrainingPeaks.com) doesn’t have elevation correction today, you can go ahead and utilize WKO+ to do elevation correction via a Training Peaks account.  Meaning, if you have a Training Peaks account, you can utilize that to access TP’s online data store of elevation data from USGS:

image

(Access via the Edit > Corrections menu)

In addition to the Garmin Connect, Sport Tracks and WKO+, numerous other sites do elevation correction as well – such as RunKeeper, MapMyRun/Bike, and Daily Mile.

Summary

So with that you now have the power to make all your elevation graphs look pretty (which is what really matters), and also understand exactly what’s going on behind the scenes (less important).  In general, if you want the most accurate elevation data you can get, you’re going to have to go with the Edge 500 or Edge 705 devices.  But if you want portability and versatility, you’re probably better off sticking with the Forerunner line and then correcting the elevation later on the computer.

As an aside, if you found this post interesting – you’ll probably find my giant stash of ‘How to’ and ‘Why’ type posts pretty interesting also.  They’re all stashed away in my ‘How to’ section.

31 Comments

  1. Great post - VERY informative. I use my Forerunner 305 for running, so I don't really utilize the elevation data for much, but I have often wondered how it does the calculation, and why it often doesn't look the way it felt.
    Thanks for the Info!

    Reply
  2. One potential source of error in the elevation correction are bridges and tunnels. Usually USGS data is used and this data records the earths surface and doesn't account for built environment. So when you go over a bridge the correction will show you going down and then back up again. Another source of error is that the horizontal data can be off by as much as 9 feet and if you are in a hilly area, nine feet to the left or right of you may be up or down a hill. So this can also create elevation errors even when using elevation "correction."

    Reply
  3. My Edge 305 does pretty good in computing elevations except on stormy days. As you might guess, the changes in barometric pressure when a front moves in creates some unexpected hills!

    Reply
  4. FYI, the Edge 705 does support elevation profile correction within 30 meters from a known start point. All you need is a waypoint with elevation on it. Which is quite easy to do.

    As for Barometric Altimeters go, when the weather changes, I see myself "going down an 80% slope", and the elevation quickly drops to 100 meters below sea level! This is when I wished that the Edge 705 had a manual adjustment that the Oregon 300 or the Dakota 20 provide.

    Also, if I rested too long in one place, you will see a sudden "cliff" from where you are.

    Barometric Altimeters, not perfect, but good enough for the job to make smooth graphs. But sometimes I wish I can turn it off.

    Reply
  5. Ray - a tremendous amount of your vertical error is due to the datum being used in the currently available GPS geoid model.

    Most datums in the US (and especially abroad) were created pre-satellite era. NOAA National Geodetic Survey is currently running a height modernization project (see: link to ngs.noaa.gov), which will hopefully improve vertical accuracy throughout the US.

    Reply
  6. Thanks for the very useful explanation of barometric altimeters. We sell this type of altimeter in either a digital or analog set up -- Red Oaks Trading

    Mike Blonder

    Reply
  7. Dear Ray,
    Thanks for the detailed account of the Garmin elevation data calculation. A question concerning the barometric elevation calculation: I was under the impression that the calculation was made not based on the starting point elevation, but on an elevation reading made just moments before the calculation is made. E.g., let's say you are 30:00 minutes into a ride and at that point are at 1,000'. The barometer then notes that at 30:10 you ascended 10 ft. So, it reports a 10' ascent based on an altimeter reading taken at 30:00, not one at 0:00. Even if there had been an uncorrected change in ambient barometric pressure in the 30 minutes from the start, there would be virtually no change from 30:00 to 30:10. Is this not correct?
    Also, I have been using a Garmin Edge 305 for about two months. When comparing the raw barometric readings to the corrected readings, there is an error of 30-50%. On the other hand, my Avocet Vertech records an ascent that is within a few percent of the corrected readings. Any idea why the Edge 305's raw data would be so inaccurate? Garmin has already replaced the unit once, and the second unit performs just as the first.
    Thanks!
    George Leiner

    Reply
  8. This comment has been removed by the author.

    Reply
  9. I've been reading a lot of information about elevation issues related to the Garmin GPS devices. I own a Garmin Edge 705 and understand this device should read the elevation gain over a course quite accurately based on barometric pressure. I usually use my device for cycling or hiking but have occasionally used it for canoeing. On a lake you would expect the elevation gain and loss to be virtually zero. On all occasions however my 705 Edge has shown elevation gains ranging from 4 to 22 meters. Has anyone else experienced similar results? Even with some error there shouldn't be that much elevation change on a lake.
    Any suggestions or thoughts on this matter from anyone. Thank you.

    Andy Zeltkalns

    Reply
  10. Anonymous

    I notice, that Garmin gives some error in distance calculation because it don't consider thus elevation data. The more a relief, the less final distance (in comparison with actual).

    Reply
  11. Anonymous

    I've noticed that on my Garmin 210 that distances seem underestimated (significantly) on hilly courses vs. flat ones. I live in a hilly area and often have a drop and gain of 200M or more even on an 8K run. Since there is no elevation data on a 210- I am not sure whether the GPS is taking elevation into account, but would be interested in others opinions on that.

    Reply
  12. D G Spencer Ludgate

    Over the years I have done research on Elevation Gain Statistics (including how pilots and aircraft adjust barometric altimeters). I 1) wish I found your site earlier, 2) am glad that we have come to the same conclusions. I now use your site to validate my statements.

    Reply
  13. Anonymous

    When looking at recorded elevation data from devices such as the Garmin Edge 500 one must consider time as well because changing weather patterns can dramatically effect local barometric pressure such that a out & back 100Km over say 4 hours duration shows a difference of say 5 meters between start & finish in the same position. That's the effect of our constantly changing weather and why as a GA Pilot flying under 14,000 feet I'm constantly getting updates and changing my aircraft altimeters subscale setting every 30 minutes to ensure I have a relatively accurate setting so I don't hit another aircraft going in the opposite direction 500 feet above or below me.

    If weather conditions are stable changes are small but if a change or worse front is pushing through you can expect big changes in altitude even standing still on the spot!

    Reply
  14. My Edge 500 showed a 96 ft. gain in altitude over a 35 min. run starting and ending at my house! There was some weather moving in (nothing crazy). Anyone know if that seems normal?

    When I enable elev. correction on garmin connect website, the gradients no longer look correct. There are uphill sections that I know are downhill, and vise-verse.

    There must be some way to combine the barometric altimeter data w/ the known data to give a more accurate map. I can't imagine what algorithm gamin is using to come up w/ the mess they're displaying to me.

    Reply
  15. conor

    GPS altitude is not a height altitude above sea-level, it is the reporting the height of the unit above the reference "WGS84 Geoid" - a simplistic mathematical model of the earth. The GPS has no knowledge of any geographical features or even sea level. It is not correct to say it is prone to error - the GPS is accurately measuring the height above its reference.

    Reply
  16. KJ

    OK, this post ROCKS!
    Now I can troubleshoot and make my edge 500 more accurate!

    Reply
  17. Anonymous

    Great post!

    Is there a website of some sort that will tell you your elevation accurately, so I can input this number into my Garmin 910xt as a known elevation value?

    Reply
  18. Hello,

    Thank you very much for this great article.

    I have only one question regarding the elevation correction by Garmin connect.

    Once the Elevation correction is processed on the Garmin Connect website. is it possible to generate a gpx file including the new corrected elevation of each recorded point ? I want to use this file late to geotag my photos

    Thanks a lot,
    Kimo

    Reply
  19. Craig

    I think this is a bit optimistic for elevation correction using a Digital Elevation Model.
    For most of the world (outwith the USA), the best free data available is NASA SRTM, so most websites and software are using something based on that. This has a 90m resolution grid, so heights between these points are interpolated.
    In an area with steep hills or valleys, this can be rather inaccurate. Also the SRTM data can be affected by tall buildings or trees, as it is measuring the heights of the roofs and treetops, not the ground height.

    Whether this is more accurate than a modern GPS is debatable.

    Reply
  20. Seb

    Awesome, Ray, this page is linked from Livestrong (link to livestrong.com)

    As I go around the web, I see more and more references to your website, congrats!

    Reply
  21. Richard

    I've just bought an Edge 510 and can see some quite interesting artefacts when importing into Strava. Most notable is how noisy the reading is. That said, the noise amplitude is only a couple of feet, so quite low when you think about it. This especially considering the vibration and air flow around the device while it is moving. Our roads are pretty poor in places so there's a lot a vibration even on road. I wonder if some of the odd spikes are due to vibration from potholes which cannot always be avoided.

    I produced a comparison against corrected data in Strava at m0rjc.me.uk which has restored my confidence in the device. The two graphs are quite close with the Garmin showing details such as a cycle path bridge over the railway.

    Reply
  22. Lee Hill

    I had elevation data on Garmin Connect up until Feb 18 2014, and now the last five or six runs Feb 19 on don't have it. Elevation Correction enabled/disabled does not show up in my "Additional Information" window. I have the basic FR10 and the runs have the same Garmin firmware version both before and after so that wasn't it. Could it be that Garmin just decided to disable elevation correction on some of their less expensive devices? I have not changed any settings on my watch, the only thing I can think of I did differently was upload only "selected runs" instead of "all new runs" the last couple times.

    Reply
  23. Lee Hill

    I hope they're not removing functionality the way Strava did last year.

    link to dcrainmaker.com

    Reply
    • Rainmaker replied

      Actually, I think it's a temporary thing that's broken. As even on other device, you can't toggle the setting on/off anymore - it's stuck one way or another. I noted it to them last week. Basically, I think they broke elevation correction across the board.

      Reply
    • Lee Hill replied

      Thanks for clearing up the mystery! Fortunately elevation on GarminConnect was fixed again sometime between Mar 17 and Mar 20 (after being down for a month). Is there any way to go back and re-enter my runs from that month? I'm a little nervous about deleting the runs I've already downloaded in case I won't be able to upload them off my Garmin a 2nd time.

      Reply
  24. Michael Heimes

    Here's something I don't get.... If I run 20 miles and it thinks I had 3000 feet oc cumultive climb. Then it "corrects" the amount of climb down to 2600 ft. Wouldn't that mean I didn't run 20 miles?

    Reply
    • Rainmaker replied

      No, because almost none of the devices on the market track 3D distance, rather, just 2D distance. Only the Fenix lineup has the ability to track 3D distance.

      Reply
    • Michael Heimes replied

      I'm sorry if I'm not getting this, but I'm just not. If you and I travel a straight line, parallel to each other except one of us climbs and descends 500 ft, the one who did all the climbing covered more ground, correct? But if a satellite it looking down, it sees us both starting and finishing at the same point. Or is that just not how it works?

      Reply
    • Juro replied

      Yes, therefore all GPS devices except Fenix with 3D distance explicitly turned on will see you have travelled the same distance and will ignore elevation data and their eventual correction.

      Reply
    • Rainmaker replied

      Correct.

      Reply
  25. Lee Hill

    Garmin Connect elevation data is gone - again. When I uploaded my latest run today I got a dialog box about downloading Garmin Express to try the new "modern" Garmin Connect (as opposed to "classic" which I'm evidently using) and expect there's a connection.

    Reply

Post a Comment

Your email address will not be published. Required fields are marked.
If you would like a profile picture, simply register at Gravatar, which works here on DCR and across the web.

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>