What a LAS classification code is
The LAS format, maintained by the American Society for Photogrammetry and Remote Sensing (ASPRS), stores each lidar return as a record with its X, Y, Z, intensity, return number and a classification value. The classification is a number that says what the point hit: ground, vegetation, a building, water, a wire.
LAS 1.4 (current revision R16, August 2025) defines standard meanings for class values 0 through 22 in point data record formats 6–10, reserves 23–63 for ASPRS, and leaves 64–255 free for user-defined classes. The legacy formats 0–5 only define classes 0–9. ASPRS also released LAS 1.5 in August 2025, which drops the legacy formats; it keeps the same class table.
Software reads these numbers literally. A DTM tool builds from class 2; a building extractor looks at class 6. Anything mislabelled flows straight into the product.
The standard classes, 0 to 22
| Code | Class | What it means in practice |
|---|---|---|
| 0 | Created, never classified | The default for points no routine has touched. Should not survive into a deliverable. |
| 1 | Unclassified | Processed, but not assigned to any other class: cars, fences, clutter. A legitimate final class. |
| 2 | Ground | Bare earth. The class every DTM, contour set and hydro model is built from. |
| 3 | Low vegetation | Height bands are set by the project spec, not by ASPRS. |
| 4 | Medium vegetation | As above; many projects merge 3–5 or use only one vegetation class. |
| 5 | High vegetation | Canopy; drives canopy height models and vegetation encroachment checks. |
| 6 | Building | Roofs and walls of structures; the input for footprints and 3D building models. |
| 7 | Low point (noise) | Spurious returns below the true surface, such as multipath errors. |
| 8 | Reserved | Was “model key-point” in older versions; LAS 1.4 uses the key-point flag instead. |
| 9 | Water | Water surfaces; often sparse or missing because water absorbs near-infrared pulses. |
| 10 | Rail | Railroad tracks. |
| 11 | Road surface | Paved and unpaved road surfaces, when the project separates them from ground. |
| 12 | Reserved | Was “overlap” in older versions; LAS 1.4 uses the overlap flag instead. |
| 13 | Wire – guard (shield) | Shield wires on transmission lines. |
| 14 | Wire – conductor (phase) | Conductors; the class clearance and sag analysis runs on. |
| 15 | Transmission tower | Lattice towers and poles carrying lines. |
| 16 | Wire-structure connector | Insulators and attachment hardware. |
| 17 | Bridge deck | Bridge surfaces, kept out of ground so the DTM runs under the bridge. |
| 18 | High noise | Spurious returns above the surface: birds, clouds, atmospheric scatter. |
| 19 | Overhead structure | Conveyors, mining equipment, traffic signals and similar structures. |
| 20 | Ignored ground | Ground points deliberately left out of the surface, typically next to hydro breaklines. |
| 21 | Snow | Snow surfaces, where they can be identified. |
| 22 | Temporal exclusion | Features excluded because they changed between overlapping collections, such as tide or water-level change. |
Values 23–63 are reserved; 64–255 are user-definable. If your client uses custom codes (for example separate classes for curbs or pole-mounted equipment), put them in that range and document them in the project metadata.
Classes versus flags
LAS 1.4 moved two old classes into per-point flags, which is why codes 8 and 12 are now reserved:
- Overlap flag marks points from overlapping flight lines without changing their class, so overlap points can still be ground or vegetation.
- Key-point flag marks the thinned subset used for a model, again without changing the class.
- Withheld flag marks points that should be ignored in processing (for example gross outliers), and the synthetic flag marks points created rather than measured.
A frequent conversion bug is carrying legacy class 12 forward into a 1.4 file. Check the class histogram after any format conversion.
Which classes USGS 3DEP deliverables require
For lidar delivered to the USGS 3D Elevation Program, the Lidar Base Specification (2025 rev. A) sets a minimum classification scheme: class 1 (processed, but unclassified), 2 (bare earth), 7 (low noise), 9 (water), 17 (bridge deck), 18 (high noise) and 20 (ignored ground, typically near breaklines), plus 21 (snow) and 22 (temporal exclusion) where present. No points may remain in class 0 unless they are flagged as withheld, and class codes may not be used in place of the overlap flag.
The 2025 revision also uses class 20 for near-vertical and overhanging surfaces, and puts perennial snow in class 21 and includes it in the bare-earth DEM.
Many state and county programs follow the same list and add building and vegetation classes. If the scope says “3DEP-compliant”, read the current Lidar Base Specification itself; the class table is only one of its requirements. See our guide to USGS 3DEP quality levels for density and accuracy.
How a clean classification is built
- Noise first. Remove high and low noise (18 and 7) before anything else, or ground filtering will snap to a multipath point below the surface.
- Ground. Run an automated ground filter tuned to the terrain (flat agricultural land and steep forested slopes need different settings), then review it in profile.
- Above-ground classes. Vegetation by height above ground, buildings by planarity, wires and towers by geometry.
- Manual edit. Fix what the routines miss: bridges, culverts, low walls, dense understory, the edges of water.
- QC. Check the class histogram, look for class 0 leftovers, review ground in cross sections, and build a test DTM to spot spikes and pits.
Automated routines get most points right on easy terrain; the manual pass and the QC are where deliverable quality is decided.
Common problems in delivered clouds
- Points left in class 0, or everything left in class 1, so the cloud looks classified but is not.
- Low noise classified as ground, leaving pits in the DTM.
- Bridge decks left in ground, which dams the hydro-flattened DEM.
- Vegetation height bands that do not match the project spec.
- Legacy classes 8 and 12 carried into LAS 1.4 instead of using flags.
- No coordinate reference system (WKT) in the header, or the wrong vertical datum.