I’ve finished compiling the GPS data for a recent outdoor adventure. This is my first trip with a GPS device and here is how I realized it was a wonderful addition to my collection. I did a number of different things with the data to slice and dice it. The first thing was to import the raw GPS data into the Garmin BaseCamp application as shown in the image below. This is the program that comes with the Garmin 24K U.S. West Topo map set that includes all of California. The program is rather crude and offers limited features beyond management which topo maps are loaded into the Garmin handheld unit. However, it allows you to export the path data for a trip into Google Earth which is a much more powerful visualization tool. The Garmin application reports 53.5 miles traveled over 11 hours and 30 minutes. I started the GPS route a little before we left the parking spot.
The result of exporting the data into Google Earth is shown below. This overlays the GPS path with Google’s satellite data. Install Google Earth and use it to manipulate *.kmz files and duplicate similar results. The top of the display shows the teal colored trace from the GPS on the satellite image. The red graph below shows the elevation profile over the left to right direction of the path traveled. Note, the red elevation profile does not appear by default when loading the *.kmz file. You need to display it by right clicking on the path icon(not shown) and selecting the elevation profile.
While looking at data in Google Earth I discovered a bug to be aware of if you use it to post process the dataset. When the size of the Google Earth window changes in horizontal length the elevation profile graphic display also expands or contracts. The problem is that when it contracts the data is reduced down and looses fidelity as displayed in pixels. The Google Earth program seems to be pulling its trip data statistics from the same set of data used to plot the pixels of the graph. Rather than the original dataset that is shown in the teal path plot as recorded by the GPS. Route length is shorter and elevation gain is lost when the Google Earth window is made more narrow. This is shown in the picture below. The larger horizontal length image reports a distance of 51.0 miles and 8234 feet of elevation gain. The smaller image shows 47 miles traveled and 6515 feet of elevation gain. When dynamically moving the Google Earth window the red graph plot area continually updates, and right along with it the data statistics summary area. This is erroneous and dataset statistics shouldn’t change value with the resolution of the display plot. They are only limited by the resolution of GPS points and Google Earth is reporting false results for narrow windows. This elevation profile functionality is new to Google earth so I would assume they have a few things to work out and a bug report was submitted. This leads to the next question, what is the best answer for the final statistics that can be pulled from the dataset as recorded by the GPS?
At this point Garmin BaseCamp and Google Earth have failed to give me a number I can trust for elevation gain. However, Google Earth hinted at the correct value as the length of the horizontal plot grew longer and greater detail was captured in the final stats calculation. If I had a really long monitor I’m sure the values would converge. In order to determine the final answer it became apparent that I would need to process the raw *.gpx file data as recorded by the Garmin GPS. I did some of research about this and discovered a blog article about applying a smoothing filter to the elevation dataset which improves the accuracy by reducing noise in the path. The posting even features code in the Ruby language to manipulate the dataset which can be easily converted to Matlab or Scilab. Fortunately for me I didn’t have to convert the code because this crazy mountain biker guy has a whole site dedicated to mashing up ride GPS data and maps named http://www.mtbguru.com. I added the *.gpx data from our backbone trip to his site and it is accessible from this link. With the filter algorithm he uses applied to the dataset it shows a total elevation gain of 8555 feet. The results are shown below in a screen shot from the link above.
After reading his article about GPS data processing I realized that it would have been nice to get the Garmin Etrex 30 GPS which features a built in altimeter. This helps improve the accuracy of the elevation data by supplementing the triangulated GPS signal. In an effort to better understand the dataset I used http://www.gpsvisualizer.com to pull information from the 30-meter horizontal resolution NASA Space Shuttle Radar Topography Mission (SRTM1) and the U.S. Geological Survey’s National Elevation Dataset (NED). Copies of both databases are stored at GPS Visualizer for public access. Simply use their online scripts to create *.gpx elevation data pulled from the topographic databases based on the GPS coordinates of location. The results from the two databases show greater elevation gains of 9069 feet for NASA and 10162 feet for NED. The NED data is considered to be a better source. Screen shots of the profiles are shown below and accessible at mtbguru.com from these links, NED and NASA.
Summary of GPS Dataset Information
GPS Miles Traveled: 53.5 miles
TJ’s Calculated Miles Traveled: 55 miles
Google Earth Satellite Elevation Gain: 8234 feet
Garmin GPS Elevation Gain with Filtering: 8555 feet
NASA Space Shuttle Radar Topography Mission Dataset Elevation Gain: 9069 feet
U.S. Geographical National Elevation Dataset Elevation Gain: 10162 feet
Average of Mileage Data Points: 54.25 miles
Average of Elevation Gain Data Points: 9005 feet
Thanks for Reading,