With the recent resurgence in BIKE GODS (20 rides, 3 hikes, 2 road runs, and 1 mud run in just over 6 months), I've been using my old Palm Vx with a Magellan GPS attachment to acquire elevation and ground track data for these activities. After each ride, I transfer the data to the computer and use a series of custom scripts and programs I've written to create elevation profiles and compute total elevation gain based on this data. Each ride page then displays this information.
This GPS receiver (GPSr) does a reasonable job considering that it's 10 years old, but it has its limitations. Not only is its precision not as good as that of a modern GPSr, but its battery life is pretty poor. I've lost some data on more than one occasion because the Palm Pilot fizzled out before the end of a long ride, and its battery isn't replaceable in the field (I actually replaced the original battery a couple of months ago, using a hairdryer to melt the glue holding the outer shell in place; still didn't give me enough juice to last for those longest rides).
So last month, I began my search for a replacement GPSr. Among other criteria, elevation precision was a primary concern. Because of the way GPS works, all GPS receivers have poorer precision for elevation than for horizontal position. To get better vertical precision, you really need to be able to see the GPS satellites that are on the other side of the earth; unfortunately there's a big planet in the way!
I ultimately settled on the Garmin eTrex Legend HCx as the sweet spot. It offers a lot of nice features that my old unit doesn't have, but I'll focus on elevation here. As long as the elevation data was as good as or better than my old unit, that would be perfectly suitable. If not, I might have to move up to the more expensive eTrex Vista HCx which includes a barometric altimeter that uses air pressure to measure elevation more precisely than the GPS.
Testing 1, 2, 3...
My first test of the eTrex Legend HCx, taking it along for my commute to work, showed that it would be perfectly fine: the elevation profile looked smooth enough and followed the known hills and valleys quite well. That's all I really want or could hope for - a reasonable approximation of my total elevation profile, with very few imaginary hills and valleys to throw off the total elevation gain calculation. As a sanity check, I compared the GPS data to elevation data from the USGS. The USGS data wouldn't be terribly precise, but it would give a reasonable ballpark.
But my next test was a disaster: I took the dogs on a walk and brought both the old and the new GPS receivers. While both followed the major hills and valleys on an extremely coarse level, the eTrex added a significant amount of noise, resulting in phantom climbs and descents that weren't really there. While I might believe the total elevation gain I computed from the old Palm Pilot (about 279 feet), the number derived from the eTrex (762 feet) was nearly three times as large! Once again, USGS data provided a crude sanity check.
Further tests, including a second walk along the same route confirmed this: elevation data from the eTrex Legend HCx is much more volatile than that from the old Palm/Magellan GPSr. I'm not entirely sure why this is, because the eTrex has far better horizontal accuracy and precision than the Palm+Magellan. One would think that vertical precision, while not as good as horizontal, would also improve. I can only surmise that the eTrex's increased sensitivity may be a liability when acquiring elevation data - extra sensitivity may mean extra noise, which is exactly what I see. Either that, or the Magellan software on the Palm Pilot has a better algorithm for smoothing out the noise without losing too much accuracy.
Regardless, it was clear that the eTrex Legend HCx would not be suitable for my purposes. It was time to move up to the eTrex Vista HCx and see what its barometric altimeter could do. I was skeptical of this option because I know that air pressure changes over time as the weather changes. How could it be more accurate if the air pressure at a given location shifts over the course of a day? I was about to find out.
The Pressure's On
It turns out the the eTrex Vista HCx has an algorithm to use both sources of elevation data at its disposal: GPS and the barometer (this is called "Auto Calibration" in the settings). Air pressure at a given location will change slowly over time, so the barometric altimeter should be stable over the short term but not over the long term. Conversely, GPS elevation data is unstable over the short term as satellites constantly move in and out of view, but it gives a stable average over the long term. A good algorithm can leverage these two data sources to get the best of both worlds: a stable elevation provided primarily by the altimeter over the short term, but adjusted over the long term using the the GPS trend to correct for changes in air pressure.
Success! The first test of the Vista, another dog walk, showed exactly what I was looking for: a relatively stable elevation profile that roughly matches the known hills and valleys. The difference is striking: both the Legend and the old Palm Pilot are all over the map (so to speak) in their elevation data. The Vista's data has small bumps, but these are easy to smooth out. More importantly, track points measured at the same location and different times were within about 10 feet in elevation, which is about as good as we can expect it to get. We appear to have a winner.
A mountain bike ride the next day provided further confirmation of the Vista's abilities. It also provided a plausible explanation for why the Legend was reasonable on the commute but really bad on the dog walks.
The mountain bike data shows moderate to good agreement between the Legend and the Vista on most of the initial climb and corresponding descent of that same hill. This section of trail is a tough ride on sunny days, as the terrain is wide open with little shade. Farther down, under heavy tree cover, both the Legend and the Palm Pilot go a little nuts. The GPS signal is degraded under the trees, and it really shows. The Vista relies primarily on its altimeter here, showing a fairly smooth descent all the way down.
So the Legend gives reasonable elevation only when fully out in the open, with unobstructed views of the GPS satellites in the sky. This explains the good data on my commute, which is primarily wide open freeway. The dog walks were in the neighborhood with trees and houses nearby, partially blocking GPS signals and preventing a good determination of elevation.
I still find this a bit odd because horizontal position didn't suffer nearly as much under these conditions. The receivers in both eTrex models are quite sensitive, and can lock onto GPS satellites even inside my house, with an estimated horizontal accuracy of 10 feet. They far surpass the Palm/Magellan GPSr in all facets except GPS elevation.
Calibrate Before You Elevate
The Vista has a function that allows you to manually calibrate its altimeter if you know the exact elevation where you are. After initial calibration, the Vista will only use GPS to correct for fluctuations in air pressure if the Auto Calibration setting is turned on. This is recommended to provide the best possible elevation data; otherwise it will use the current GPS elevation as its starting point, and that may or may not be very close to reality at any given moment.
This is clearly illustrated in the next ride's data: we started from a point where I didn't know the true elevation, so I had to let the Vista trust the GPS data to start. The GPS reading must have been too high at this particular moment, because the same location at the end of the ride showed an elevation over 40 feet lower. If I'd known the exact elevation to start, I suspect both readings would have been much closer.
I haven't decided how I want to handle calibration when I don't know the exact elevation. Maybe the USGS data can give a good enough approximation; or perhaps even the topo maps I have loaded in the GPS unit will be close enough. But whenever I start a trip from home, I can calibrate precisely because I know that the end table in my living room is at 732 feet above sea level. I determined this by leaving both eTrex units on the table for a period of time, set to save a tracklog point every 6 to 10 seconds. I did this over several days and nights and then averaged the elevation readings. Should be pretty close.
This plot of stationary GPS receivers over time shows that, indeed, the GPS-derived elevation (from the Legend) can be off by up to about 90 feet in either direction. Thus if the Vista happens to self-calibrate using GPS data at the far end of being too high or too low, you'll get a situation exactly like we saw on the ride.
We also see that the Vista's elevation readings are tighter, oscillating between about ±20 feet of the true elevation, with about 70% of data falling within ±10 feet. This is, of course, caused by fluctuations in air pressure as well as in the correction supplied by the GPS data. Additionally, the stability within a few hours (~600 readings per hour in the above chart) is excellent: over a 4-hour sample period, all readings fell within ±10 feet, with over 90% inside ±5 feet.
Finally, I decided to test what happens when the Vista self-calibrates to a bad elevation based on GPS. How long would it take to return to the proper elevation? For this test, I deliberately calibrated the elevation to 800 feet — 68 feet too high — and let the unit sit on my end table overnight.
It looks like the Vista returned to the proper elevation after about 4 hours. This sounds about right, considering that the Hulda Crooks ride above took about the same amount of time. I would expect the elevation for the end of that ride to be much closer to truth.
Additionally, I suspect that the elevation might converge faster if the unit were left outside with a clear view of the whole sky. For that matter, the Stationary Elevation plot above may be even tighter without a roof and walls to degrade the GPS signal. But that's another test for another time.
If you don't care much about elevation precision or accuracy, you can't go wrong with any of the GPS receivers shown here. Likewise if you just want an approximate elevation reading when you're out and about. Any of these units will get you within about 50 feet the vast majority of the time, and within 100 feet pretty much all of the time. But if you want good elevation profiles with the least amount of noise in the data, a unit like the eTrex Vista HCx with a built-in barometric altimeter is your best bet.
I'll be returning the Legend now and retiring the Palm Vx + Magellan GPS combo.