A collection of datasets from various Dutch institutions to demonstrate a Spatial Data Infrastructure built on Portolan.
All ~10.8 million buildings in the Netherlands as 3D models, produced by the 3D Geoinformation Research Group at TU Delft in collaboration with 3DGI.
The 3D BAG enriches the official BAG building registry — maintained by Kadaster — with building heights, roof types, volumes, and surface areas derived from the AHN (Actueel Hoogtebestand Nederland) national point cloud survey. The source BAG footprints and attributes are available in this catalog as Buildings (Panden).
AI/Agent users: See llms.txt for field descriptions, query examples, and usage tips.
The 3D BAG reconstruction pipeline automatically combines these two open datasets, using the AHN point cloud to compute building heights, roof geometry, volumes, and surface areas for every BAG building footprint. Models are validated with val3dity.
This collection contains three files derived from the 3D BAG:
Vector tiles for web map visualization. Contains LOD 1.3 building-part polygons (14.1M features) with pre-computed height and base_height fields ready for MapLibre GL fill-extrusion rendering. EPSG:4326, zoom levels 0-15.
GeoParquet for analytical queries. Same LOD 1.3 building-part data as the PMTiles in the original Dutch coordinate system (EPSG:7415 — Amersfoort / RD New + NAP height). 14.1M rows. Use for spatial joins, bulk analysis, and processing.
Whole-building GeoParquet with full 3D attributes. One row per building (10.8M rows), 62 columns including volumes, surface areas, floor counts, roof types, and AHN quality metrics. EPSG:7415. Join to the LOD 1.3 parts on identificatie for combined analysis.
The LOD 1.3 files (PMTiles and GeoParquet) share this schema:
The whole-building file has 62 columns. Key fields beyond the LOD 1.3 schema:
See the full 3D BAG attribute documentation for all 62 fields.
identificatie.height fields in the LOD 1.3 files are already computed relative to ground, ready for extrusion rendering. The raw absolute heights (NAP datum) are in 3dbag-pand.parquet.The 3D BAG is derived from the BAG building registry maintained by Kadaster:
identificatie field is the shared key that links 3D BAG records back to BAG buildings.If you need only 2D footprints with BAG attributes (and no heights), use Buildings (Panden) — it is smaller and simpler.
Use the PMTiles with MapLibre GL JS for instant 3D building visualization:
Six MapLibre GL styles are provided — five use 3D fill-extrusion:
Produced by the 3D Geoinformation Research Group, TU Delft, and 3DGI. Funded by the European Research Council.
CC BY 4.0 — attribution required to the 3D Geoinformation Research Group, TU Delft.
Chris Holmes cholmes@9eo.org
bouwjaar| int64 |
| Construction year from BAG. 9999 = unknown. |
status | string | Building status from BAG (e.g. Pand in gebruik). |
gebruiksdoel | string | Usage function from BAG (e.g. woonfunctie, kantoorfunctie). Comma-separated for mixed use. |
oppervlakte_min | int64 | Min floor area (m²) of dwelling units. |
oppervlakte_max | int64 | Max floor area (m²) of dwelling units. |
aantal_verblijfsobjecten | int64 | Number of dwelling units in the building. |
| double |
| Exterior wall area (m²) |
b3_opp_scheidingsmuur | double | Party/shared wall area (m²) |
b3_dak_type | string | Roof type classification |
b3_rmse_lod12/13/22 | double | Reconstruction accuracy (RMSE in meters) |
b3_pw_bron | string | Point cloud source (ahn3, ahn4, ahn5) |
b3_kas_warenhuis | bool | Greenhouse/warehouse flag |
b3_is_glas_dak | bool | Glass roof flag |
oorspronkelijkbouwjaar | double | Construction year |