Guide · LiDAR

ASPRS LAS classification codes, explained

Every point in a LAS file carries a class number. Get the classes right and the cloud drops straight into a DTM, a planimetric map or a powerline model; get them wrong and every downstream surface inherits the error. This is the reference table, with the practical meaning of each class.

Updated 5 min readBy the SANMUD production team

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

ASPRS standard point classes, LAS 1.4 (point data record formats 6–10).
CodeClassWhat it means in practice
0Created, never classifiedThe default for points no routine has touched. Should not survive into a deliverable.
1UnclassifiedProcessed, but not assigned to any other class: cars, fences, clutter. A legitimate final class.
2GroundBare earth. The class every DTM, contour set and hydro model is built from.
3Low vegetationHeight bands are set by the project spec, not by ASPRS.
4Medium vegetationAs above; many projects merge 3–5 or use only one vegetation class.
5High vegetationCanopy; drives canopy height models and vegetation encroachment checks.
6BuildingRoofs and walls of structures; the input for footprints and 3D building models.
7Low point (noise)Spurious returns below the true surface, such as multipath errors.
8ReservedWas “model key-point” in older versions; LAS 1.4 uses the key-point flag instead.
9WaterWater surfaces; often sparse or missing because water absorbs near-infrared pulses.
10RailRailroad tracks.
11Road surfacePaved and unpaved road surfaces, when the project separates them from ground.
12ReservedWas “overlap” in older versions; LAS 1.4 uses the overlap flag instead.
13Wire – guard (shield)Shield wires on transmission lines.
14Wire – conductor (phase)Conductors; the class clearance and sag analysis runs on.
15Transmission towerLattice towers and poles carrying lines.
16Wire-structure connectorInsulators and attachment hardware.
17Bridge deckBridge surfaces, kept out of ground so the DTM runs under the bridge.
18High noiseSpurious returns above the surface: birds, clouds, atmospheric scatter.
19Overhead structureConveyors, mining equipment, traffic signals and similar structures.
20Ignored groundGround points deliberately left out of the surface, typically next to hydro breaklines.
21SnowSnow surfaces, where they can be identified.
22Temporal exclusionFeatures 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

  1. 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.
  2. 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.
  3. Above-ground classes. Vegetation by height above ground, buildings by planarity, wires and towers by geometry.
  4. Manual edit. Fix what the routines miss: bridges, culverts, low walls, dense understory, the edges of water.
  5. 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.

Frequently asked questions

What is the difference between class 0 and class 1?

Class 0 means the point was created but never classified. Class 1 means it was processed and did not belong to any other class. A finished deliverable should not contain class 0 points.

Which class is bare earth?

Class 2, ground. Digital terrain models, contours and hydro-flattened DEMs are built from class 2 points, plus breaklines where the specification calls for them.

Can I use my own classification codes?

Yes. LAS 1.4 leaves values 64–255 for user-defined classes. Use them for anything the standard classes do not cover and document their meaning in the project metadata. Values 23–63 are reserved by ASPRS and should not be used.

Why are classes 8 and 12 reserved?

They used to mean model key-point and overlap. LAS 1.4 replaced both with per-point flags, so a point can be marked as overlap or key-point and still keep its real class.

Sources

  1. ASPRS — LAS Specification 1.4 R16 (PDF)
  2. ASPRS — LAS specification releases
  3. USGS — Lidar Base Specification tables

This guide summarizes published standards for practitioners; it is not a substitute for the documents themselves or for the judgment of the licensed professional in responsible charge. Check the current edition before relying on any figure.

More guides

Drone mapping

Drone survey accuracy & GCPs

GSD, ground control versus checkpoints, RTK/PPK, GCP layout, and how to report accuracy under the ASPRS standard.

Need a cloud classified?

Send a sample tile with your class list and project specs, and we’ll come back with a scoped estimate and a turnaround schedule.