Every point in a LAS file is a record of fixed size, and the size and contents of that record are chosen once, for the whole file, by the point data record format — a single byte at offset 104 of the header. It decides whether the points have GPS time, colour, near-infrared or waveform data, how many classes and returns they can express, and how precisely the scan angle is recorded. It is the most consequential byte in the file after the version.
The eleven formats
| Format | Bytes | Since | GPS time | RGB | NIR | Waveform | Classes | Returns |
|---|---|---|---|---|---|---|---|---|
| 0 | 20 | 1.0 | — | — | — | — | 32 | 5 |
| 1 | 28 | 1.0 | Yes | — | — | — | 32 | 5 |
| 2 | 26 | 1.2 | — | Yes | — | — | 32 | 5 |
| 3 | 34 | 1.2 | Yes | Yes | — | — | 32 | 5 |
| 4 | 57 | 1.3 | Yes | — | — | Yes | 32 | 5 |
| 5 | 63 | 1.3 | Yes | Yes | — | Yes | 32 | 5 |
| 6 | 30 | 1.4 | Yes | — | — | — | 256 | 15 |
| 7 | 36 | 1.4 | Yes | Yes | — | — | 256 | 15 |
| 8 | 38 | 1.4 | Yes | Yes | Yes | — | 256 | 15 |
| 9 | 59 | 1.4 | Yes | — | — | Yes | 256 | 15 |
| 10 | 67 | 1.4 | Yes | Yes | Yes | Yes | 256 | 15 |
The byte counts are the standard sizes. A file may declare a larger record length, in which case the difference is extra bytes — additional per-point attributes described by a VLR. See below.
The formats fall into two families. Formats 0 to 5 share the layout defined in 2003 and extended by bolting fields onto the end. Formats 6 to 10, introduced with LAS 1.4, are a redesign of the core record that widened every field that had proved too narrow.
The legacy core: format 0
Twenty bytes, and every other legacy format begins with exactly these:
| Offset | Size | Field | Notes |
|---|---|---|---|
| 0 | 4 | X | Signed integer; × scale + offset from the header. |
| 4 | 4 | Y | |
| 8 | 4 | Z | |
| 12 | 2 | Intensity | Unsigned; scale is the producer's choice, often 0–65535 or 0–255. |
| 14 | 1 | Return number (3 bits), number of returns (3 bits), scan direction (1 bit), edge of flight line (1 bit) | Three bits allow returns 1–7, but the spec caps them at 5. |
| 15 | 1 | Classification (5 bits) + synthetic, key-point, withheld flags (3 bits) | Classes 0–31. |
| 16 | 1 | Scan angle rank | Signed byte, −90 to +90 degrees, whole degrees. |
| 17 | 1 | User data | Producer-defined. |
| 18 | 2 | Point source ID | Usually the flight line. |
- Format 1 appends GPS time as an 8-byte double at offset 20 (28 bytes).
- Format 2 appends red, green and blue as three 2-byte values at offset 20 (26 bytes).
- Format 3 appends GPS time at 20 and RGB at 28 (34 bytes).
- Format 4 is format 1 plus a 29-byte waveform packet at 28 (57 bytes).
- Format 5 is format 3 plus a waveform packet at 34 (63 bytes).
The LAS 1.4 core: format 6
Thirty bytes. Compared with format 1, everything that had run out of room was widened:
| Offset | Size | Field | Change from the legacy core |
|---|---|---|---|
| 0 | 12 | X, Y, Z | Unchanged. |
| 12 | 2 | Intensity | Unchanged. |
| 14 | 1 | Return number (4 bits), number of returns (4 bits) | Up to 15 returns. |
| 15 | 1 | Classification flags (4 bits), scanner channel (2 bits), scan direction, edge of flight line | Flags move here; overlap becomes a flag; multi-channel scanners get a field. |
| 16 | 1 | Classification | A full byte: classes 0–255. |
| 17 | 1 | User data | Unchanged. |
| 18 | 2 | Scan angle | Signed 16-bit in 0.006° steps, ±30,000 covering ±180°. |
| 20 | 2 | Point source ID | Unchanged. |
| 22 | 8 | GPS time | Now mandatory in every 1.4 format. |
- Format 7 appends RGB at offset 30 (36 bytes).
- Format 8 appends RGB at 30 and near-infrared at 36 (38 bytes).
- Format 9 is format 6 plus a waveform packet at 30 (59 bytes).
- Format 10 is format 8 plus a waveform packet at 38 (67 bytes).
The widened class byte is why the classification table for formats 6 to 10 runs to 22 standard classes and 192 user-definable ones, while the legacy formats stop at 31. It is also why software that reads a format 6 file with format 1 assumptions gets the classification wrong: the flags are in a different byte.
The waveform formats: 4, 5, 9 and 10
These add a 29-byte reference per point — a descriptor index, the byte offset and size of this return's waveform samples, the return's location along the pulse, and the pulse direction as three floats — and store the samples themselves either in an extended record after the points or in a separate .wdp file. Full-waveform LiDAR is valuable in forestry and bathymetry research, but it is a niche within a niche, and the tooling reflects that.
laz-perf, the compressor this site is built on, has no support for the waveform formats. That is why the converter and viewer on this site decline formats 4, 5, 9 and 10 with a message rather than reading the point half and discarding the rest: dropping the waveform silently would produce a file that looks converted and is not. The inspector reads their headers and records normally, because inspection needs no point data.
Extra bytes
Any format can carry additional per-point fields. The header's record length is simply larger than the format's standard size, and the extra bytes at the end of each record hold whatever the producer wanted: scanner reflectance, amplitude, deviation, a normalised height, a segment ID. The specification asks the producer to describe each field in an Extra Bytes VLR (user ID LASF_Spec, record 4): one 192-byte descriptor per field giving its name, data type, no-data value, scale, offset and a description.
With the record, tools can read the fields by name. Without it, the extra bytes are a run of unlabelled data that every reader has to carry along and none can interpret. Extra bytes survive LAZ compression, and a reader that honours the descriptor can expose the fields by name.
Choosing a format
- New airborne or drone data: format 6, or 7 if the sensor captured colour, or 8 if it captured near-infrared as well. LAS 1.4.
- Data that must open in old software: format 1, or 3 with colour, in LAS 1.2. Accept that classes above 31 and returns above 5 are lost, and that the coordinate system has to travel as GeoTIFF keys rather than WKT.
- Format 0 or 2: only when there genuinely is no GPS time, which is rare outside terrestrial scans exported through a LAS writer.
- Formats 4, 5, 9, 10: only when the waveform is the point of the data, and only after confirming every tool in the chain reads them.
Changing the format of an existing file means rewriting every record and mapping fields where the two layouts differ, with anything the target cannot hold lost on the way. The converter here does not do it: it moves between LAS and LAZ and leaves the point format exactly as it found it.
Reading the format from a file
Inspect a LAS or LAZ file — the inspector reports the format, the record length, the extra bytes and their descriptors, and what the format implies: GPS time, colour, near-infrared, waveform, the class range and the maximum return number. It reads only the header, so the answer is instant for a file of any size, and it will flag a format that its version does not define.
For the container around the records, see what is a LAS file.