The TopoFusion Climbing Analysis Dialog

One issue of interest to the developers of TopoFusion is the various methods available for the computation of the total ascent along a GPS track. We often hear wildly inflated claims of XXXXX feet of climbing--and it's by GPS! But how were those numbers computed? The Climbing Analysis dialog provides a tool for comparing a number of different data sources as well as algorithms for computing the total elevation gain along a track.

The climbing analysis dialog is under the Analysis Menu. Below is a screen grab of the dialog:

The file to be analysed is selected in the dropdown box (it must be loaded in the main TopoFusion window). Below the totals for the various algorithms are listed. A custom method is available with the following settings:

  • Data Source -- Either GPS (what's in the GPX file) or from DEM data (Digital Elevation Model).

  • Minimum Gain -- The minimum continous gain required for a climb to be counted.

  • Subdivide segments -- Whether to divide segments longer than the spacing, interpolating at "spacing" intervals if longer. TopoUSA appears to be doing this.

  • Check moving time -- whether to consider elevation gained while the GPS wasn't moving or not. TopoFusion does not count this as legitimate gain, since it's often due to GPS error.

  • Box Filter Width -- A box filter is a simple way to smooth noisy data. All GPS acquired (and DEM as well) data has errors, and since elevation gain is a sum, it is generally good practice to apply some sort of smoothing. The width of the filter is how many surrounding points are used for the average elevation at each point. So a wider filter means more smoothing and, correspondingly less climbing. You can get a general idea of how noisy a GPX file's data is by seeing how much effect increasing the width has on the elevation gain.

  • Presets -- sets the custom algorithm to the settings of the different algorithms, so that it is clear what is being computed for each one.

  • DEM interpolation method -- effects how DEM elevations are computed. As far as we can tell, other programs / sites are using bilinear. This setting effects all of the DEM calculations, not just the custom algorithm. It does not effect the interpolation method used for 3D model generation.

The presets dropdown can be used to see what the settings are for the algorithms. It simply sets the custom algorithm to the settings of the various presets.

Add DEM Elevation to Track - This button will add (replacing any current data) DEM interpolated elevation values to the currently selected file. This is very useful for tracks drawn with the pencil tool (though if DEM data is available while drawing, elevation will automatically be added).

Filter (Smooth) Elevation Data - Pushing this button will a apply a box filter of width 5 to the currently selected file (all tracks within the file are affected). This is a good idea to use after adding Elevation data to the track. The more times you hit the button, the smoother and less noisy the data will be.

Some observations: TopoUSA offers the most inflated climbing numbers, especially when the track is in a fairly steep (mountainous) area. In general, using DEM interpolation inflates the numbers considerably over GPS acquired data, especially if it barometer corrected (e.g. eTrex 30). However, in flat areas the opposite is true: GPS acquired data tends to be much higher than DEM interpolated values.

What to trust, then? Well, as in any measuring process there are errors involved, and a typical way to deal with small errors is to smooth the data. This is exactly that Maptech appears to be doing by only counting climbs that are larger than 10 meters. Popular websites such as Strava and Garmin Connect are also smoothing data before computing elevation gain. From experimentation it a box filter width of five seems to be what these sites are using.

Doing some sort of smoothing is extremely important when using DEM interpolation as the resulting profiles are riddled with noise. When looking at climb by the start and end elevation it is easy to see when DEM (and GPS elevation) is inflating it (assuming you know there are no downhills). Smoothing by something in the neighborhood of 10 meters seems to bring most climbs back to reality, though it can sometimes be to harsh to a GPS acquired elevation track.

TopoUSA is the worst of them all--subdividing individual segments while not doing any smoothing. Subdividing is not a bad idea in general, since small ups and downs could be missed by the GPS track. However, since the GPS track logging algorithm in Garmin units seems to be mindful of speed changes it is unlikely any major changes in elevation (from climb to descent or visa versa) will be missed. This is not really an issue anymore as many GPS tracks are collected at a rate of 1 per second.

A word on resolution

Since elevation gain is a sum, it's important to be aware that the result is highly sensitive to the number of points in a track. The more points, the more error, the more differences and the more gain. Try simplifing a file and comparing the elevation gain afterward. With a high resoltion file (one point per second) it becomes even more important to smooth the data.

What TopoFusion does

The climbing numbers displayed in the main form (active list) of TopoFusion are from whatever data (usually GPS acquired) is present in the GPX file. A box filter of width 5 is applied (as of version 5.25+) to smooth the data. Also if the track has time data any segments determined to be "not moving" are thrown out--this helps eliminate many errors.