Slope-sensitive bicycle routing

Bicyclists are sensitive to the topography. They are either eager for challenging up- and downhill routes or they want to ultimately avoid steep slopes. Although some routing applications offer option such as “avoid steep hills/slopes/etc.” it is still unclear how the topography can be reasonably considered in routing recommendations – in fact, there are lots of influential variables to be considered from trip purpose to technical equipment.
Other, more conceptional and still open questions are first, the degree to which the topography contributes to route choices and second, how to handle downhill sections in a recommendation model. In this post I’ll concentrate on these aspects.

There are some (not too much!) scientific publications and applications which deal, mostly among others, with the topography’s influence on route choice or recommendation models. Here is a short (and very probably incomplete) overview:

  • Arndt Brenschede’s work on this subject, which he partly presented at this year’s FOSSGIS conference (link internet to presentation), mainly deals with the question on how to extract slope information from SRTM data and use them for further modeling. For his demo-routing application he applies a hysterese filter the processing of SRTM data and a kinematic model for routing recommendations. The results are of good quality for long-distance routes. For urban route planning the resolution of the data is too coarse.
  • In Menghini et al. (2010, PDF internet) a route choice model is set up based on a large data set of GPS tracks. Concerning the question of topography for routing recommendations, they conclude that the maximum gradient is by far more relevant for route choices than the average gradient.
  • Sener et al. (2009, PDF internet) and Hood et al. (2011, PDF internet) both found that the bicyclist’s sex and the trip purpose ultimately influence the preference/avoidance of steep slopes. Women and commuters tend to avoid routes with high gradients, whereas men – especially in cases of leisure trips – generally prefer hilly routes.
  • In a very interesting study by Parkin et al. (2008, PDF internet) 3% gradient is defined as threshold for when slopes are perceived as being (too) steep for bicyclists. The advantage of this study is, that it focuses exclusively on commuters. Thus the samples are better comparable than in most other studies. The downside is, that the calculations are done for census blocks and not network-based.
  • Similar findings are documented by Broach et al. (2012, PDF internet). They define 2% gradient as critical threshold. Additionally they found out, that bicyclists are willing to tolerate up to 70% longer distances in order to avoid uphill sections with 2-4% gradient.
  • Troped et al. (2001, PDF internet) were able to measure the influence of a hilly topography on the frequency of bicycle usage. In this context they defined the term “steep hill barrier”, which stands for a limited access to adequate bicycle infrastructure due to big height differences. Interestingly, surveyed users systematically tended to overestimate the slope gradient. Thus they perceived slopes steeper as they actually were.

Summing up a first literature research we can conclude the following:

  1. They quality/resolution of the data is decisive for any further analysis.
  2. General assumptions for all bicyclists are hardly to be made. Sex and trip purpose are two key factors for the tolerance of uphill sections.
  3. 2-3% gradient can be regarded as significant threshold.
  4. The bicycle’s share in the modal split and route choices are influence by the terrain.
  5. In all studies and applications only uphill sections are considered. I’ve found nothing about downhill sections.
  6. The role of topography in this context is still subject to research (see Heinen et al. 2010, PDF internet)

In the context of a current project we were asked to develop a demo version of a slope sensitive routing application for bicyclists. The focus of the project primarily lies on safety. Thus the existing routing application provides not only the shortest route but also the safest (or most bicycle friendly). This is how we’ve built a slope sensitive function on top of it:

I. General considerations and prerequisites


“What goes up must come down.” (Isaac Newton)

If routing applications offer the option to avoid steep slopes, generally uphill sections are meant. Although we know since Newton that “what goes up must come down”, it seems that nobody cares about downhill sections. At least from a safety point of view this is a big shortcoming!
For the recommendation of the most bicycle friendly routes the current routing engine minimizes the cumulative value of a safety index (for how this index can be calculated refer to a previous post internet). In the slope sensitive version this index should be manipulated according a pre-processed, continuous function and potential user input.

II. Terrain data

generalization_slopeIn order to derive the gradient for each segment of a digital street network, a digital terrain model with 10m resolution was overlayed with the line geometry. Thus a height value for each vertex of the line geometry could have been extracted. For the calculation of the mean gradient the height difference of the start and end point of each segment was calculated. Based on this, together with the segment’s length, we derived the gradient for both directions (sign!). Due to the comparably short length of the segments in our network (< 100m) this generalization (see figure) could have been tolerated.

III. Building slope classes

Hardly nobody is able to estimate gradients accurately. Most often ordinally scaled, verbal descriptions are used (for example, “This road is far to steep.” or “This road has a gentle slope.”). In order to reflect this in our model and to provide easy to understand input parameters, we built the following slope classes (the classification is based on examples from literature and expert’s input):

Verbal description

Gradient interval

Network coverage (cum.)


0 – 1,5 %

72,3 %

Little slope

> 1,5 – 3 %

84,1 %

Gentle slope

> 3 – 6 %

91,9 %

Steep slope

> 6 – 12 %

97 %

Very steep slope

> 12 %

100 %

IV. Useing a manipulated index value as impedance in a routing

The idea now is to manipulate the existing index value according to the slope class. The function which is used to calculate the factor aims to reflect both, safety concerns and preferences. This means for uphill rides that the steeper a slope is the higher (worse) the index value becomes. For downhill sections the function results in better index values for low gradients and higher values for steep slopes. Thus the safety concern of potentially fast downhill rides are sucessfully reflected. For segments in the first slope class (level) the index value remains as it is.

Factor to manipulate the index value according to the respective slope class.

Factor to manipulate the index value according to the respective slope class.

If, in a later step, user input should be considered for the route calculation, the function can be easily adapted. In the current demo status the manipulated index value is used as impedance in the routing engine. There it can be easily compared with the original index value.
In regions with a low topographic variance the manipulation of the index value has virtually no effect on the routing results. The same holds true for areas with very short slopes, such as underpasses or alleys in historic city centers. But as the figure below demonstrates, the slope sensitivity can influence a routing result significantly, if the terrain tends to be hilly:

Different routing recommendations depending on slope sensitivity and direction.

Different routing recommendations depending on slope sensitivity and direction (visualized in Google Earth).

Although this is only a demo and several parameters might need to be optimized, first results indicate that the general approach is promising. What can be regarded as really innovative is the explicit consideration of the driving direction. This makes it possible to model uphill and downhill sections separately from each other. To my current knowledge there is no routing application for bicyclists on the web where this function is implemented.
What is missing in this demo are the different attitudes to slopes depending on the user and the trip purpose. Currently several options are offered but in a further step the personalization of routing recommendations is defenitly a hot topic!

I guess, there are many bicycle enthusiasts out there who have valuable inputs – please share them. Your comments, experiences and ideas are important as the body of scientific literature for this topic is very thin. Looking forward to reading from you!


P.S.: thanks to the guys from TraffiCon (Stefan, Gernot und Martin) for the stimulating discussions.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s