A collection of datasets from various Dutch institutions to demonstrate a Spatial Data Infrastructure built on Portolan.
Boundaries of all 162 Natura 2000 protected areas in the Netherlands, designated under the EU Birds Directive (Vogelrichtlijn) and Habitats Directive (Habitatrichtlijn). Contains 209 features because some areas have separate features for different designation types.
Natura 2000 is the largest coordinated network of protected areas in the world, spanning all EU member states. In the Netherlands, these 162 areas carry the strongest nature protection in Dutch law — any plan or project that may significantly affect a Natura 2000 area requires a preliminary assessment (voortoets) and potentially a full appropriate assessment (passende beoordeling) under the Wet natuurbescherming.
Since 2019, this dataset has been politically critical due to the Dutch nitrogen crisis (stikstofcrisis): the Council of State struck down the PAS program because nitrogen deposition exceeded critical loads in Natura 2000 areas, halting thousands of construction and farming projects.
Includes both terrestrial and marine areas extending into the North Sea EEZ (e.g., Doggerbank, Noordzeekustzone, Voordelta).
Source: https://www.pdok.nl/introductie/-/article/natura-2000 Provider: RVO (Rijksdienst voor Ondernemend Nederland / Netherlands Enterprise Agency) License: CC0 (public domain)
The data is a GeoParquet file in EPSG:28992 (Amersfoort / RD New). Use DuckDB with the spatial extension.
The file is ~7.5 MB (209 features) — loads entirely into memory.
The columns you'll actually use:
naam_n2k — area namenr — official area number (use for grouping/joining)beschermin (or vhn_new) — designation type (VR/HR/VR+HR)shape_area — area in m² (per-feature)geometry — area boundary polygonCritical: The dataset has 209 features for 162 distinct Natura 2000 areas. Multiple features per area occur when parts of the area fall under different EU directive designations. For example, De Wieden (nr=35) has separate VR and VR+HR features.
Do not count features to determine the number of protected areas. Use COUNT(DISTINCT nr).
Distribution by designation type:
shape_area rather than computing from geometry for consistency with official figures.Note: The point must be transformed to EPSG:28992 to match the data CRS.
nr when counting or computing areas.shape_area is per-feature. For multi-feature areas, geometries under different designations
may overlap, so summing all shape_area values overestimates total protected area.status field has inconsistent date formats — not suitable for programmatic date extraction.Two Mapbox GL v8 styles are available for interactive map visualization via the PMTiles file.
Style files are Mapbox GL v8 JSON with relative PMTiles source paths. They can be used with MapLibre GL JS, OpenLayers (via ol-mapbox-style), or any Mapbox GL v8-compatible renderer.
styles/default.json — Light yellow-green fill with green outlines and area name labels. Shows the 162+ Natura 2000 protected areas. Visually lighter than Nationale Parken to distinguish the two protection regimes.styles/by-directive.json — EU protection framework analysis. Colors by beschermin (protection type): sky blue for Birds Directive (VR, 39 areas), forest green for Habitats Directive (HR, 108 areas), teal for both directives (VR+HR, 58 areas), brown for quarry sites (HR groeve, 4 areas). Shows which EU legal framework protects each area — important for understanding management requirements and legal obligations.Style files are at: https://data.source.coop/cholmes/portolan-nl/rvo/natura2000/styles/
natura2000.pmtiles — for web map visualization.https://api.pdok.nl/rvo/natura2000/ogc/v1.https://service.pdok.nl/rvo/natura2000/atom/downloads/natura2000.gpkg.Hand-maintained agent guide (ported from this collection's llms.txt in August 2026). Update it alongside collection.json.
| Legal designation status (free-text with inconsistent date formats). |
shape_area | float64 | Area per feature in m². Per-feature, not per site — sum by nr for total site area. |
shape_len | float64 | Perimeter per feature in metres. |
kadaster | string | Cadastral reference number. |
staatscour | string | Staatscourant (Government Gazette) publication reference. |
puuid | string | Persistent unique identifier. |
fuuid | string | Feature unique identifier. |
id | int64 | Feature ID. |
objectid | int32 | Internal object ID. |