-
Notifications
You must be signed in to change notification settings - Fork 18
Standard ExtraByte Definitions
Table of Contents:
A point has "extra bytes" when the Point Data Record Length in the LAS header is set to a larger value than the minimum required by the Point Data Record Format. LAS 1.4 has introduced a new VLR that describes the meaning of these "extra bytes" with one descriptor per attribute. This structure has contained one Reserved field that had to be set to zero in the past, but as of Revision RXX can be assigned a number enumerated in this registry.
Adding Standard ExtraBytes to this registry makes it easier to write, read, and leverage these optional point attributes across different software packages and applications.
By not including this registry in the specification itself, we (the LAS Working Group) hope to keep this registry flexible and make it easier to add additional attributes. Users are permitted to deviate from this standard; however, any ExtraBytes not adhering to this standard must set the ID code to zero.
Have an ExtraByte you'd like to add? Create an issue on the GitHub interface and we'll talk about it!
The data types provided for the published standard ExtraBytes were carefully selected to minimize storage requirements while also considering the potential valid range of values. In many cases the ranges can be adapted by modifying the offset and scale to suit your application, but the need may arise to use a larger data type. In such a case this is considered nonstandard, but the same formal name may be used.
It is also worth reiterating that in nearly every case an integer with valid scale and offset values will be more suitable than using single- or double-precision float. Integers enable exact comparisons of two raw values (such as for NODATA checks) and require less storage space on disk.
These ExtraByte definitions have been accepted by the LWG and are considered final. These ExtraBytes should be used in the manner intended if present in a LAS file.
Don't see one that fits your use case? Scroll down to the Drafts section to see if one has been started, or propose a new addition on the GitHub issues page.
Published standard ExtraBytes are defined in the table below. Detailed descriptions are provided in the subsections following.
Common Name | ID | Formal Name (required) | Size | data_type | Options Bit Field | Description |
---|---|---|---|---|---|---|
Echo Width | 200 | echo width |
2 | 3 (ushort) | All | Full width at half maximum [ns] |
Height Above Ground | 201 | height above ground |
2 | 4 (short) | All | Vertical point to TIN distance |
Beam ID | 1 | beam id |
1 | 1 (uchar) | NODATA, min, max | Extended channel ID |
- Click field names to scroll down to extended field descriptions, including standard units, valid ranges and example scale, offset, and NODATA values. As a general guideline, the maximum possible value is a good default NODATA value, except in the cases when zero has the same meaning as null and is therefore preferable.
- Standard ExtraByte IDs have not yet been implemented and are reserved for future use.
- The standard formal name must be encoded exactly as defined (in lowercase). Unused space must be zero-filled.
- Standard size and data type are provided. Deviations are permitted but considered non-standard.
- Recommended use of the ExtraBytes descriptor VLR
options
bit field is provided. When applicable, minimum and maximum values encoded in the ExtraBytes descriptor VLR should reflect the true minimum and maximum values of the field within the LAS file, after the scale and offset values are applied. - The provided description is a suggested default but may vary. Unused space must be zero-filled.
The echo width is defined as full width at half maximum of the received echo signal and is measured in nanoseconds (ns). The echo width can be regarded as a quality indicator of received echo signals. The width of a received echo signal depends on the geometry of the hit target.
- Valid range: 0.1 to 1000.0.
- Preferred units: Nanoseconds [ns]
- Recommended NODATA: 0 raw, 0.0 scaled
- Recommended scale: 0.1
- Recommended offset: 0.0
- Alternative name:
pulse width
Stores the point’s height above a ground surface. Units will often be whatever vertical units are relevant to the LAS file, but meters are recommended for uniformity between implementations. Points below the ground surface will have negative values. This attribute can also be used for surfaces other than ground, such as a water or canopy surface.
There is a variant of this using 4-byte integers (signed long), but the standard version is 2 bytes.
- Valid range: -327.68 to 327.67
- Preferred units: Meters [m]
- Recommended NODATA: 32768 raw, 327.68 scaled
- Recommended scale: 0.01
- Recommended offset: 0.00
- Alternative name:
height above surface
Conceptually identical to the Channel field in PDRF 6-10, but with a larger valid range. This field provides a method to uniquely identify the source pulse, beam, or pixel of the point.
- Valid range: 0 to 254
- Preferred units: n/a
- Recommended NODATA: 255 (max)
- Recommended scale: n/a
- Recommended offset: n/a
- Alternative name:
extended channel
These definitions are currently draft and not yet finalized. Use them with caution, as they'll be subject to change. Want one finalized? Come to our next LWG meeting or post an issue on GitHub!
Draft standard ExtraBytes are defined in the table below. Detailed descriptions are provided in the subsections following.
Common Name | ID | Formal Name (required) | Size | data_type | Options Bit Field | Description |
---|---|---|---|---|---|---|
Group/Object ID | 202 | groupid |
8 | 8 (ulonglong) | NODATA | 64-bit group identifier |
Horizontal Uncertainty | 112 | sigma xy |
1 | 1 (uchar) | All | Horiz. coordinate uncertainty |
Vertical Uncertainty | 113 | sigma z |
1 | 1 (uchar) | All | Vert. coordinate uncertainty |
Bathymetric Flags | 104 | bathymetric flags |
1 | 1 (uchar) | None | Bathymetric bit flags |
Refracted Range | 114 | refracted range |
2 | 3 (ushort) | All | Submerged vector length post-ref |
Provides an identifier for grouping points together as an object or group, such as an index value to a shapefile polygon, lookup identifier for an attribute table stored externally, or feature identifier for fine-grained segmentation.
- Valid range: 1 to max?
- Preferred units: n/a
- Recommended NODATA: 0??
- Recommended scale: n/a
- Recommended offset: n/a
Provides an alternative means to convey the total propagated uncertainty of a point’s coordinates, replacing the now-deprecated “XYZ Coordinate Uncertainty” previously included with the Topobathy LDP. Informally this could also be referred to as the accuracy or precision of the point coordinates.
The XY dimensions have been combined to make the horizontal uncertainty independent from the projection.
- Valid range: 0.00 to 2.54
- Preferred units: Meters [m]
- Recommended NODATA: 255 raw, 2.55 scaled
- Recommended scale: 0.01
- Recommended offset: 0.00
The bathymetry bit flags are intended as a means of indicating other topobathymetric point or processing attributes that have not yet been identified and/or do not merit a separate point class or separate Extra Bytes VLR.
Bit 0 is used to flag whether or not a refraction correction has been applied.
Currently, the other 7 bits are reserved for future use.
This attribute is defined in the Topobathy LDP.
- Valid range: 0 to 1
- Preferred units: n/a (bit field)
- Recommended NODATA: n/a
- Recommended scale: n/a
- Recommended offset: n/a
The submerged distance along the slanted range vector from the origin to the measured point, defined as the post-refraction distance from the point of intersection with the water surface to the measured point itself. Useful for depth-based intensity corrections based on attenuation.
Also known as refracted vector length.
- Valid range: 0.01 to 655.35
- Preferred units: Meters [m]
- Recommended NODATA: 0 raw, 0.00 scaled
- Recommended scale: 0.01
- Recommended offset: 0.00
- Alternative names:
refracted vector length
,refracted depth
Need to know more? Want a wiki page on another topic? Found an error? Submit an issue or contact the LAS Working Group at [email protected].