File: format_elements.txt

package info (click to toggle)
liblas 1.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 7,888 kB
  • ctags: 4,614
  • sloc: cpp: 31,630; xml: 4,195; python: 2,928; ansic: 2,439; cs: 2,411; sh: 143; makefile: 37
file content (163 lines) | stat: -rwxr-xr-x 10,121 bytes parent folder | download | duplicates (3)
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