Organised Editing/Activities/TomTom/Global - Building Height Imports/France - IGN BD TOPO Building Heights Import

From OpenStreetMap Wiki
Jump to navigation Jump to search

Overview

TomTom, in consultation with the French OpenStreetMap community, is supporting a community-reviewed import to enrich existing OSM building footprints in Paris with missing height=* and building:levels=* tags. The heights and floor counts are derived from the BD TOPO dataset published by the Institut national de l'information géographique et forestière (IGN).

This activity follows an import-style workflow with upfront community consultation, transparent documentation, conservative acceptance rules, and a staged rollout starting with a small-scale pilot in Paris.

🗨️ Community discussion: [France/Paris Projet d'import automatique des hauteurs de bâtiments – IGN BD TOPO] on the French OSM forum.

Important Disclaimer — Height Definition

The definition of height in the IGN BD TOPO source differs from the OSM definition of height=*:

  • In OSM, height=* represents the total height of the building including the roof (from ground to the highest point of the structure).
  • In IGN BD TOPO, the HAUTEUR attribute measures the distance from the ground to the highest point of the gutter. It therefore never includes the roof volume, and is even slightly different from the eaves / top-of-wall height. See the IGN BD TOPO documentation for the official definition.

As a consequence, for buildings with non-flat roofs, the imported height=* value will underestimate the true OSM-defined height. In Paris specifically, buildings often have at least one roof:level=*, so the underestimation will typically exceed 3 m.

Mitigation measures applied in this project:

  • The pilot run and initial phases are restricted to buildings with flat roofs, which minimises (but does not eliminate) the discrepancy — even in this case the OSM and IGN definitions are not strictly equivalent, since the IGN HAUTEUR is measured to the gutter rather than to the highest point of the structure.
  • For buildings with pitched or complex roofs, additional analysis and potential adjustment heuristics will be discussed with the community before inclusion in subsequent phases.
  • All affected values are sourced via source:height=* for full traceability.

This limitation is acknowledged openly to ensure full transparency with the OSM community and to invite feedback on the most appropriate handling for non-flat-roof buildings.

Context

Paris contains over 103,000 buildings in OpenStreetMap. While building footprints are well represented, approximately 36,500 buildings currently lack any Level of Detail (LOD) information — neither height=* nor building:levels=* tags.

The IGN BD TOPO dataset now makes adding building heights feasible at a city and national scale. Thanks to this source, approximately 19,500 Parisian buildings can be enriched with height information, representing 53% of the identified gap.

Adding reliable building heights enables:

  • Better 3D map representations and routing
  • Urban planning and digital twin use cases
  • Environmental modelling (e.g. flood risk, solar analysis)
  • AR/VR and visualization applications

This effort is supported by TomTom, which has committed engineering and community resources. The same process and tools used for the Netherlands – 3D BAG Building Heights Import and the Japan – PLATEAU Building Height Enrichment are being applied here.

We welcome everyone to voice, contribute, review and challenge any part of this project.

Data Source

Primary Source: BD TOPO (IGN)

Field Details
Dataset BD TOPO
Producer Institut national de l'information géographique et forestière (IGN)
Download cartes.gouv.fr — IGNF_BD-TOPO (download per department)
Edition used 3.5 (dated 15 March 2026)
Format Shapefile
Projection EPSG:2154 (Lambert-93)
Geographic coverage National (France métropolitaine + overseas departments)
Paris scope Department 75 — 118,496 building records
Height attribute HAUTEUR (metric height to the gutter — see disclaimer above)
Storeys attribute NB_ETAGES (floor count)
Height populated 93.5% of Paris records
Floors populated 93.5% of Paris records
Polygons per building ~1 (one polygon per building)
Update cadence Regularly refreshed by IGN

Why BD TOPO as Primary Source

BD TOPO carries both metric height and floor count on the same record, populated on 93.5% of Paris buildings. The data model is also cleaner: BD TOPO has mostly one polygon per building, which matches OSM's building representation and simplifies conflation.

BD TOPO is also a national dataset, meaning the methodology can be extended to other French cities without changing source. Edition 3.5 is dated 15 March 2026 and IGN refreshes it regularly, making it a solid and current reference.

Aspect BD TOPO (IGN) Volumes bâtis (Ville de Paris)
Records (Paris dep. 75) 118,496 buildings 361,893 polygons (~120,000 unique buildings)
Polygons per building ~1 ~2–4
Height populated 93.5% 0%
Floors populated 93.5% 100%
Coverage National Paris only
Floor agreement (overlap set) — 61% exact match; 83.1% within ±1 floor

Secondary / Fallback Source: Volumes bâtis (Ville de Paris)

Volumes bâtis is a building volumes dataset published by the Direction de l'Urbanisme of the Ville de Paris. It covers approximately 4,113 OSM Paris buildings (~4%) where BD TOPO has no data. It is retained as a fallback source for incremental coverage.

Note: Volumes bâtis is a volumes dataset, not a buildings dataset. Each building is decomposed into multiple polygons representing parts at different heights. The 361,893 polygon count does not represent 361,893 buildings — the effective building count is ~120,000.

Field Details
Dataset Volumes bâtis
Publisher Direction de l'Urbanisme — Ville de Paris
License ODbL (Open Database License) — direct fit, same license as OSM
Floor counts Present on 100% of records
Metric height Not available (must be derived)
Height heuristic height = nb_pl × 3.2 (based on cross-validation with BD TOPO)

License

Field Details
BD TOPO license Licence Ouverte Etalab 2.0
ODbL compatibility Confirmed — ODbL compatible per the OpenStreetMap Foundation (OSMF)
Commercial use Allowed
Attribution required Yes
Source attribution IGN BD TOPO
Volumes bâtis license ODbL (Open Database License) — direct fit, same license as OSM

No additional waiver or review by the OpenStreetMap Foundation License Working Group (LWG) is required for either source. The Licence Ouverte Etalab 2.0 is recognised as ODbL-compatible by the OSMF.

Acronym reference: LWG = License Working Group (a working group of the OpenStreetMap Foundation responsible for assessing license compatibility with the ODbL); OSMF = OpenStreetMap Foundation.

Import Scope

Parameter Value
Geographic scope Paris city (intra-muros, 20 arrondissements)
OSM relation Paris (relation 71525)
OSM buildings in scope 103,458
OSM buildings missing LOD ~36,500
Buildings updatable from BD TOPO ~19,500 (53% of the gap)
BD TOPO match rate 99.93% of OSM Paris buildings find a BD TOPO match
Expected import yield ~93.4% of OSM buildings receiving at least one new attribute
Fallback (Volumes bâtis only) ~4,113 buildings (4%)

What is in scope

The current workflow enriches existing OSM buildings only with missing height and/or building:levels information.

It does NOT:

  • Create new OSM buildings
  • Import missing buildings
  • Modify geometry
  • Overwrite any existing values

Exclusions

The following buildings are excluded from the import scope:

  • Buildings tagged with building:part=*
  • Buildings that contain any building:part=* object within their footprint
  • Buildings whose geometry intersects with any building:part=* object
  • Buildings that already have height=* or building:levels=* tags (existing values are never overwritten)
  • Buildings modelled in 3D in OSM
  • Buildings whose source height is below the minimum threshold (2.5 m)
  • Building types not on the inclusion list (see Methodology — Filters)

Methodology

Process Workflow

The import workflow consists of the following sequential steps:

  1. Get OSM data (PBF file)
  2. Parse source data (BD TOPO shapefile)
  3. Fill candidates table
  4. Apply filters → identify matches
  5. Create validation files
  6. Create OSC files
  7. Create fallout files
  8. Create stats files
  9. Run update process

Workflow Notes and Definitions

  • OSM and source data are written to PostgreSQL tables for processing.
  • Source geometry is converted to EPSG:4326 if needed.
  • A candidate is any OSM building that intersects with a source building.
  • A match is any candidate that passes all filters.
  • All matches are assigned to a zoom-level 15 tile.
  • Validation files (GeoJSON):
    • <city>_match_validation_tiles.json
    • <city>_match_validation.json
  • OSC files contain all updates for a single tile (file naming convention: tilex-tiley).
  • Fallout files are generated per filter; a candidate can fail multiple filters and appear in multiple fallout files.
  • Stats file includes:
    • Total source buildings
    • Total candidates
    • Total matches
    • Total rejections
    • Rejection reason counts
    • Total tiles
    • Update counts by OSC file
  • During the update process, one OSM changeset is created per tile.

Filters

The following filters are applied to candidates to determine matches:

Filter Threshold / Definition
Minimum overlap percentage 70%
Invalid source geometry Self-intersections, malformed rings, corrupted polygons
Existing OSM height tag Do not overwrite existing heights
Existing OSM building:levels=* tag Do not add height if levels already exist
Minimum source height 2.5 m
Maximum source-to-OSM area ratio 120%
Existing OSM building modelled in 3D Filtered out
Building type inclusion list See list below

Building Type Inclusion List

The import is restricted to OSM buildings whose building=* value is one of:

allotment_house, annexe, apartments, bakehouse, barracks, boathouse, bungalow,
cathedral, chapel, church, civic, clock_tower, college, commercial, conservatory,
detached, dormitory, fire_station, garages, government, hangar, hospital, hotel,
house, industrial, kindergarten, kingdom_hall, kiosk, military, monastery, mosque,
museum, office, outbuilding, parking, pavilion, presbytery, public, religious,
residential, retail, riding_hall, school, semidetached_house, service, sports_centre,
sports_hall, stadium, supermarket, synagogue, temple, tower, train_station,
transportation, university, warehouse, yes

Tagging

Per-building tags

OSM Key Value (example) Notes
height=* 15.2 Metres. Derived from BD TOPO HAUTEUR attribute. See disclaimer regarding height definition.
building:levels=* 5 Above-ground floor count from BD TOPO NB_ETAGES
source:height=* IGN BD TOPO Source attribution applied to every building updated with height=*
source:height:date=* TBD Date value to be confirmed (edition release date vs. per-record modification date)

For Volumes bâtis fallback buildings:

OSM Key Value (example) Notes
building:levels=* MAX nb_pl across VB volumes inside the OSM polygon Floor count
height=* round(nb_pl × 3.2, 1) Only if nb_pl ≥ 2
source:height=* Volumes_batis Source attribution
source:height:date=* 2025-05-15

Per-changeset tags

OSM Key Value
comment=* Add building heights from IGN BD TOPO — Paris pilot #tomtom-osm #paris-bdtopo
source=* IGN BD TOPO
import=* yes

One changeset is created per zoom-15 tile.

Conflation and Acceptance

Buildings are matched between BD TOPO and OSM using a full spatial join. A candidate is any OSM building that intersects a BD TOPO building; a match is any candidate that passes all filters listed in the Methodology section.

A candidate is rejected if any of the following apply:

  • Overlap with source polygon is less than 70%
  • Source geometry is invalid (self-intersections, malformed rings, corrupted polygons)
  • Source-to-OSM area ratio exceeds 120%
  • Source height is below 2.5 m
  • OSM building already has a height=* tag
  • OSM building already has a building:levels=* tag (no height added)
  • OSM building is modelled in 3D
  • OSM building's type is not in the inclusion list

Rejected candidates are written to per-filter fallout files for transparency and review.

Approach and Compliance

The automatic import of building heights is conducted in full alignment with the OSM Automated Edits Code of Conduct and Import Guidelines. This includes:

  • Creating this dedicated OSM Wiki page describing the import plan, methodology, and data sources
  • Ensuring the process is transparent and well-documented
  • Providing regular updates to the community about progress and next steps

Our approach is iterative:

  1. A small-scale test import on a limited set of 20–30 buildings
  2. Community review period with time for feedback and validation
  3. Based on feedback, a detailed and community-reviewed import plan before scaling up
  4. Paris city scope updated in phases with QC and time for community review between each phase

Phased Rollout Plan

The import will proceed in phases to minimise risk, allow iterative validation, incorporate community feedback, and ensure quality control at each stage.

Phase Description Buildings Status
Pilot Small-scale test — flat-roof buildings only, height only 2 changesets ✅ Completed
Phase 1+ Paris city scope, broken into geographic phases with QC ~19,500 total Pending community review

Detailed phase definitions (arrondissement-level breakdown) will be published here once community feedback on the pilot has been incorporated.

Acceptance Criteria (per phase)

  • Import script runs successfully
  • No unintended overwrites of existing OSM data
  • All edits are properly grouped into changesets with descriptive comments (one changeset per tile)
  • Changes follow OSM import guidelines and tagging standards
  • Each phase passes QC and community review before proceeding

Post-phase Reporting

After completing each phase, the following summary will be published on this wiki page and announced on the forum thread:

  • List of OSM changeset IDs created
  • Number of successfully updated buildings
  • Number of rejected buildings (with reason codes)
  • Any issues encountered and how they were resolved

Editing Account

All automated edits are performed under the dedicated TTmechanicalupdates account. This ensures transparency, easy identification in object history, and separation from personal mapping.

Revert Plan

If a problem is identified in any batch:

  • Per-changeset (per-tile) revert is the default mitigation, using standard OSM revert tools
  • Larger reverts (multi-changeset) will be coordinated with the French community via the forum thread before action
  • The TTmechanicalupdates account is dedicated to these edits, so reverts can be scoped cleanly

Process Output — Statistics

Run summary (Paris, 18 June 2026)

The full process run on the Paris BD TOPO dataset produced the following output. The run processed 118,091 source buildings in approximately 10 minutes 21 seconds.

Metric Value
Source buildings processed 118,091
Total candidates 266,277
Matched (to be imported) 19,541 (7.3%)
Rejected 246,736 (92.7%)
Match-to-candidate ratio ~1 in 14 candidates becomes a match
Total OSC files generated 193
Total run time ~10 min 21 s

Rejection breakdown

The largest rejection reason is, by far, invalid overlap percentage (below the 70% threshold). Note: rejection reasons are non-exclusive — a single candidate can fail multiple filters and therefore be counted in more than one row. As a result the sum of the shares exceeds 100%.

Rejection reason Count Share of rejected
invalid_overlap_pct 185,692 75.3%
invalid_source2osm_area_ratio 68,895 27.9%
invalid_source_height 11,535 4.7%
osm_3d_building 4,276 1.7%
excluded_building_type 2,152 0.9%
osm_height_exists 968 0.4%
invalid_source_geom 0 0.0%

Matched building types

Generic building=yes and building=apartments together account for about 93.9% of all matches.

Building type Matches Share of matches
yes 12,361 63.3%
apartments 5,976 30.6%
house 344 1.8%
office 147 0.8%
school 131 0.7%
hotel 118 0.6%
hospital 63 0.3%
retail 57 0.3%
church 37 0.2%
service 35 0.2%

OSC output

The process produced 193 OSC files (one per zoom-15 tile containing matches). The busiest tiles by update count are:

Tile Updates
11276-16595 374
11273-16596 366
11268-16595 365
11269-16601 311
11271-16602 298
11275-16593 295
11276-16594 292
11270-16602 290
11269-16596 287
11273-16602 284

Pilot Run

The pilot has been completed using a conservative configuration designed to minimise risk and allow community review before any larger-scale activity.

Pilot scope

  • Scope: Flat-roof buildings only — the OSM and IGN height definitions are closest for this subset, which minimises (though does not eliminate) the discrepancy described in the disclaimer above.
  • Tags updated: height=* together with the source attribution tag source:height=IGN BD TOPO on each updated building. No other tags (including building:levels=*) were modified.
  • No regression: All other existing tags on the affected buildings were preserved unchanged.

Pilot changesets

Changeset Link
184429626 openstreetmap.org/changeset/184429626
184429627 openstreetmap.org/changeset/184429627

Outcome

  • Results are as expected — values applied match source values within tolerance.
  • Edits are limited to height=* and source:height=* on flat-roof buildings only.
  • No regression observed on any other tags.
  • Changesets are publicly visible for community review.

We invite the French OSM community to review these changesets and share any feedback, concerns, or questions on the forum thread before we proceed with the phased rollout.

Community Engagement and Announcements

Forum thread

Primary consultation channel: [France/Paris Projet d'import automatique des hauteurs de bâtiments – IGN BD TOPO]

Announcements timeline

Date Subject Posted by
June 2026 Initial community discussion post — project introduction, source description, feedback request Priscilla Zachee (TomTom)
June 2026 Pilot run completed — changesets shared for community review Priscilla Zachee (TomTom)

Engagement principles

  • All plans are shared with the community before any edits are made
  • Community feedback is actively solicited and incorporated
  • Each phase includes a review period before proceeding
  • All changesets are shared for community review
  • Concerns, objections, and suggestions are addressed transparently

Data Quality and Cross-validation

All statistics below are based on full dataset analysis (not sampling). Both datasets (~100,000+ records each) were processed in full.

Metric Value Notes
BD TOPO Paris records 118,496 Department 75, Edition 3.5 (15 March 2026)
BD TOPO records with LOD attributes ~93.5% Height and/or floors populated
OSM Paris buildings 103,458 Overpass extract
OSM buildings matching BD TOPO 99.93% Spatial join + deterministic ID
Expected import yield ~93.4% Intersection of source completeness and OSM coverage
Volumes bâtis only (fallback) 4,113 buildings 4.0% — where BD TOPO has no data
Neither source 4,823 buildings 4.7% — manual or skip
BD TOPO vs VB floor agreement 61% exact; 83.1% within ±1 floor On 79,338 overlap buildings

Methodology of statistics

  • Source-side counts: Direct census of BD TOPO 3.5 for department 75
  • OSM-side: OSM Paris buildings via Overpass extract (103,458 buildings)
  • Matching: Full join using deterministic IDs where available, centroid-in-polygon spatial fallback
  • Cross-validation: BD TOPO vs Volumes bâtis on the full overlap set (79,338 buildings)
  • Inputs:
  • Analysis recorded in: MAPEX-8188 Gate 3

Current Status

Item Status
Source data analysis (MAPEX-8188) ✅ Complete
Process preparation (MEP-20875) 🔄 In progress
Technical documentation ✅ Complete (this page)
Wiki page ✅ Published
Community forum post ✅ Published
Process run on full Paris scope ✅ Complete (18 June 2026)
Pilot run (flat-roof buildings, 2 changesets) ✅ Complete
Phased rollout ⏳ Pending community review of pilot

Open Questions

The following community question is being addressed:

  1. Location accuracy: What is the average offset between OSM building footprints and IGN BD TOPO footprints for matched buildings? — Analysis in progress; results will be documented here once available.

Note: The question regarding the difference between IGN and OSM height definitions has been formally acknowledged and addressed in the Important Disclaimer section at the top of this page.

Contact