Location & accessibility
Catchments, access to services, gravity models, site suitability and choosing where the next facility should go.
A catchment is a claim about how people travel, and a circle drawn around a facility is a claim that they travel in straight lines at uniform speed. They do not: a river, a railway, a one-way system or a single bridge changes the shape entirely, which is why a five-minute drive-time area and a two-kilometre buffer rarely overlap much.
From there the topic is about deciding rather than measuring. Access, gravity models, site suitability and facility location all take the same shape: score the candidates, weight the criteria, apply the constraints as a mask rather than a low score, and check how much the answer depends on the weights you chose. The last step is the one most often skipped and the one that decides whether the result is a recommendation or a preference.
The concepts cover catchments, accessibility measures and suitability; the how-to guides compute them; and the fixes cover the models that will not solve and the maps that come out flat.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
- Location Analysis Explained: Catchments, Accessibility and Site Selection
- Catchment Areas Explained: Buffers, Isochrones and Voronoi Compared
- Accessibility Measures Explained: Nearest, Cumulative and Gravity
- Gravity and Huff Models Explained: Predicting Where People Go
- Site Suitability Explained: Constraints, Factors and Weights
- Location-Allocation Explained: p-Median, Coverage and What Each Optimises
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Build Voronoi Service Areas Around Facilities in Python
- How to Count the Population Within Reach of Each Facility
- How to Measure Distance to the Nearest Facility for Every Home
- How to Measure Access to Services with the Two-Step Floating Catchment Method
- How to Estimate Market Share with a Huff Model in Python
- How to Run a Weighted Site Suitability Analysis in Python
Show every how-to guide in this topic
- How to Choose Facility Locations with a p-Median Model in Python
- How to Maximise Coverage with a Limited Number of Sites
- How to Find the Areas Nobody Can Reach Within a Travel Time
- How to calculate service frequency at every stop from GTFS
- How to Build a Solar Suitability Map in Python
- How to Map a Workplace Catchment and Its Distance Decay in Python
- How to Measure Distance to the Nearest Hospital in Python
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
- Fixing Voronoi Polygons That Extend Forever or Miss the Study Area
- Fixing a Location-Allocation Model That Never Solves
- Fixing Accessibility Scores That Are Wrong Near the Study Area Edge
- Fixing a Gravity Model That Sends Everyone to the Biggest Store
- Fixing a Suitability Map That Comes Out All One Value or All NoData
Learning paths through this topic
A curated route rather than a list — the guides in the order that builds on itself.
Related topics
Subjects that keep coming up alongside this one, most overlap first.