Skip to content
LidarKit

What is a LAS file?

The standard container for LiDAR point clouds — what is inside it, and how to read it.

A LAS file (.las) is the standard way to store a LiDAR point cloud. The format is published by the American Society for Photogrammetry and Remote Sensing (ASPRS) and has been the interchange format for airborne, mobile and, increasingly, drone LiDAR since 2003. Nearly every scanner exports it and nearly every piece of geospatial software reads it.

It is a binary format, and a simple one: a fixed header, a list of metadata records, then millions of identical fixed-size point records laid end to end. That simplicity is why it has lasted. It also means that almost everything worth knowing about a file is in its first few hundred bytes.

What is inside

SectionSizeWhat it holds
Public header block227, 235 or 375 bytesVersion, point format, point count, scale and offset, bounding box, creation date, generating software, where everything else is.
Variable length records (VLRs)Any number, up to 64 KB eachCoordinate system, LAZ parameters, extra-bytes descriptions, classification lookup, anything a vendor wants to attach.
Point data records20 to 67 bytes each, times the point countOne record per laser return. The layout is fixed by the point data record format.
Extended VLRs (EVLRs)LAS 1.4 only; any sizeRecords too large for a VLR — waveform data, the COPC hierarchy — placed after the points.

The header

The header begins with the four bytes LASF, then the version, then a run of fields that describe the file. The ones that matter day to day:

  • Version — major 1, minor 0 to 4. Decides the header size and which point formats are legal.
  • Point data record format — a single byte choosing one of eleven record layouts. It decides whether the points carry GPS time, colour, near-infrared or waveform data, and how many classes and returns they can express. See LAS point formats.
  • Point count — 32-bit before 1.4, 64-bit from 1.4, with the old field kept for compatibility and zeroed when the count or format exceeds what it can hold.
  • Scale and offset — three of each, turning stored integers into coordinates. See below.
  • Bounding box — minimum and maximum X, Y and Z, as doubles. Cheap to read and usually, though not always, correct.
  • Generating software and creation date — free text and a day-of-year pair. Useful for provenance, if the writer filled them in.

How coordinates are stored

Coordinates are not floating point. Each X, Y and Z is a signed 32-bit integer, and the real value is integer × scale + offset using the scale and offset from the header. A scale of 0.01 stores coordinates to the centimetre; a scale of 0.001 to the millimetre. The offset shifts the integer range onto the survey area, so that a projected easting in the hundreds of thousands of metres still fits in four bytes.

Two consequences. The precision of a LAS file is a header choice, and a writer that picks a scale of 0.000001 has not made the data more accurate — it has made it less compressible. And a scale of zero, or an offset far from the data, produces a file whose integers cannot be turned back into positions, which is one of the things an inspector should check for.

The coordinate system

The header has no field for a coordinate reference system. It lives in a VLR instead: for LAS 1.4, an OGC WKT string under user ID LASF_Projection, record 2112, with bit 4 of the Global Encoding field set to say the WKT is authoritative; for earlier versions, GeoTIFF keys in records 34735, 34736 and 34737 — the same key directory a GeoTIFF carries, written out flat.

A file may carry both, one, or neither. Neither is common in drone exports and in anything that passed through a tool that dropped records it did not understand. A file with no CRS is not broken, but its coordinates are numbers without a declared meaning, and any coordinate system assigned downstream is an assumption.

The point records

Every point occupies the same number of bytes, so the millionth point is at a known offset without reading the first 999,999. A format 6 record, the LAS 1.4 baseline, is 30 bytes: position, intensity, return number and count, classification, flags, scanner channel, scan angle, user data, point source ID and GPS time. Formats 7 and 8 add colour and near-infrared. The classification codes have their own article.

Versions

VersionYearHeaderPoint formatsWhat it added
1.02003227 B0, 1The original.
1.12005227 B0, 1The standard classification table; point source ID.
1.22008227 B0–3RGB colour (formats 2 and 3); GPS time type flag.
1.32010235 B0–5Waveform packets (formats 4 and 5).
1.42011375 B0–1064-bit counts and offsets, extended VLRs, WKT coordinate systems, formats 6–10 with 256 classes and 15 returns. Revisions through R15 (2019) refined the class table.

LAS 1.4 is the current version and the right default for new data. The older versions remain in wide circulation because national archives were built with them and because some software was slow to catch up; a 1.2 file is still readable by everything and still adequate for a great deal of work, as long as thirty-two classes and five returns are enough.

LAS and its relatives

FormatRelationship to LASUse it for
LAZLAS, losslessly compressed with LASzip. Same header, same records, a tenth of the bytes.Storage, transfer, archives. Anything at rest.
COPCA LAZ 1.4 file whose points are arranged in an octree with an index record, so parts of it can be fetched over HTTP.Serving point clouds from cloud storage to viewers.
E57Unrelated (ASTM). An XML-described container built for terrestrial scanners, with per-scan poses and imagery.Exchange between scanner software; convert to LAS for GIS.
PLY, XYZ, PCDUnrelated. Generic point formats with no standard metadata or coordinate system.Graphics and robotics pipelines.

The choice between LAS and LAZ is covered in LAS vs LAZ. The short version: keep LAZ, and decompress to LAS only for a tool that insists.

Opening a LAS file

LAS is the one format every GIS, CAD and point cloud package agrees on, so opening it is rarely the problem. For a look at the data without installing anything, the viewer on this site opens LAS and LAZ in the browser, and nothing is uploaded.

Inspect a LAS file's header and records — version, point format, coordinate system, every VLR decoded, and a check of whether the header agrees with itself. It reads only the first few kilobytes, so a 20 GB file takes the same instant as a 2 MB one, and it works on a URL without downloading the points.

Things that go wrong

  • No coordinate system. The most common defect in delivered files. The data is fine; the meaning is missing. Ask the producer, and do not guess from the magnitude of the coordinates.
  • Point format newer than the version. A "LAS 1.2" file with point format 6 is not valid, and strict readers refuse it. Some exporters produce exactly this.
  • Stale counts. The points-by-return table and the legacy 32-bit count are easy to leave unpopulated or wrong; software that trusts them shows a different number of points than is actually there.
  • A bounding box that lies. The header extents are written by the producer and not verified by anyone. A file cropped by a tool that did not rewrite the header keeps the old box.
  • Classification that was never done. The header cannot tell you. Colour by class in the viewer.

Frequently asked questions

What is a LAS file?
A LAS file is a binary container for LiDAR point cloud data, standardised by the American Society for Photogrammetry and Remote Sensing (ASPRS). It stores each laser return as a fixed-size record with position, intensity, return number, classification and, depending on the format, GPS time, colour and more, preceded by a header and metadata records that describe the whole file.
How do I open a LAS file?
LAS is the one format every GIS, CAD and point cloud package agrees on, so opening it is rarely the problem. To look at one without installing anything, drop it on the viewer on this site; to read its header, coordinate system and records, use the inspector. Both run in the browser without uploading the file.
What is the difference between LAS and LAZ?
LAZ is LAS compressed losslessly with LASzip. The two hold identical points and metadata; LAZ is typically 10 to 20 percent of the size and needs a decompression step to read. Convert between them freely — nothing is lost in either direction.
Which LAS version should I use?
LAS 1.4 with point data record format 6, 7 or 8 for anything new: it carries a WKT coordinate system, 256 classes, 15 returns and a 64-bit point count. Use 1.2 with format 1 or 3 only when a tool in the chain cannot read 1.4, and note that doing so drops any class above 31.
Why are coordinates stored as integers?
Each coordinate is a 32-bit integer multiplied by a scale factor and added to an offset, both from the header. With a scale of 0.01 the file resolves to a centimetre across a range of about 43,000 kilometres, which is far tighter than any airborne LiDAR measures, in four bytes instead of eight. It also means a file's precision is a header choice, not a property of the data.
How is the coordinate system stored?
In a variable length record. LAS 1.4 stores an OGC WKT string (user ID LASF_Projection, record 2112) and sets bit 4 of the header's Global Encoding field to say so; earlier versions store GeoTIFF keys in records 34735 to 34737. A file may carry neither, in which case its coordinates have no declared meaning.
How big can a LAS file be?
LAS 1.4 stores the point count as a 64-bit integer and locates the extended records with 64-bit offsets, so the format itself has no practical limit. Files before 1.4 are limited to 4,294,967,295 points by the 32-bit count. Real deliveries are usually tiled into files of a few hundred megabytes to a few gigabytes for handling reasons, not format ones.