# How to calculate the total ascent along a path

I am working on a series of footpath routes and have been asked if it possible to calculate the total ascent that a walker would have climbed if the travelled along each route? I know that it is simply not a case of max-min because the footpath is not just one single climb but has many stages where the path ascends and descends.

Presently, I have the data as a series of polylines and an underlying dtm in ArcGIS but do not have a spatial analyst extension. If anybody has any suggestions that would be great because I am quite stuck on this and never like to be beaten! I have GRASS GIS and QGIS too so quite happy to consider external methods if this will help answer the question.

Many thanks!

-

First convert your line layer into a point layer. You could do this with either the Feature Vertices To Point tool in ArcGIS or Polyline to Point tool using ET GeoWizard. Once you have a point layer in QGIS you can use the Point sampling tool to extract the elevation data from a raster. Below is a tutorial showing you how to use the Point sampling tool in QGIS. You can then calcuate the elevation difference from the starting and ending point vertices for each path.

How to sample raster datasets using points in Quantum GIS (QGIS)

-

might try GPS Visualizer's "Draw a profile" tool: Draw a profile

-

Here's a GRASS solution: Calculating difference in altitude along lines using GRASS

Worked great for me.

-

A nice, fun problem. I'm not sure if you have access to FME or to the Data Interoperability Extension, but if so I felt inspired to create an FME solution, and you can find details about it on my FME Evangelist blog.

If not, maybe others will find this (or the methodology) useful.

-

I think this is correct and please can someone step in if it is not. I think the easiest solution is to calculate total ascent is to use excel, method below:

[1] Convert the line to points

[2] Export the data to a format compatible with excel

[3] Make sure the track is going from start to finish - if not then reorder the data

[4] Enter the formuala "=RC(-1)-R(-1)C(-1), to work out the altitude change between each point, then apply to all rows in the table

[5] Use the Excel function "Filter" to select all those values that are positive

[6] Add up all of the positive values

[7] This should be equal to the total ascent along the route

-
Whatever works! I think the other solutions offered are likely going to be more robust/reusable than Excel, however. – blah238 Aug 12 '11 at 20:53