The 300: a park within 300 metres
Does everyone live within walking distance of a park? For every home, the walking distance over streets and paths to the nearest entrance of a park or other public green was calculated. A home within a 5-minute walk meets the rule (green on the map).
Zuid-Holland, 1,797,970 homes. Per municipality from 20.3% (Voorne aan Zee) to 86.7% (Oegstgeest) within 5 minutes.
The whole calculation was made with QGIS and the components that come with QGIS: GDAL for the data, the entrances and the walking network, GRASS GIS for the walking distances, and QGIS's Python for the steps in between. No other software is needed. Anyone with QGIS can repeat it.
What is measured?
The paper asks for a large public green space within 300 m of every home, "about a 5-minute walk". We measure the walking distance over the network of streets and paths, from the home to an entrance of the green. Every home gets a distance in metres; 300 m, 5 minutes and 15 minutes are limits on that one result.
What the result assumes
The paper leaves open what green is and how to measure. The choices below make the most difference to the figures. Each one says which way it pushes the result.
- A small park counts. Green counts from 300 m²; the WHO norm behind the rule is 1 ha. (more favourable)
- Only parks, nature, recreation areas, estates, cemeteries and allotments. Small woods, verges, sports grounds and golf courses do not count. (stricter)
- Walking to an entrance. An entrance is where a path or street enters the green. Green without a path into it and without a street next to it does not count. (stricter)
- Cycle paths count as walking routes, because Dutch traffic law allows walking there where there is no footpath. (more favourable)
- The nearest home counts for the whole building on the map. The figures per area count every home separately.
- Public access is not checked, except that duck decoys and paths tagged
access=privatedo not count. Cemeteries close at night, and some allotments are locked. (more favourable)
Steps
- Collect the green. From the provincial facilities map, the parks (OpenStreetMap and TOP10NL, peildatum 17 September 2025). From TOP10NL, the functional areas park, recreation area, nature area, national park, estate, heemtuin, botanical garden, cemetery and allotments.
- Cut out the water. Nature areas such as the Haringvliet and the Biesbosch are largely open water. Without this step every path along such a shore would be a park entrance. The water of the CBS district map and of OpenStreetMap is removed: 103,076 ha.
- Drop what is too small or too narrow, and merge. Pieces under 300 m² and strips narrower than about 6 m drop out. What overlaps or touches becomes one green area: 3,660 in all. This green is on the map; click it for its type, source and area.
- Find the entrances. Where an OpenStreetMap path or street crosses the edge of the green, and where OpenStreetMap has a gate or entrance on the edge. Green without a path in gets an entrance along its edge where a street runs within 10 m. 14,924 entrances in all.
- Compute the walking distances.
GRASS GIS (
v.net.distance, part of QGIS) computes, from all entrances at once, the shortest walking distance to every junction of the walking network. The network comes from OpenStreetMap: footpaths, cycle paths, streets and roads, without motorways and private roads. - Link the homes. Every home (a BAG address with a residential use, the same as for the 3) takes the nearest point on the network. Its walking distance is the distance from that point to the entrance, plus the short stretch from the home to the street.
- Per municipality, district and neighbourhood. The share of homes within 300 m, 5 and 15 minutes, on the same areas as the 3 and the 30.
Choices and why
| Choice | Why | Alternative not chosen |
|---|---|---|
| Walking distance over the network | 300 m as the crow flies can mean a long detour around water, a railway or a motorway without a crossing. The paper itself says "about a 5-minute walk". | A 300 m circle: simpler, but ignores barriers. |
| One distance per home | Every home gets metres, so 300 m, 5 minutes and 15 minutes are filters on one result. | Zones (isochrones) around the entrances. A zone also covers the inside of blocks and water; see the comparison. |
| Colours on 5 minutes | 5 minutes (425 m at 5.1 km/h), with the usual detour of streets, comes to about 300 m as the crow flies. The 300 m along the street is in the popups. | Colours on 300 m along the street: stricter than the WHO's 300 m as the crow flies. |
| From the entrances | You enter a park by a path. Measuring from the edge would also count fences, water and dense edges as access. | Distance to the edge of the green. |
| Cycle paths count | Dutch traffic law allows walking on a cycle path where there is no footpath. Where a cycle bridge is the only crossing, this saves hundreds of metres. | Only footpaths and streets. |
| At least 300 m², not too narrow, no water | Small plantings and verges are not places to spend time, and open water is not a park. | The WHO threshold of 1 ha (see open issues). |
| Only QGIS components | GDAL and GRASS come with QGIS, so anyone can repeat the calculation, without licences or servers. | Commercial software with a route server, as in the earlier calculation. |
Is this right for my home?
Per neighbourhood, district and municipality the map gives a reliable picture. Per home it is a good indication, not a measurement on the spot. The popup shows the walking distance in metres. Is your home red while a park seems close by? That can be because:
- The route is longer than the straight line. With water, a railway or a busy road without a crossing in between, a park that seems close can still be a longer walk.
- The entrance is on the other side. We measure to an entrance where a path enters the green, not to its edge.
- The green does not count. A sports ground, a small wood without park status, a narrow strip or a private garden is not a park in this calculation. New green may still be missing from the sources.
- A path is missing from OpenStreetMap. A shortcut that is not on the map is unknown to the network analysis.
Checked with a second program
As a check, everything was computed again with Valhalla, an open-source route planner (not part of QGIS, only used for this check). Valhalla can return every street and path you reach on foot from a point: the expansion. Below, from the Provinciehuis in The Hague.
| Share of homes within | GRASS (the map) | Valhalla | Valhalla, zones | Earlier calculation |
|---|---|---|---|---|
| 300 m | 36.7% | 38.0% | 46.4% | not computed |
| 5 minutes (425 m) | 56.0% | 57.0% | 64.0% | 79.1% |
| 15 minutes (1,275 m) | 97.8% | 98.0% | 98.2% | 99.2% |
GRASS and Valhalla agree for 97.8% of homes on whether they live within 300 m of green. For 71% of homes the distance differs by 10 m or less, for 93% by 50 m or less. Where they differ, Valhalla's walk is shorter more often: it can also reach a home over its own private road.
Why no zones. A zone (isochrone) around the streets reached also covers the inside of blocks, water and railway land that the walk goes round. With zones 46.4% of homes are within 300 m; with the actual walking distance, 38.0%.
Cycle paths. Valhalla's default profile does not let pedestrians use cycle paths. For this check they were opened, so both programs walk the same network.
The earlier calculation counted 79.1% of homes within 5 minutes. Per home, GRASS and that calculation agree for 69%. Most of the difference is the green: it also counted small woods, scrub, gardens, golf courses and sports grounds, and worked with zones.
Run time
| Step (whole province) | Time |
|---|---|
| Prepare green, water, entrances, network and homes (GDAL) | 8 min |
| Walking distance to every junction (GRASS) | 18 min |
| Link 1.8 million homes | 4.6 min |
On a workstation with 6 cores and 64 GB of memory. Valhalla did the same in 26 minutes.
Open issues
- 300 m² is far below the WHO norm of 1 ha. The paper and the WHO mean a large public green space. A run with 1 ha is a filter on the same green.
- Green without an entrance. 1,063 green areas in the province get no entrance, together 1.7% of the green: mostly nature islets left after cutting out the water, but also about 230 parks, allotments and cemeteries where the nearest street is just too far (issue #3).
- Public access is not checked per site.
Code and sources
| Step | Where |
|---|---|
| Green, entrances, walking distances (GDAL and GRASS from QGIS) | indicator_300_park/ |
| Share per municipality/district/neighbourhood, map tiles | web/build_tiles_30_300.py |
| Green on the map | web/build_tiles_groen.py |
| Data | Source | Date |
|---|---|---|
| Parks | Provincial facilities map (OpenStreetMap and TOP10NL) | 17 September 2025 |
| Other green | TOP10NL functional areas (Kadaster) | 2025 |
| Water | CBS district and neighbourhood map 2025, OpenStreetMap | 2025–2026 |
| Paths and streets | OpenStreetMap, Zuid-Holland extract (Geofabrik) | 12 October 2026 |
| Homes | BAG via PDOK, same as the 3 | 27 September 2026 |