Regions compared¶
The Kiel study, run unchanged for seven more cities (state of 1 November 2026). Every region gets the same five layers from layers/_study.py: boundary, drinking water, pedestrian attractors, pedestrian potential (100 m grid) and hydrants. Only the population grid and the timetable differ by country. Each region is one project (kiel, hamburg, …); switch between them on the map with the Project list.
Why these regions¶
| Region | Role | Why |
|---|---|---|
| Kiel | Pilot | Baltic port city, few mapped drinking-water points |
| Flensburg | Neighbour | Smaller port city next to Kiel; no drinking water mapped in OSM at all |
| Lübeck | Neighbour | Kiel's size, tourist old town |
| Karlsruhe | Heat | One of the hottest German cities (Upper Rhine); almost all hydrants tagged with position |
| Hamburg | Large city | Largest city in northern Germany, 16,400 hydrants in OSM; publishes a Bedeutungskarte Fußverkehr to check the pedestrian model against later |
| München | Large city | Established fountain network, 12,000 hydrants in OSM |
| Wien | Benchmark | More than 1,000 public fountains, and mobile fountains on hydrants in summer: the Offene Quelle idea in practice |
| Zürich | Benchmark | One of the densest fountain networks in Europe; shows what "fully covered" looks like |
A scan of other cities (OSM counts, 1 Nov 2026) for later: Berlin (14,100 hydrants / 336 drinking-water points), Frankfurt (3,300 / 77), Köln (1,900 / 26), Leipzig (900 / 27, has a Bedeutungskarte Fußverkehr to check the pedestrian model against), Paris (9,450 / 1,100). Rome has 2,160 nasoni but only 218 hydrants mapped, so it doesn't work for the hydrant side; Copenhagen has no hydrants in OSM at all.
Results¶
All distances are straight lines; "covered" means a public drinking-water point within 300 m.
| Region | Residents | Hydrants | Excluded | Candidates, gap | Candidates, covered | Public drinking water | per 100,000 residents | Residents covered | Priority candidates |
|---|---|---|---|---|---|---|---|---|---|
| Kiel | 248,700 | 2,207 | 231 | 1,959 | 17 | 2 | 0.8 | 1 % | 606 |
| Flensburg | 94,700 | 845 | 172 | 673 | 0 | 0 | 0 | 0 % | 67 |
| Lübeck | 215,700 | 1,600 | 425 | 1,115 | 60 | 5 | 2.3 | 3 % | 582 |
| Karlsruhe | 305,300 | 2,507 | 996 | 1,203 | 308 | 90 | 29 | 23 % | 528 |
| Hamburg | 1,805,900 | 16,442 | 1,744 | 13,968 | 730 | 67 | 3.7 | 4 % | 4,318 |
| München | 1,477,700 | 12,243 | 397 | 9,773 | 2,073 | 143 | 9.7 | 17 % | 3,468 |
| Wien | 2,039,200 | 5,987 | 12 | 1,572 | 4,403 | 1,732 | 85 | 78 % | 291 |
| Zürich | 425,800 | 4,783 | 8 | 192 | 4,583 | 1,014 | 238 | 97 % | 2 |
Residents: sum over the grid cells kept in the pedestrian-potential layer (potential ≥ 1). Priority candidates: hydrants in the gap that lie in a cell with high or very high pedestrian potential.
Does the pedestrian potential point to the right places? Where cities already have many fountains, they put them where the model expects pedestrians:
| Region | Cells with high or very high potential | Public fountains in such cells | Ratio | Coverage of high-potential cells | Coverage of low-potential cells |
|---|---|---|---|---|---|
| München | 24 % | 63 % | 2.6× | 27 % | 4 % |
| Hamburg | 18 % | 45 % | 2.5× | 8 % | 1 % |
| Karlsruhe | 19 % | 41 % | 2.2× | 28 % | 7 % |
| Wien | 25 % | 55 % | 2.2× | 86 % | 39 % |
| Zürich | 26 % | 52 % | 2.0× | 100 % | 75 % |
Drinking water is not one of the attractors, so this is not circular. It is not proof either: fountains and attractors both cluster in centres and parks. A check against real pedestrian counts is still needed.
Findings¶
- Hydrant type differs by country, and that decides the device design. In the German cities 85–99 % of mapped hydrants are underground (Unterflurhydrant): Kiel 2,171 of 2,207, Hamburg 16,322 of 16,442. In Zürich (4,713 of 4,783) and Wien (5,882 of 5,987) almost all are pillar hydrants. Vienna's mobile fountains on hydrants work on pillars. An Offene Quelle device for Germany needs a standpipe on an underground hydrant, which is a bigger step for safety and permission than clamping onto a pillar.
- The exclusion rule "underground hydrant in the carriageway" hits very unevenly: 39 % of hydrants in Karlsruhe, 26 % in Lübeck, 11 % in Hamburg, 10 % in Kiel, 3 % in München. That depends on local street layout and on how mappers tagged
fire_hydrant:position, so check it before comparing candidate numbers between cities. - The northern cities have almost no public drinking water. Kiel, Lübeck, Flensburg and Hamburg cover 0–4 % of residents. Karlsruhe and München reach about 20 %, Wien 78 %, Zürich 97 %. Zürich and Wien show that near-complete coverage is realistic for a city that wants it.
- Zürich is the saturation test. Only 192 hydrants are outside a fountain catchment and two of them are in busy cells. The model correctly finds almost nothing to add.
- Germany's gap is large in absolute terms. Hamburg has about 4,300 priority candidates and München about 3,500, each about twice as many as Kiel, Flensburg, Lübeck and Karlsruhe together (1,783). Hamburg has fewer public fountains per resident than München (3.7 against 9.7 per 100,000).
Caveats¶
- OSM only. Missing fountains inflate the gap. Flensburg probably has drinking-water points that are not mapped. Official registers exist for Zürich (CC0) and Wien (CC BY 4.0), see Data sources, and could be used to measure how complete OSM is.
- The potential is relative within each city (scaled by the city's 95th percentile). "High" in Flensburg is not as busy as "high" in München; compare shares, not absolute values.
- Different inputs by country. Zürich: STATPOP hectares on the Swiss grid, assigned approximately to the EU grid. Wien: the Wiener Linien timetable has no S-Bahn. The assumptions are listed on each layer's page.
- Region boundaries. Kiel and Flensburg have two OSM relations with the same municipality key. The pipeline uses one; an earlier quick count over both gave 984 hydrants for Flensburg against 845 here.
- Hamburg's area includes the island of Neuwerk and the Wadden Sea; cells there have no potential and drop out (98,100 cells in the area, 50,700 kept).
- Straight-line distance. Rivers, railways, the Elbe and the Danube are ignored (see the hydrant layer's assumptions).
Adding a region¶
Write a script like layers/luebeck.py (Germany) or layers/zuerich.py (other countries), see Writing layers; it defines the region's project. Run it with make layers SCRIPTS=layers/<region>.py. If the public Overpass server is busy (502/504), add ARGS="--overpass-url https://overpass.private.coffee/api/interpreter".