Key takeaways
- A point cloud is a set of measured points. A classified point cloud is the same points with a label attached to each one saying what the software decided it hit.
- Those labels are a decision, not a measurement. The points are measured data. The classes are an interpretation layered on top, usually automated and sometimes reviewed by a person.
- A bare earth surface is built by throwing most of the cloud away. Everything not labelled ground is filtered out, so the surface you measure on inherits every classification error.
- The common classes follow a standard numbering, and ground, low and high vegetation, building, water and noise cover almost everything a commercial job uses.
- Misclassification does not look like an error. It looks like terrain, which is why it survives review and ends up in a volume.
- The two failure modes that cost money are vegetation left in the ground class, which lifts the surface, and genuine ground removed as vegetation, which drops it.
- Stored material is the classic trap. A stockpile is neither ground nor vegetation, and how the filter treats it decides whether your pile appears in the surface at all.
- Ask whether classification was automated only or manually reviewed, and ask for the cloud with its classification intact rather than just the finished surface.
A LiDAR deliverable usually arrives as two things: a point cloud, and a surface built from part of it. The surface is what gets measured on. The cloud is where the decisions were made, and it is worth understanding what those decisions were, because they are the part most likely to be wrong in a way that looks plausible.
This is written for the person receiving the files rather than the person processing them. No specialist software is needed to follow it, and the checks at the end can be run in a free viewer.
What a class actually is
A LiDAR sensor fires pulses and records where each one came back from. The result is millions of points, each with a position and some extra attributes such as return intensity and how many returns that pulse produced. That part is measurement.
Classification is what happens next. Software works through the cloud and attaches a label to every point saying what it thinks that point hit: the ground, a tree, a roof, a wire, nothing at all. The labels come from a standard numbering scheme that most software and most clients share, which is why a point cloud from one vendor opens sensibly in another vendor's software.
The important thing is the status of those labels. The coordinates of a point are a measurement with a known uncertainty. The class on that point is a judgement made by an algorithm about geometry and return behaviour, which somebody may or may not have checked. The two sit in the same file and look equally authoritative.
The classes you will actually see
- Unclassified. Points the process has not assigned, either because classification was not run or because the point did not fit a rule. A cloud delivered almost entirely unclassified has not been processed for ground extraction, whatever the covering note says.
- Ground. The class everything else depends on. These are the points the filter decided are bare earth, and these are the points a terrain surface gets built from.
- Vegetation, usually split into low, medium and high. Grass and crop stubble in the low band, brush and shrubs in the middle, trees in the high band. The low band is where most trouble lives, because low vegetation and ground are geometrically similar.
- Building. Roofs and structures. Useful on a developed site, and a common source of confusion on flat roofed industrial buildings, which a ground filter can read as terrain.
- Water. Returns from a water surface, where there are any. Water absorbs most of the pulse, so a pond often appears as a sparse patch or a hole rather than a surface.
- Noise, low and high. Points the process believes are spurious: birds, dust, haze, multipath, stray returns well below or above the terrain. Noise left in a cloud is the fastest way to get a spike or a pit in a surface.
- Wires and conductors, on jobs that ask for them. Transmission and distribution work frequently separates conductors, towers and the ground beneath them, which is a different and more deliberate classification job.
Most commercial jobs use a handful of these. A stockpile survey may only need ground, vegetation and noise separated properly to do its job.
Bare earth is a filtering decision
This is the sentence worth keeping. A bare earth terrain model is not a measurement of the ground. It is what remains after everything the software labelled as not ground has been deleted, with the resulting gaps interpolated across.
That has a direct consequence. Every classification error becomes a terrain error, and interpolation makes it smooth. A patch of brush left in the ground class does not appear as scattered noise, it appears as a gentle rise. A strip of real ground removed as vegetation does not leave a hole, it leaves a quiet hollow spanned by a plausible slope. Neither looks like a mistake. Both change a volume.
It is also why the distinction between a surface of everything and a surface of the ground matters so much on a vegetated site. That difference is set out in DSM versus DTM, and the reason photogrammetry struggles with the same problem is in LiDAR versus photogrammetry. A camera based survey has no classes in this sense at all. It returns a surface of whatever light reached, which is one of the honest limits listed in what a drone survey cannot tell you.
How a misclassification becomes a wrong number
Five situations that produce real money errors on Alberta sites:
- Standing crop or heavy grass classified as ground. The surface sits above the real ground by roughly the height of the vegetation. On a cut and fill calculation that reads as material that is not there. LiDAR penetrates vegetation far better than a camera does, but it does not see through a dense mat of it.
- A stockpile filtered out, or filtered in. A pile is neither bare earth nor vegetation. Depending on the filter settings it may be retained as ground, which is normally what you want for a volume, or stripped as an object sitting on the terrain, which quietly removes the thing you are paying to measure. The toe of the pile is where this shows first, and it interacts with the base surface choice described in reconciling a volume against scale house tonnage.
- Flat roofs read as terrain. A large low slope roof has the geometric signature of ground. If it stays in the ground class the terrain model includes a plateau at roof height.
- Snow and frozen surfaces. A snow surface classifies cleanly as ground, because as far as the sensor is concerned it is a surface. What it is not is the ground, which is the whole problem described in surveying stockpiles and sites under snow.
- Parked equipment, bins and material lay down. A truck sitting on a pad during the flight is either a lump in the terrain or a hole where it was removed and interpolated over. On a monitoring series it looks like movement between visits.
The common thread is that a classification error on a smooth surface looks like topography. It does not look like an accuracy problem, which is why it is rarely caught by the kind of check that catches accuracy problems. The same framing applies to a design comparison, where most bad cut and fill maps are frame or surface problems rather than measurement problems, as described in comparing an as built against a design surface.
Checks you can run yourself
None of these need specialist training, and all of them can be done in a free point cloud viewer:
- Display the cloud coloured by class. Thirty seconds of looking tells you whether classification was actually run and whether the ground class looks like the ground. Large unclassified areas are the first red flag.
- Take a profile across the pile toe and across a vegetated edge. A profile line is in every viewer. You are looking for whether the ground surface runs under the pile sensibly and whether it steps up where the vegetation starts.
- Check a surface you know is flat and hard. A paved yard, a concrete pad, a scale deck. If the terrain model wanders across a surface you know to be flat, the classification or the noise filtering needs another look.
- Compare the terrain model against the orthomosaic. Overlay them. Terrain features that do not correspond to anything visible in the imagery are usually classification artefacts. Reading an ortho safely is covered in how to read an orthomosaic.
- Ask for the volume both ways on a contested pile. A volume computed against the delivered terrain and one computed against a surveyed or design base surface give you a bracket. If the two agree closely the classification under the pile is probably sound.
What to ask for in the scope
Five requests, and none of them should attract a surcharge on a normal job. Name the class scheme and which classes will be populated, so ground, vegetation and noise are explicitly in scope rather than assumed. Ask whether classification is automated only or includes manual review and correction, because on a vegetated or developed site the manual pass is the difference between a usable terrain model and a plausible one. Ask for the classified cloud itself in an open format alongside the finished surface, so the filtering can be revisited later without reprocessing. Ask for the processing report to state what filter was used and what was done about stored material and structures. And on a repeating program, fix the classification approach for the life of the series, because changing the filter mid programme produces a step in the numbers that reads as material movement rather than as a processing change, which is the same trap described in keeping a measurement series comparable across a vendor change.
The underlying point is simple enough. The points are measurement, and the classes are judgement. Treat the labels as something to be checked rather than something to be trusted, and most of the surprises in a LiDAR deliverable disappear before they get as far as a volume somebody is arguing about. If you want a second look at a classified cloud you already have, send it through the contact page and say what the number is being used for.
