pylas.vlrs.known module

The definition of the VLR Header, VLR, the KnownVLRs are in this module.

A KnownVLR is a VLR for which we know how to parse its record_data

class pylas.vlrs.known.IKnownVLR[source]

Bases: abc.ABC

Interface that any KnownVLR must implement. A KnownVLR is a VLR for which we know how to parse its record_data

Implementing this interfaces allows to automatically call the right parser for the right VLR when reading them.

static official_user_id() → str[source]

Shall return the official user_id as described in the documentation

static official_record_ids() → Tuple[int, ...][source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
record_data_bytes() → bytes[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
parse_record_data(record_data: bytes) → None[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
class pylas.vlrs.known.BaseKnownVLR(record_id=None, description='')[source]

Bases: pylas.vlrs.vlr.BaseVLR, pylas.vlrs.known.IKnownVLR, abc.ABC

Base Class to factorize common code between the different type of Known VLRs

classmethod from_raw(raw: pylas.vlrs.vlr.VLR)[source]
class pylas.vlrs.known.ClassificationLookupVlr[source]

Bases: pylas.vlrs.known.BaseKnownVLR

This vlr maps class numbers to short descriptions / names

>>> lookup = ClassificationLookupVlr()
>>> lookup[0] = "never_classified"
>>> lookup[2] = "ground"
>>> lookup[0]
'never_classified'
parse_record_data(record_data: bytes) → None[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes() → bytes[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id() → str[source]

Shall return the official user_id as described in the documentation

static official_record_ids() → Tuple[int, ...][source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
class pylas.vlrs.known.LasZipVlr(data: bytes)[source]

Bases: pylas.vlrs.known.BaseKnownVLR

Contains the information needed by laszip (or any other laz backend) to compress the point records.

parse_record_data(record_data: bytes) → None[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes() → bytes[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id() → str[source]

Shall return the official user_id as described in the documentation

static official_record_ids() → Tuple[int, ...][source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
classmethod from_raw(raw_vlr)[source]
class pylas.vlrs.known.ExtraBytesStruct[source]

Bases: _ctypes.Structure

NO_DATA_BIT_MASK = 1
MIN_BIT_MASK = 2
MAX_BIT_MASK = 4
SCALE_BIT_MASK = 8
OFFSET_BIT_MASK = 16
no_data
min
max
offset
scale
set_scale_is_relevant() → None[source]
set_offset_is_relevant() → None[source]
format_name()[source]
type_str()[source]
num_elements() → int[source]
static size()[source]
data_type

Structure/Union member

description

Structure/Union member

name

Structure/Union member

options

Structure/Union member

reserved

Structure/Union member

unused

Structure/Union member

class pylas.vlrs.known.ExtraBytesVlr[source]

Bases: pylas.vlrs.known.BaseKnownVLR

parse_record_data(data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
type_of_extra_dims() → List[pylas.point.format.ExtraBytesParams][source]
static official_user_id()[source]

Shall return the official user_id as described in the documentation

static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
class pylas.vlrs.known.WaveformPacketStruct[source]

Bases: _ctypes.Structure

static size()[source]
bits_per_sample

Structure/Union member

digitizer_gain

Structure/Union member

digitizer_offset

Structure/Union member

number_of_samples

Structure/Union member

temporal_sample_spacing

Structure/Union member

waveform_compression_type

Structure/Union member

class pylas.vlrs.known.WaveformPacketVlr(record_id, description='')[source]

Bases: pylas.vlrs.known.BaseKnownVLR

parse_record_data(record_data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
static official_user_id()[source]

Shall return the official user_id as described in the documentation

classmethod from_raw(raw_vlr)[source]
class pylas.vlrs.known.GeoKeyEntryStruct[source]

Bases: _ctypes.Structure

static size()[source]
count

Structure/Union member

id

Structure/Union member

tiff_tag_location

Structure/Union member

value_offset

Structure/Union member

class pylas.vlrs.known.GeoKeysHeaderStructs[source]

Bases: _ctypes.Structure

static size()[source]
key_direction_version

Structure/Union member

key_revision

Structure/Union member

minor_revision

Structure/Union member

number_of_keys

Structure/Union member

class pylas.vlrs.known.GeoKeyDirectoryVlr[source]

Bases: pylas.vlrs.known.BaseKnownVLR

parse_record_data(record_data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id()[source]

Shall return the official user_id as described in the documentation

static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
class pylas.vlrs.known.GeoDoubleParamsVlr[source]

Bases: pylas.vlrs.known.BaseKnownVLR

parse_record_data(record_data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id()[source]

Shall return the official user_id as described in the documentation

static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
class pylas.vlrs.known.GeoAsciiParamsVlr[source]

Bases: pylas.vlrs.known.BaseKnownVLR

parse_record_data(record_data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id()[source]

Shall return the official user_id as described in the documentation

static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
class pylas.vlrs.known.WktMathTransformVlr[source]

Bases: pylas.vlrs.known.BaseKnownVLR

From the Spec:
Note that the math transform WKT record is added for completeness, and a coordinate system WKT may or may not require a math transform WKT record
parse_record_data(record_data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id()[source]

Shall return the official user_id as described in the documentation

static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
class pylas.vlrs.known.WktCoordinateSystemVlr(wkt_string='')[source]

Bases: pylas.vlrs.known.BaseKnownVLR

Replaces Coordinates Reference System for new las files (point fmt >= 5) “LAS is not using the “ESRI WKT”

parse_record_data(record_data)[source]

Shall parse the given record_data into a user-friendlier structure

Parameters:record_data (bytes) – The record_data bytes read from the file
record_data_bytes()[source]

Shall return the bytes corresponding to the record_data part of the VLR as they should be written in the file.

Returns:The bytes of the vlr’s record_data
Return type:bytes
static official_user_id()[source]

Shall return the official user_id as described in the documentation

static official_record_ids()[source]

Shall return the official record_id for the VLR

Note

Even if the VLR has one record_id, the return type must be a tuple

Returns:The record_ids this VLR type can have
Return type:tuple of int
pylas.vlrs.known.vlr_factory(vlr: pylas.vlrs.vlr.VLR)[source]

Given a vlr tries to find its corresponding KnownVLR class that can parse its data. If no KnownVLR implementation is found, returns the input vlr unchanged