A collection of datasets from various Dutch institutions to demonstrate a Spatial Data Infrastructure built on Portolan.
All 11.4 million buildings (panden) in the Netherlands from the BAG (Basisregistratie Adressen en Gebouwen), the authoritative Dutch national building and address registry. Municipalities maintain the data; Kadaster manages the national facility (LV-BAG) and publishes it via PDOK.
This is the BAG GeoPackage "light" extract — current buildings only (no version history), with the most-used attributes. It is updated monthly (1st of each month).
Compared to the INSPIRE Buildings dataset (also in this catalog), the BAG light has:
No building heights or floor counts. BAG records footprints and construction years, not heights. For 3D building data with heights, volumes, and roof types, see the 3D BAG collection in this catalog — produced by TU Delft's 3D Geoinformation Research Group by combining this BAG data with AHN point cloud heights.
Source: https://www.pdok.nl/introductie/-/article/basisregistratie-adressen-en-gebouwen-ba-1 Provider: Kadaster (Netherlands Cadastre, Land Registry and Mapping Agency) License: CC0 (public domain) Update frequency: Monthly
This is a GeoParquet 1.1.0 file with bbox covering columns and Hilbert spatial sorting. The native CRS is EPSG:28992 (RD New / Amersfoort) — coordinates are in meters.
The file is 933 MB. DuckDB streams it efficiently using HTTP range requests — you don't need to download the full file. The bbox covering columns and Hilbert sorting enable DuckDB to skip irrelevant row groups for spatial filters.
The columns you'll most often use:
identificatie — BAG building ID (the key identifier, links to other registries)bouwjaar — construction year (integer, much simpler than INSPIRE's ISO date string)status — lifecycle status (filter for "Pand in gebruik" for active buildings)gebruiksdoel — what the building is used for (residential, office, retail, etc.)aantal_verblijfsobjecten — how many units/apartments the building containsgeom — building footprint polygonThe status field has these possible values, from the BAG Catalogus 2018:
Note: demolished buildings ("Pand gesloopt") and cancelled buildings ("Niet gerealiseerd pand") do NOT appear in this dataset — the BAG light extract only contains current objects.
The gebruiksdoel field describes the building's usage function. Most common values:
Comma-separated values indicate mixed-use buildings (e.g., ground-floor shop with apartments above). There are ~48% residential, ~42% no dwelling units, and ~10% other uses.
The 1950–1999 period dominates — post-war reconstruction and suburban expansion. Only 1 record has bouwjaar = 9999 (unknown), compared to ~1 million in the INSPIRE version.
This uses the bbox covering columns — DuckDB skips row groups outside the range.
The first 4 digits of identificatie encode the municipality code (gemeentecode).
Note: Since the CRS is already in meters (RD New), ST_Area(geom) gives area in m²
directly — no need for ST_Area_Spheroid.
The BAG is one of 10 Dutch national key registrations ("stelsel van basisregistraties"). A pand (building) in the BAG is defined as "the smallest functionally and structurally independent unit that is directly and permanently connected to the earth, accessible, and lockable."
Key relationships to other Dutch registrations:
The identificatie field is the universal key that connects buildings across these
registrations. The first 4 digits are the gemeentecode (e.g., 0363 = Amsterdam,
0518 = Den Haag, 0599 = Rotterdam).
LIKE '%woonfunctie%' to find all buildings with a residential component.LEFT(identificatie, 4) to get the gemeente code
(e.g., '0363' = Amsterdam). This is a string operation since identificatie is a string.oppervlakte_min/max describe
the range of individual unit sizes, not total building area. For footprint area, compute
ST_Area(geom) which gives m² directly in this CRS.bag-light.gpkg (7.2 GB) — the official PDOK download, contains all 5
BAG object types (pand, verblijfsobject, nummeraanduiding, openbareruimte, woonplaats).
The GeoParquet only contains the pand (building) table.bag-light.pmtiles — for web map visualization with MapLibre GL JS.
Features are dropped at lower zoom levels for performance.https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1
(max 1000 features per request)https://api.pdok.nl/lv/bag/ogc/v1Hand-maintained agent guide (ported from this collection's llms.txt in August 2026). Update it alongside collection.json.
| int64 |
| Number of dwelling units (verblijfsobjecten) in the building. 0 = no addressable units (shed, garage, etc.). Higher values = apartment building or mixed-use. |
rdf_seealso | string | Linked Data URI for this building in the BAG knowledge graph. |
geom | WKB Polygon | Building footprint in EPSG:28992 (RD New). Coordinates in meters. |