pub struct LASHeader {Show 36 fields
pub signature: String,
pub source_id: u16,
pub encoding: u16,
pub project_id1: u32,
pub project_id2: u16,
pub project_id3: u16,
pub project_id4: String,
pub major_version: u8,
pub minor_version: u8,
pub system_identifier: String,
pub generating_software: String,
pub file_creation_day: u16,
pub file_creation_year: u16,
pub header_size: u16,
pub offset_to_points: u32,
pub num_variable_length_records: u32,
pub point_data_format_id: u8,
pub point_data_record_length: u16,
pub num_points: u32,
pub num_points_by_return: [u32; 5],
pub x_scale_factor: f64,
pub y_scale_factor: f64,
pub z_scale_factor: f64,
pub x_offset: f64,
pub y_offset: f64,
pub z_offset: f64,
pub max_x: f64,
pub min_x: f64,
pub max_y: f64,
pub min_y: f64,
pub max_z: f64,
pub min_z: f64,
pub waveform_data_packet_offset: u64,
pub extended_variable_length_record_offset: u64,
pub extended_variable_length_size: u32,
pub num_points_by_return_ll: [u64; 15],
}Expand description
LAS Header Block Any field in the Public Header Block that is not required and is not used must be zero filled.
Fields§
§signature: StringFile Signature (“LASF”) char[4] 4 bytes
The file signature must contain the four characters “LASF”, and it is required by the LAS
specification. These four characters can be checked by user software as a quick look initial
determination of file type.
source_id: u16File Source ID unsigned short 2 bytes
File Source ID (Flight Line Number if this file was derived from an original flight line): This field should be set to a value between 1 and 65,535, inclusive. A value of zero (0) is interpreted to mean that an ID has not been assigned. In this case, processing software is free to assign any LAS 1.2 3 valid number. Note that this scheme allows a LIDAR project to contain up to 65,535 unique sources. A source can
encoding: u16Global Encoding unsigned short 2 bytes.
The meaning of GPS Time in the Point Records
- 0 (not set) -> GPS time in the point record fields is GPS Week Time (the same as previous versions of LAS).
- 1 (set) -> GPS Time is standard GPS Time (satellite GPS Time) minus 1 x 109. The offset moves the time back to near zero to improve floating point resolution.
project_id1: u32Project ID - GUID data 1 unsigned long 4 bytes. 0 means no project ID
project_id2: u16Project ID - GUID data 2 unsigned short 2 byte. 0 means no project ID
project_id3: u16Project ID - GUID data 3 unsigned short 2 byte. 0 means no project ID
project_id4: StringProject ID - GUID data 4 unsigned char[8] 8 bytes. 0 means no project ID
major_version: u8Version Major unsigned char 1 byte
minor_version: u8Version Minor unsigned char 1 byte
system_identifier: StringSystem Identifier char[32] 32 bytes
generating_software: StringGenerating Software char[32] 32 bytes
file_creation_day: u16File Creation Day Year unsigned short 2 bytes. 0 means no creation date
Day, expressed as an unsigned short, on which this file was created. Day is computed as the Greenwich Mean Time (GMT) day. January 1 is considered day 1.
file_creation_year: u16File Creation Day Year unsigned short 2 bytes. 0 means no creation date
The year, expressed as a four digit number, in which the file was created.
header_size: u16Header Size unsigned short 2 bytes
The size, in bytes, of the Public Header Block itself. In the event that the header is extended by a software application through the addition of data at the end of the header, the Header Size field must be updated with the new header size. Extension of the Public Header Block is discouraged; the Variable Length Records should be used whenever possible to add custom header data. In the event a generating software package adds data to the Public Header Block, this data must be placed at the end of the structure and the Header Size must be updated to reflect the new size.
offset_to_points: u32Offset to Point Data unsigned int 4 bytes
The actual number of bytes from the beginning of the file to the first field of the first point record data field. This data offset must be updated if any software adds data from the Public Header Block or adds/removes data to/from the Variable Length Records.
num_variable_length_records: u32Number of Variable Length Records unsigned int 4 bytes
This field contains the current number of Variable Length Records. This number must be updated
if the number of Variable Length Records changes at any time.
point_data_format_id: u8Point Data Format ID unsigned short 1 byte
The point data format ID corresponds to the point data record format type. LAS 1.4 defines types 0-10.
point_data_record_length: u16Point Data Record Length unsigned short 2 bytes
num_points: u32Number of point records unsigned long 4 bytes
num_points_by_return: [u32; 5]Number of points by return unsigned long[5] 20 bytes
x_scale_factor: f64X scale factor double 8 bytes
y_scale_factor: f64Y scale factor double 8 bytes
z_scale_factor: f64Z scale factor double 8 bytes
x_offset: f64X offset double 8 bytes
y_offset: f64Y offset double 8 bytes
z_offset: f64Z offset double 8 bytes
max_x: f64Max X double 8 bytes
min_x: f64Min X double 8 bytes
max_y: f64Max Y double 8 bytes
min_y: f64Min Y double 8 bytes
max_z: f64Max Z double 8 bytes
min_z: f64Min Z double 8 bytes
waveform_data_packet_offset: u64Start of Waveform Data Packet Record - Unsigned long long 8 bytes
extended_variable_length_record_offset: u64Start of first Extended Variable Length Record - unsigned long long 8 bytes
extended_variable_length_size: u32Number of Extended Variable Length Records - unsigned long 4 bytes
num_points_by_return_ll: [u64; 15]Number of points by return unsigned long long [15] 120 bytes *
Implementations§
Trait Implementations§
impl StructuralPartialEq for LASHeader
Auto Trait Implementations§
impl Freeze for LASHeader
impl RefUnwindSafe for LASHeader
impl Send for LASHeader
impl Sync for LASHeader
impl Unpin for LASHeader
impl UnwindSafe for LASHeader
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().