Skip to content
LidarKit

LAS classification codes

The ASPRS class table, what changed between versions, and how to tell what a file really contains.

Every point in a LAS or LAZ file carries a classification: a small integer saying what the producer decided the point is — ground, building, vegetation, water, noise. The codes are standardised by the ASPRS LAS specification, so class 2 means ground in a file from any vendor, in any country, produced with any software.

That is the theory. In practice, the table has changed between LAS versions, two of its codes moved into flag bits, and a large part of the range is left for producers to define themselves. This page lays out the current table, the differences, and the questions people actually type into a search box.

The standard table (LAS 1.4, point formats 6 to 10)

Point data record formats 6 to 10 store the class in a full byte, giving 256 possible values. The ASPRS standard classes are:

CodeClassNotes
0Created, never classifiedNo classification step has been run.
1UnclassifiedProcessed, but no class assigned.
2GroundBare earth. The source of every DTM.
3Low vegetationHeight thresholds are the producer's choice.
4Medium vegetation
5High vegetationTree canopy.
6BuildingRoofs, and usually walls.
7Low point (noise)Returns well below the surface.
8ReservedWas Model key-point in formats 0 to 5; now a flag.
9Water
10RailAdded in LAS 1.4.
11Road surfaceAdded in LAS 1.4.
12ReservedWas Overlap in formats 0 to 5; now a flag.
13Wire – guard (shield)Power line shield wire.
14Wire – conductor (phase)Power line conductor.
15Transmission tower
16Wire-structure connectorInsulators.
17Bridge deckKept separate so DTMs can drop it.
18High noiseReturns well above any real object.
19Overhead structureConveyors, gantries, traffic signals. Added in R15.
20Ignored groundGround near breaklines, excluded from surfaces. Added in R15.
21SnowAdded in R15.
22Temporal exclusionFeatures that changed between acquisitions. Added in R15.
23–63ReservedFor future ASPRS assignment.
64–255User definableProject-specific. Meaning must be documented elsewhere.

"R15" is revision 15 of the LAS 1.4 specification, published in 2019, which added classes 19 to 22. A file written against an earlier revision can be perfectly valid and still know nothing about snow.

Point formats 0 to 5: a five-bit class

The older point formats pack the class into the low five bits of one byte, so only codes 0 to 31 exist, and the upper three bits carry flags. Codes 0 to 7 and 9 mean the same as above. The differences are:

CodeFormats 0–5Formats 6–10
8Model key-point (mass point)Reserved — became the key-point flag
10, 11ReservedRail, Road surface
12Overlap pointsReserved — became the overlap flag
13–31ReservedWires, towers, bridge deck, noise, and so on
32–255Not representableReserved, then user definable from 64

This is why a LAS 1.2 file can never carry a "Bridge deck" class, and why converting a 1.4 format-6 file down to format 1 loses any class above 31. Which format a file uses is the single byte at header offset 104; the point formats article covers what else each one carries.

The flags: synthetic, key-point, withheld, overlap

Four properties of a point are not classes but bits set alongside the class, and they move between the two format families:

  • Synthetic — the point was not measured by the sensor but created, for example by interpolation along a breakline.
  • Key-point — a model key point: one that must survive any thinning, because removing it would change the surface.
  • Withheld — the point should be ignored by processing but was kept in the file. Noise is often withheld rather than deleted.
  • Overlap — the point lies where two swaths cover the same ground. Formats 6 to 10 only; older formats used class 12 instead.

In formats 0 to 5 the first three live in bits 5, 6 and 7 of the classification byte. In formats 6 to 10 all four occupy the low four bits of a separate classification-flags byte, and the class byte is free for its full 256 values. Software that reads a format 6 file with format 1 rules will misread every flagged point as a class in the thirties or higher — a classic symptom of a tool written before LAS 1.4.

Questions people actually ask

What does class 2 mean?

Ground: bare earth, as judged by whoever or whatever classified the file. It is the class digital terrain models are built from and the one worth checking first in any delivery. A ground class that includes low vegetation gives a DTM that is too high; one that lost the ground under trees gives a DTM with holes.

What is the difference between 0 and 1?

Class 0 says nothing has looked at the point. Class 1 says something did and assigned nothing. A raw sensor export is class 0 throughout; a classified delivery should have no class 0 at all, and its class 1 is everything the pipeline could not place.

What is class 7, and how is it different from 18?

Both are noise, split by direction. Class 7, Low point, is for returns beneath the surface — multipath reflections off water and glass, and sensor artefacts — that would drag a terrain model downward. Class 18, High noise, is for returns well above anything real: birds, haze, cloud. Files written before LAS 1.4 put both kinds in class 7.

What is class 9?

Water. Laser returns from water are sparse and unreliable, so producers usually classify what they get as 9 and, for a terrain model, hydro-flatten the area with synthetic breakline points instead.

What is class 12?

In LAS 1.2 and 1.3, Overlap: points in the strip where adjacent flight lines both covered the ground, set aside so the delivered density stays even. LAS 1.4 made overlap a flag for the new point formats and reserved code 12, so class 12 in a modern file signals an older or legacy-format pipeline.

What is class 17?

Bridge deck. It exists so that a bridge can be kept in a surface model of the built environment and dropped from a bare-earth terrain model, without anyone having to decide per project whether a bridge is "ground".

What are classes 64 and above?

Whatever the producer says they are. The specification hands 64 to 255 to users, and their meaning must be documented — ideally in a classification lookup record inside the file, more often in a report that travels with the delivery. The USGS Lidar Base Specification, for example, defines some project classes in this range. Without the documentation, a class 65 point is a mystery.

Which classes does the USGS require?

The USGS Lidar Base Specification requires a minimum set: 1 (processed, unclassified), 2 (ground), 7 (low noise), 9 (water), 17 (bridge decks), 18 (high noise), and 20 (ignored ground). Earlier revisions used class 10 for ignored ground; when ASPRS assigned 10 to Rail, the specification moved it to 20. Deliveries against different revisions therefore disagree on this one code. The 2020 revision also adopted 21 (snow) and 22 (temporal exclusion) from LAS 1.4 R15.

Finding out what a file actually contains

The header does not record which classes are present — only the point records do, and there can be billions of them. Three ways to find out, all of them here:

  1. Read the records. A producer who wrote a classification lookup record (user ID LASF_Spec, record 0) has documented their codes inside the file. The LAS inspector decodes it, along with the point format, which fixes the class range.
  2. Look. Open the file in the viewer and colour by classification. A single flat colour means the file was never classified, whatever the metadata says; scattered speckle in the ground class means noise was not removed.
  3. Count. An exact histogram needs every point read, so it takes as long as the file is big. The viewer's statistics panel does that read once, in a Web Worker, and lists the exact count per class alongside the return and elevation distributions.

If the file is not classified

The broad classes can be assigned automatically. Ground is separated from everything above it by a morphological filter, vegetation and buildings are split by height, roughness and, where the file has colour, greenness. That handles most airborne and drone data well; power lines, rail and bridge decks need either specialised tools or a person.

Classify a point cloud in your browser (experimental) — the classifier here assigns ground (2), low, medium and high vegetation (3, 4, 5) and building (6), leaves everything else as unclassified (1), and writes a LAZ you can open anywhere. Nothing is uploaded.

Frequently asked questions

What does classification 2 mean in a LAS file?
Class 2 is Ground: points the producer judged to lie on the bare earth surface. It is the class digital terrain models are built from, and the most consistently populated class in any classified delivery. Whether it was assigned by hand, by an algorithm or by both is not recorded in the point itself.
What is the difference between class 0 and class 1?
Class 0 means the point was never run through any classification step at all. Class 1 means it was processed and no other class was assigned. A file that is entirely class 1 has been through a pipeline that decided nothing; a file that is entirely class 0 has not been through one.
What is class 7 versus class 18?
Both are noise. Class 7, Low Point, is for returns well below the surface — multipath and sensor artefacts that would drag a terrain model down. Class 18, High Noise, added in LAS 1.4, is for returns well above any real object, typically birds, haze or cloud. Older files put both kinds in class 7.
Why does my file have class 12 points?
In LAS 1.2 and 1.3, class 12 meant Overlap: points in the region where two flight lines cover the same ground, usually set aside so density stays even. LAS 1.4 moved overlap to a flag bit for point formats 6 to 10 and reserved code 12, so class 12 in a modern file is a legacy of an older pipeline.
How many classes can a LAS file have?
It depends on the point data record format. Formats 0 to 5 store the class in five bits, so codes 0 to 31. Formats 6 to 10, introduced in LAS 1.4, use a full byte, so codes 0 to 255, of which 64 to 255 are free for user-defined classes.
How do I see which classes a file contains?
Open it in a viewer and colour by classification — a file that is one flat colour was never classified, whatever the paperwork says. The LAS inspector on this site shows the classification lookup record when a producer wrote one, and the class range the point format allows. An exact count of the classes present needs every point read — the header holds no shortcut — and the viewer's statistics panel does that read and lists the count per class.
Can I classify a point cloud automatically?
Yes, for the broad classes. Ground, vegetation and buildings can be separated algorithmically with good results on most airborne and drone data; power lines, rail and bridge decks generally need either specialised tooling or manual editing. The classifier on this site, which is still experimental, assigns classes 2, 3, 4, 5 and 6 in the browser.