Walk
The Walk Routing is used for all analyses in GOAT that contain walking trips.
1. Objectives​
Walk routing is used for many indicators in GOAT, such as Catchment Areas, Heatmaps, and PT Nearby Stations. As GOAT also allows the creation of Scenarios on the Street Network, a custom routing algorithm is needed that also reflects the changes of the scenario in the accessibility analyses. For the mode of walking, we thereby only consider paths that are suitable for pedestrians. The walking speed
can be adjusted by the user whenever an accessibility analysis is performed.
2. Data​
Routing Network​
Data from the Overture Maps Foundation is used as a routing network in GOAT. It includes the transportation infrastructure with edges (for any continuous path not bisected by another) and nodes (for any point where two distinct paths intersect), representing real-world networks.
3. Technical Details​
Data Pre-processing​
The following steps are performed on the data to enable quick and accurate routing for walking:
- Attribute Parsing: Categorizing attributes of edges (road
class
). - Geospatial Indexing: Utilizing Uber's H3 grid-based indexing for efficient routing.
Routing Process Steps​
Sub-network Extraction​
- Buffer Region: Based on user-origin, travel time, and speed.
- Edge Filtering: Include only relevant edges for walking.
For pedestrian routing, the edges of the following road classes are considered:
secondary
, tertiary
, residential
, living_street
, trunk
, unclassified
, parking_aisle
, driveway
, alley
, pedestrian
, footway
, sidewalk
, crosswalk
, steps
, track
, bridleway
and unknown
.
You can find further information on this classification in the Overture Wiki.
Artificial Edge Creation​
User-provided origin points are typically located a short distance away from the street network. To account for the additional time (or cost) of walking from the origin to its nearest street, artificial (or simulated) edges are created.
Edge Cost Computation​
For all edges in the sub-network, a cost value (represented as time) is calculated based on path length and walking speed.
The cost function for walking:
cost = length / speed
Network Propagation​
To compute the shortest path from the origin point to various destinations, a custom implementation of the well-known Dijkstra Algorithm is used.
GIF: Dijkstra Algorithm
The implementation has a time complexity of O(ElogV), is written in Python, and uses the just-in-time compiler Numba.