Geospatial Entity Resolution

Coordinate-agnostic matching of 3D buildings across independent city datasets

When disaster strikes, emergency teams must align newly captured UAV 3D building meshes with existing 3D city models - often without reliable GNSS or shared coordinates. This dashboard demonstrates an entity resolution pipeline that matches buildings purely by geometric shape, providing first responders with accurate situational awareness in damaged urban areas.

How It Works?

Two 3D buildings matched across datasets

Matching Buildings Across Datasets

Two city surveys may model the same building independently, with no shared identifiers. The system determines which record in one dataset refers to the same real-world structure in another, relying solely on the geometry of the 3D models.

Works Without GPS or Shared Coordinates

When datasets originate from different sources, they often use incompatible coordinate systems. The pipeline starts by matching buildings purely by their 3D shape, so coordinate misalignment is not an obstacle. The high-confidence shape matches then serve as anchors to recover the rigid transform between the two coordinate frames, after which a spatial nearest-neighbour pass catches additional matches that geometric similarity alone missed.

3D viewer showing buildings colour-coded by match result

Reads Full 3D Geometry

Buildings are stored as CityJSON files, a standard format for 3D city models. The pipeline processes the complete 3D surface geometry of each building rather than reducing it to a single point on a map, capturing shape details that a point representation would miss.

Geometric blocking: nearest-neighbour search selecting candidate pairs from the Index dataset

Efficient Candidate Shortlisting

Comparing every building in one dataset against every building in another is not feasible at scale. The blocking step pre-selects a small set of geometrically similar candidates for each building, so the classifier processes only the most probable matches.

The Pipeline

Coordinate-agnostic geospatial ER pipeline: training and inference over candidate and index datasets, with featurization, blocking, and matching
1

Geometric Featurization

Each building is summarised as a set of geometric measurements: area, height, perimeter, compactness, vertex count, and others. These measurements form a compact numerical representation of the building's shape that a machine-learning model can process.

2

Geometric Blocking

For each Candidate building, the blocking step selects a short list of the most geometrically similar buildings from the Index dataset. Only these candidate pairs proceed to the classifier, reducing the total number of comparisons from millions to a few per building.

3

Match Classification

A machine-learning classifier scores each candidate pair and outputs a confidence value. Pairs above the decision threshold are labelled as matches. The demo displays the results as a colour-coded map of the city, showing confirmed matches, false positives, and buildings with no match found.

4

GeoSpatial Alignment

From the high-confidence matches in step 3, the system recovers the rigid transform between the two datasets' coordinate frames via RANSAC. With the alignment in hand, every candidate is rematched to its nearest neighbour in the index in post-alignment coordinates. This spatial pass recovers matches that geometric similarity alone missed, lifting end-to-end recall well above what the blocking step can deliver on its own.

Tune the Pipeline

Two parameters are exposed in the demo's sidebar so you can explore the precision/recall trade-off live.

K

BKAFI Neighbour Count

Default: 5 · Range: 1 – 100

How many index buildings each candidate's BKAFI pool keeps. Larger pools give the classifier more chances to find the true match; smaller pools yield cleaner anchors for the RANSAC alignment step.

Lowering K shrinks the pool feeding RANSAC — often improves alignment quality at the cost of classifier recall on individual pairs.

d

Cutoff Distance

Default: 10 m · Range: 0.5 – 100 m

After alignment, each candidate's nearest index building must lie within this distance to count as a confirmed match. Anything beyond the cutoff is flagged "too far".

Tightening the cutoff trades recall for precision — fewer matches confirmed, but the ones that are confirmed are spatially tight.

Try the Demo

Run the full PDM pipeline on real 3D building data from The Hague. The tutorial guides you through the ER lifecycle, from raw data ingestion to visual verification of matches.

Launch Demo