CycleStreets has been using elevation data for several years to help avoid un-necessary hills in planned routes. The elevations we use are interpolated from open data surveys that provide an estimate of the height of the ground above sea level. The results of the processing can be seen in the elevation profile of every route planned on CycleStreets.

But what about paths and roads that run inside tunnels through mountains or under rivers? The ground level estimation is not relevant to them. How is that handled?

For straight tunnels through mountains the problem does not arise. The elevation profile for them is simply the height of the ground at each end of the tunnel, and appears like that in the route listing. For example this route through the Innocent railway tunnel in Edinburgh.

But when a tunnel has intermediate points showing how it curves beneath the surface the problem does arise because the elevation calculated at those points is the level of the ground above the tunnel. Without fixing this, routes though mountain tunnels appear as arduous and as slow as going over the top of the mountain, and routes under rivers appear as flat as taking the ferry.

To fix this CycleStreets now reads the tunnel=* tag from OpenStreetMap data and applies two new correction profiles:

  • Mountain tunnels are assumed to be as direct as possible between each end, so that the change in elevation along the length is a straight line, usually flat, (but can be sloping up or down).
  • River tunnels are assumed to dip linearly in the middle to 20 metres below the lowest end.

To determine which correction to apply, CycleStreets examines the flawed elevation profile. If it goes up between the ends it must be a mountain, if not, the river tunnel profile is assumed. The selected profile is used to correct the intermediate points and is completed before further processing builds the routing system.

As the elevation data is accurate to only 100 metres these measures are only applied to tunnels longer than 200m.

Monsal Trail Tunnel

This example shows how CycleStreets has interpolated a smooth profile for a tunnel that passes under a ridge, as shown by the map on this route.

Monsal Trail tunnel profile

Queensway Mersey Tunnel

This is an example of how CycleStreets estimates elevation through a river tunnel. These route options include a tunnel and a ferry route.

Queensway (Mersey) tunnel profile


Improved accuracy

Because tunnels are usually much shorter and faster than alternate routes these corrections to elevation inside tunnels are unlikely to make much difference to the choice of route offered by CycleStreets. But they do improve the accuracy of estimated journey times, calories counted and most obviously in the displayed route’s elevation profile.

Leave a comment