Networks & routing
Street networks as graphs: shortest paths, travel time, isochrones and snapping.
Everything on Spatial Workflow about networks & routing, in the order that usually works: understand the idea, then run the task, then fix it when it goes wrong. 25 guides in total.
5 learning paths run through this topic — follow one if you would rather work through a route than pick a single guide.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
- Street Networks as Graphs Explained street network graph explained
- Network Distance vs Straight-Line Distance Explained network distance vs straight line
- Isochrones Explained: Travel Time Areas and What They Assume isochrones explained
- Location Analysis Explained: Catchments, Accessibility and Site Selection location analysis gis explained
- Catchment Areas Explained: Buffers, Isochrones and Voronoi Compared catchment area gis
- Accessibility Measures Explained: Nearest, Cumulative and Gravity spatial accessibility measures
- Location-Allocation Explained: p-Median, Coverage and What Each Optimises location allocation p-median explained
- Stream Order Explained: Strahler, Shreve and What They Measure strahler stream order explained
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Build a Street Network Graph in Python with OSMnx street network graph python
- How to Snap Points to a Street Network in Python snap points to network python
- How to Calculate the Shortest Path Along a Street Network shortest path street network python
- How to Measure Network Distance for Many Origin-Destination Pairs network distance matrix python
- How to Generate Isochrones in Python generate isochrones python
- How to Map-Match a GPS Track to a Street Network map match gps track python
- How to Measure Distance to the Nearest Facility for Every Home distance to nearest facility python
- How to Measure Access to Services with the Two-Step Floating Catchment Method 2sfca python
- How to Choose Facility Locations with a p-Median Model in Python p-median python pulp
- How to Maximise Coverage with a Limited Number of Sites maximal covering location problem python
- How to Find the Areas Nobody Can Reach Within a Travel Time service area coverage gaps python
- How to Calculate Strahler Stream Order in Python strahler order python
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
- OSMnx Download Fails, Hangs or Times Out osmnx timeout error
- Your Street Network Graph Is Disconnected or Missing Streets osmnx graph disconnected
- NetworkX Says No Path Exists Between Two Nodes networkx no path exists
- Street Network Routing Returns Absurd Distances routing wrong distance
- Fixing Accessibility Scores That Are Wrong Near the Study Area Edge accessibility edge effect
Learning paths through this topic
A curated route rather than a list — the guides in the order that builds on itself.
-
Finding & Fetching Data
Get the data before you analyse it — from OSM, web services and satellite catalogues.
Open path → -
Networks & Routing
Distance along the street, not across the rooftops.
Open path → -
Movement & Time
Tracks are not points — the order and the clock are the data.
Open path → -
Location & Accessibility
Who can reach what — and where the next site should go.
Open path → -
Hydrology & Watersheds
A DEM already knows where the water goes. Ask it carefully.
Open path →
Related topics
Subjects that keep coming up alongside this one, most overlap first.