Building classification from airborne LiDAR: roofs, planes, and footprints

Buildings are one of the few LiDAR classes you can name on sight. A roof is a hard, elevated, flat surface, and from the air it looks nothing like the ground beneath it or the tree beside it. Building classification turns that intuition into a rule an algorithm can apply at scale, pulling every return that belongs to a structure into its own class so the buildings can become footprints, roof planes, and 3D models.
Class 6, and why it matters twice
In the LAS specification, code 6 is Building. It covers permanent above-ground structures of every kind, house or warehouse or detached garage, without dividing them by use. Bridge decks get their own code and stay out. The class matters in two directions at once: buildings belong in the surface model (DSM) but must be removed from the bare-earth terrain model (DTM), or the terrain bulges wherever a structure sits. And the building points themselves are a product, not waste.
Once class 6 is reliable, a long list of products draws on it:
- Building footprints: 2D polygons for base maps, cadastre checks, and asset registers.
- 3D city models: block models and roof-shape models for planning, visualization, and shadow studies.
- Solar siting: roof plane orientation, slope, and area say which roofs suit panels before anyone climbs a ladder.
- Floodplain and viewshed analysis: which structures fall inside a modeled flood extent, and where buildings block a line of sight.
The geometric approach: fitting planes to roofs
The classic way to find buildings treats a roof as a collection of flat facets, and geometry alone gets you a long way. Each point gets the direction its local surface faces: points on the same roof facet all face the same way, canopy points face everywhere. Plane fitting (RANSAC, a method that keeps the plane the most points agree on) pulls the dominant facet out of messy data, and region growing traces it to its edges. Ground is found first, which leaves elevated flat returns as building candidates; vegetation is rejected because a tree holds no stable plane.
The strength of this approach is that every step can be explained and nothing needs training. Its weakness shows at edges where a roof meets an overhanging tree, on curved roofs, and where walls are sampled too thinly to fit.
The learned approach: deciding what is a building
A learned model classifies each point from the pattern of points around it, not from one hand-set plane test. Trained on labelled tiles, it learns the difference between a building edge and an overhanging branch, exactly the boundary where geometry goes wrong. It also holds up on walls and facades in oblique and UAV data, which matters for full 3D models. In practice the two approaches combine well: the learned pass decides what is a building, then plane fitting runs on those points to give the roof its crisp facets back.

Roofs versus canopy: the signals that separate them
Roofs and tree canopy are both elevated, so height alone cannot tell them apart. The separation comes from combining several signals:
| Signal | Roof (Building) | Canopy (High Vegetation) |
|---|---|---|
| Planarity | High: points lie on flat facets | Low: points fill a 3D volume |
| Return pattern | Mostly single or last returns | Multiple returns per pulse |
| Surface direction | Consistent within a facet | Highly variable point to point |
| Height above ground | Near-constant across a facet | Elevated and irregular |
The return pattern is often the strongest cue. A pulse that strikes an opaque roof comes back once. A pulse that enters a tree splits: leaves first, branches later, sometimes the ground through a gap. One hard return versus a stack of partial ones is a signature canopy cannot fake.
Hard cases and quality control
- Buildings under tree overhang. Branches above the eaves mix canopy and building returns; the roof edge is where classes bleed.
- Rooftop clutter. HVAC units, vents, and parapets break the clean plane yet belong to the structure.
- Low sheds versus vehicles. A low, flat object near ground height is genuinely ambiguous.
- Connected structures. Row houses share walls; pulling individual footprints out of one merged mass takes more than a height threshold.
Quality control is straightforward to describe and worth doing every time: overlay the classified building points on orthoimagery or reference footprints, hunt edge bleed, check for footprints that appear or vanish at tile seams, and reconcile class counts across neighbouring tiles so drift shows up before a client sees it.
From classified points to deliverables
Once class 6 is clean, the deliverables follow directly. Roof plane extraction segments each facet and reads off slope, aspect, and area, the inputs a solar study needs. Footprint polygons come from projecting the building points down, tracing the outline, and squaring it to the right angles real buildings hold. Facade points from dense UAV clouds add the walls that turn a block model into a real 3D building.
In Vecten Desktop, buildings belong to VClassify, the module for the core semantic classes; VGround covers the bare-earth terrain beneath them. The work runs locally on the operator's own machine rather than through an outside service, so large urban blocks stay on local storage while roof edges and footprints are reviewed.
Buildings are where a LiDAR block becomes a map of the built world. Get class 6 right, separate the roof from the canopy and hold the edges, and a scan turns into footprints, roof planes, and city models a planning or energy team can trust.


