A worked spatial example

The example below demonstrates how different spatial questions produce different priorities. Four fictional settlements share a transport network around a proposed project. Expected additional residents, water capacity, and seasonal clinic access are examined separately.

All locations and values are synthetic. They do not describe a real investment or community. The example is a teaching tool, not an empirical forecast, an engineering assessment, or a validated risk model. Coordinates are a local schematic grid in kilometres, without a geographic coordinate reference system.

The planning question

Suppose a project assessment identifies four plausible receiving settlements. The client needs to decide where to verify service conditions, which accommodation alternatives to examine, and what to discuss with public authorities before mobilisation.

A population-only ranking would prioritise Junction. A proportional water-shortfall ranking would prioritise Riverside. A wet-season access test would draw attention to Hill and Riverside. Each finding answers a different question.

Three synthetic maps show additional residents, proportional water shortfalls, and wet-season clinic access. Junction has the most additional residents; Riverside has the largest proportional shortfall; Hill and Riverside have the longest clinic journeys.

Figure 1. The same fictional geometry viewed through three planning questions. Counts, percentages, and minutes are labelled directly. The connecting lines show a schematic network, rather than a surveyed road alignment.

Define the assumptions

The initial population is 7,000 across four settlements. A single planning period adds 6% background growth without the project. Additional residents in the central scenario total 1,900; lower and higher scenarios use 950 and 2,850. These are assumed net additional residents present during that period, rather than cumulative gross arrivals.

The water calculation uses 40 litres per person per day solely to demonstrate arithmetic. It is not a recommendation for water-system design or a statement of adequate household provision. Real demand analysis needs applicable standards, service levels, losses, seasonal availability, quality, non-household uses, and differentiated demand.

For simplicity, each settlement has a separate reliable delivered water capacity and there is no transfer between systems. No additional commercial water demand is included. The example does not estimate storage, hydraulic constraints, or costs.

Settlement Initial population Population without project Additional residents: lower / central / higher Delivered water capacity, L/day
Gate 1,000 1,060 300 / 600 / 900 52,000
Junction 4,000 4,240 500 / 1,000 / 1,500 200,000
Riverside 800 848 120 / 240 / 360 32,000
Hill 1,200 1,272 30 / 60 / 90 60,000

The assumptions are in synthetic-example.json. A real application would attach a source and confidence assessment to every input, and separate observed capacity from planned upgrades.

Calculate demand and local deficits

For each settlement, multiply the population with the project by the assumed daily demand and subtract delivered capacity. Negative deficits become zero. Calculate the same quantity without the project to identify existing or background shortages.

For Gate in the central scenario:

Settlement Central population Central demand, L/day Deficit without project, L/day Central deficit, L/day Increase in deficit, L/day Deficit / capacity
Gate 1,660 66,400 0 14,400 14,400 27.7%
Junction 5,240 209,600 0 9,600 9,600 4.8%
Riverside 1,088 43,520 1,920 11,520 9,600 36.0%
Hill 1,332 53,280 0 0 0 0.0%

Synthetic daily water-deficit bars distinguish existing background shortages from the increase in shortages under the central scenario. Gate has 14,400 litres, Junction 9,600, Riverside 11,520 including 1,920 without the project, and Hill zero.

Figure 2. Riverside already has a deficit under background growth. The scenario increases that shortfall by 9,600 L/day. Separating these components supports a clearer conversation about contribution and cost-sharing.

Gate has the largest absolute deficit, while Riverside has the largest deficit relative to delivered capacity. Either measure can inform a decision, but neither establishes health consequences or a sufficient mitigation measure. Household access, quality, affordability, and service reliability still need investigation.

See what aggregation conceals

Central demand totals 372,800 L/day and capacity totals 344,000 L/day. Subtracting regional totals gives a shortfall of 28,800 L/day. Adding the deficits of the separate systems gives 35,520 L/day.

The difference is Hill's unused 6,720 L/day, which cannot simply be reassigned in the model. Regional pooling assumes a transfer that the network and operations may not permit. A real project needs to establish whether such transfer is feasible, reliable, affordable, and environmentally acceptable.

The same issue arises with clinic staffing, school places, wastewater treatment, and rental stock. An aggregate surplus does not establish that affected people can access it.

Compare scenarios without calling them probabilities

Settlement Lower deficit, L/day Central deficit, L/day Higher deficit, L/day
Gate 2,400 14,400 26,400
Junction 0 9,600 29,600
Riverside 6,720 11,520 16,320
Hill 0 0 0
Sum of local deficits 9,120 35,520 72,320

The lower scenario still leaves Riverside short of water. A response that waits for central-scenario arrivals would miss that condition. The higher scenario substantially changes the scale of preparation needed at Gate and Junction.

These scenarios have no assigned probabilities. Their purpose is to test the resilience of a decision. Ask whether a proposed intervention performs adequately across plausible conditions and whether it can be expanded without creating new harm.

Model seasonal access through a network

The example assigns invented dry- and wet-season travel times to each network edge. Shortest paths are calculated to the clinic. The times are inputs chosen for teaching; they are not inferred from line lengths, terrain, or observed journeys.

Settlement Dry-season clinic journey Wet-season clinic journey Wet journey exceeds illustrative 30-minute test?
Gate 16 min 24 min No
Junction 4 min 6 min No
Riverside 27 min 56 min Yes
Hill 24 min 66 min Yes

The 30-minute test is arbitrary and is not a clinical access standard. It shows how a chosen threshold changes classification. In an actual assessment, establish the relevant service, transport mode, hours, affordability, and locally justified planning threshold.

WHO's AccessMod provides a fuller framework for physical accessibility, capacity, referrals, and expansion scenarios (WHO, AccessMod). This simplified network isolates one idea: distance alone does not represent seasonal access, and access alone does not establish that appropriate care is available.

To test a bridge closure, replace the wet-season cost for the Bridge–Riverside edge with null. The supplied functions then return null for disconnected travel times. Display that as “unreachable in model,” rather than zero minutes or a missing observation. A real investigation would look for alternative transport routes before concluding that access is absent.

Reproduce the calculations

Download the reproduction script and the example assumptions. Keep the JSON in a data folder beside the script, then run:

python reproduce_example.py

The standard-library script reads the assumptions, calculates all 12 settlement–scenario records, writes synthetic-results.json, and regenerates the two SVG figures. It verifies the central values presented above. Python 3.9 or later is sufficient; no geospatial packages or external downloads are required.

The example uses network topology and local coordinates. It is deliberately not a workflow for downloading or classifying imagery. The spatial assessment article explains how real geospatial data would be selected, prepared, and validated.

Explore the example in Observable Framework

The following cells use the supplied files and module. The control changes the assumed additional population; it does not estimate migration. The tables and static figures above remain readable without running JavaScript.

The fixed chart domain includes all supplied scenario values. The accompanying table exposes the numbers without relying on colour or pointer interaction. The calculation module is also usable outside Observable Framework.

For integration, consult the official Framework JavaScript reference and Observable Plot documentation.

Translate the demonstration into a project inquiry

A real application would replace fictional populations with defined counts, arrivals with justified scenarios, capacities with verified delivery, and travel costs with observed or validated network models. Add uncertainty, household access, non-household demand, and environmental constraints.

The demonstration does not select a construction solution. It identifies questions: can Gate's demand be reduced through accommodation alternatives; what repair or expansion is feasible at Riverside; can Hill's wet-season access be improved without reallocating capacity away from other users; and how can government and client commitments be funded and verified?

Those questions connect the analysis to the management plan and to monitoring. A useful model makes the next decision clearer while preserving the evidence needed to challenge it.