Skip to content

Standard ExtraByte Definitions

Evon Silvia edited this page Dec 23, 2021 · 19 revisions

Table of Contents:

Introduction

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!

A quick note about data types

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.

Published Standard ExtraByte Definitions

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.

Echo Width

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

Height Above Ground

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

Beam ID

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

DRAFT ExtraByte Definitions

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

Group / Object ID

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

Horizontal & Vertical Uncertainty

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

Bathymetric Flags

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

Refracted Range

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