1. Introduction¶
1.1. Purpose, Scope, and Applicability¶
The LASer (LAS) file is intended to contain point cloud data records, including those derived from lidar or other sources. The data will commonly be put into this format from software (e.g., provided by hardware vendors), which combines GPS, IMU, and laser pulse range data to produce points with X, Y, and Z coordinates. The purpose of LAS is to provide an open format that allows different hardware and software tools to exchange point cloud data in a common format.
This document reflects the fourth revision of the LAS format specification since its initial version 1.0 release.
1.1.1. LAS 1.5 Revision History¶
Summary of LAS 1.5 revisions (GitHub Issue numbers included when applicable):
R00 - Approved Version (XXXXXXX).
1.1.2. Comparison of LAS 1.5 to Previous Versions¶
The additions of LAS 1.5 include:
Backward compatibility with LAS 1.1 – LAS 1.4.
LAS 1.5 mode which supports:
Removed support for PDRFs 0-5. (I-128)
Added Max/Min GPS Time fields to header block. (I-118)
Added Offset GPS Time definition. (I-6)
CRS support expanded to all published WKT versions, removing support for GeoTIFF CRS encoding. (I-95, I-104, I-129)
Clarify requirement that the Extra Bytes VLR must be unique. (I-150)
1.1.3. LAS 1.4 Revision History¶
Summary of LAS 1.4 revisions (GitHub Issue numbers included when applicable):
R11 - Approved Version (Nov 2011).
R12 - Errata (June 2012) - Typographical corrections:
Corrected Public Header Size in descriptive paragraph to 375 bytes.
Corrected two instances of Scan Angle Rank from “Unsigned Char” to “Char”.
R13 - Added Domain Profile Section (July 2013).
R14 - Multiple updates (March 2019):
Aesthetic changes from migration to GitHub.
Multiple capitalization & typo corrections.
Updated ASPRS contact info. (I-30)
Additional standard classifications 19-22 for PDRFs 6-10: (I-11, I-26)
Class 19 – Overhead Structure in PDRFs 6-10.
Class 20 – Ignored Ground.
Class 21 – Snow.
Class 22 – Temporal Exclusion.
Added OGC endorsement. (I-31)
Added minimum PDRF sizes to attribute tables. (I-47)
Section reorganization: (I-57)
Addition of Table of Contents with section numbers. (c.f. I-27, I-49)
Divided Defined Variable Length Records section into Coordinate Reference System VLRs section (s3) and Other Specification Defined VLRs (s4).
Expanded EVLR discussion in Legacy Compatibility section (s2.1) and moved Legacy Compatibility section to EVLR definition (now s2.7.1).
Swapped order of LAS 1.4 Revision History (now s1.1.1) and LAS 1.4 Additions (now s1.1.2).
Rearranged paragraphs in Extra Bytes VLR description.
Deprecated “tuple” and “triple” extra byte data types. (I-1)
Added explanation and example of implicit arrays from descriptor names.
Clarified that ExtraByte min/max should be an untransformed value. (I-4)
Clarified that Legacy Point Counts should be set to zero if using non-legacy PDRFs. (I-12)
Clarified Full Waveform descriptions and added wiki link. (I-9)
Renamed X(t), Y(t), and Z(t) from waveform packets to Parametric dx/dy/dz.
PDRF9 now correctly requires Scanner Channel like other PDRFs. (I-29)
Clarified origin date/time for Adjusted Standard GPS Time. (I-40)
Clarified null-termination of fixed-length
char
arrays, especially VLR Description. (I-46)Clarified relationship between FileSourceID and PointSourceID. (I-59)
Added language to support technologies other than conventional linear-mode lidar scanners. (I-35)
Clarified and renamed Synthetic Return Numbers Global Encoding bit.
Clarified Synthetic point classification flag.
Clarified validity of zero-value PointSourceID.
Unified Return Number and Number of Returns descriptions between legacy and non-legacy PDRFs.
Clarified Scan Direction and Edge of Flight Line Flags for non-rotational systems.
Added wiki link for Project ID examples. (I-38)
R15 - Errata and typo corrections for R14 (July 2019):
R16 - DRAFT
Clarified uniformity of GPS Time for all returns of a pulse. (I-81)
Added example usage of Overlap bit. (I-5)
Reworded mandatory zero Classification for Synthetic PDRF0-5. (I-86)
Added Byte Offset columns to Header, VLR, EVLR, and PDRF tables. (I-55)
Clarified how and when certain header fields should be zero-filled. (I-101)
Added Official LAS Wiki section. (I-71)
More closely aligned data types with C99 definitions. (I-115)
For detailed information on changes in revisions R14 and newer, review the inline differencing provided on the GitHub page.
1.1.4. Comparison of LAS 1.4 to Previous Versions¶
The additions of LAS 1.4 include:
Backward compatibility with LAS 1.1 – LAS 1.3 when payloads consist of only legacy content.
LAS 1.4 mode which supports:
Extension of offsets and field sizes to support full 64 bit.
Support for up to 15 returns per outgoing pulse.
Extension of the Point Class field to support 256 classes.
Definition of several new ASPRS standard classes.
Extension of the Scan Angle field to 2 bytes to support finer angle resolution.
Addition of a Sensor Channel bit field to support mobile mapping systems.
Addition of Well Known Text (WKT) definitions for Coordinate Reference Systems.
Addition of an Overlap bit to indicate points in the overlap region while maintaining the class definition.
Addition of an (optional) Extra Bytes Variable Length Record to describe “extra bytes” stored with each point.
Other minor changes:
Added definitions for “LAS Domain Profile” and “LAS Domain Profile Description”.
Added references to Official LAS Wiki.
1.2. Conformance¶
The data types used in the LAS format definition are conformant to the 1999 ANSI C Language Specification (ANSI/ISO/IEC 9899:1999 (“C99”)).
1.4. Official LAS Wiki¶
The official LAS wiki hosts supplemental guidance pages, links to external resources, public registries, and more LAS-related resources. The wiki can be found at https://github.com/ASPRSorg/LAS/wiki.