1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
.. _format_elements:
*******************
LAS Format Elements
*******************
:Author: Mateusz Loskot
:Contact: mateusz at loskot dot net
On this page, elements and attributes of LAS Format 1.0 and 1.1 are compared.
.. seealso::
The `LAS 1.0-1.3 Permuation matrix`_
contains a detailed description of LAS header and point discrepancies
between versions in addition to this (older) document.
==========
Data Types
==========
Both versions of LAS Format Standard define and use the same set of data types and their sizes:
* 1 byte
* char (int8_t)
* unsigned char (uint8_t)
* 2 bytes
* short (int16_t)
* unsigned short (uint16_t)
* 4 bytes
* long (int32_t)
* unsigned long (uint32_t)
* 8 bytes
* double - double precision floating-point number (64-bit) as defined in
`IEEE 754 <http://en.wikipedia.org/wiki/IEEE_floating-point_standard>`_
Standard
===================
Public Header Block
===================
+-----+-------------------------------------+--------------------+---------------------+
|**#**| **Element** | **LAS 1.0** | **LAS 1.1** |
+=====+=====================================+====================+=====================+
| 1 | File Signature ("LASF") | int8_t[4], *required* |
+-----+-------------------------------------+--------------------+---------------------+
| 2 | File Source ID | | uint16_t, *required*|
+-----+-------------------------------------+--------------------+---------------------+
| 3 | Reserved | uint32_t | uint16_t |
+-----+-------------------------------------+--------------------+---------------------+
| 4 | GUID data 1 (Project ID) | uint32_t |
+-----+-------------------------------------+--------------------+---------------------+
| 5 | GUID data 2 (Project ID) | uint16_t |
+-----+-------------------------------------+--------------------+---------------------+
| 6 | GUID data 3 (Project ID) | uint16_t |
+-----+-------------------------------------+--------------------+---------------------+
| 7 | GUID data 4 (Project ID) | uint8_t[8] |
+-----+-------------------------------------+--------------------+---------------------+
| 8 | Version Major | uint8_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
| 9 | Version Minor | uint8_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|10 | System identifier | int8_t[32], *required* |
+-----+-------------------------------------+--------------------+---------------------+
|11 | Generating software | int8_t[32], *required* |
+-----+-------------------------------------+--------------------+---------------------+
|12 | Flight date Julian / Day of Year | uint16_t |
+-----+-------------------------------------+--------------------+---------------------+
|13 | Year | uint16_t |
+-----+-------------------------------------+--------------------+---------------------+
|14 | Header size | uint16_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|15 | Offset to data | uint32_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|16 | Number of variable length records | uint32_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|17 | Point data format ID (0-99) | uint8_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|18 | Point data record length | uint16_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|19 | Number of point records | uint32_t, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|20 | Number of points by return | uint32_t[5], *required* |
+-----+-------------------------------------+--------------------+---------------------+
|21 | X scale factor | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|22 | Y scale factor | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|23 | Z scale factor | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|24 | X offset | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|25 | Y offset | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|26 | Z offset | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|27 | Max X | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|28 | Min X | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|29 | Max Y | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|30 | Min Y | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|31 | Max Z | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
|32 | Min Z | double, *required* |
+-----+-------------------------------------+--------------------+---------------------+
| Total number of bytes: | **227** | **227** |
+-----+-------------------------------------+--------------------+---------------------+
Type specifier of the form of **type[N]** where **N** is a number, represents
array of **N** elements of **type**.
==========
Point Data
==========
The table below is based on definition of **Point Data Record Format 0** and
it does not include what's specified *Point Data Record 1*.
+-----+-------------------------------------+---------------------+----------------------+
|**#**| **Element** | **LAS 1.0** | **LAS 1.1** |
+=====+=====================================+=====================+======================+
| 1 | X | int32_t, *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 2 | Y | int32_t, *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 3 | Z | int32_t, *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 4 | Intensity | uint16_t |
+-----+-------------------------------------+---------------------+----------------------+
| 5 | Return number | 3 bits (0,1,2), *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 6 | Number of returns (given pulse) | 3 bits (3,4,5), *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 7 | Scan direction flag | 1 bit (6), *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 8 | Edge of flight line | 1 bit (7), *required* |
+-----+-------------------------------------+---------------------+----------------------+
| 9 | Classification | uint8_t | uint8_t, *required* |
+-----+-------------------------------------+---------------------+----------------------+
|10 | Scan angle rank (-90 to +90) | int8_t, *required* |
+-----+-------------------------------------+---------------------+----------------------+
|11 | File Marker / User Data (1) | uint8_t |
+-----+-------------------------------------+---------------------+----------------------+
|12 | User Bit Field / Point Source ID (2)| uint16_t | uint16_t, *required* |
+-----+-------------------------------------+---------------------+----------------------+
(1) FileMarker from 1.0 has been renamed to User Data in 1.1 and is available for any use.
(2) User Bit Field from 1.0 has been renamed to Point Source ID in 1.1 and marked as required.
.. _`LAS 1.0-1.3 Permuation matrix`: ../_static/LAS-1.0-1.3-feature-matrix.pdf
|