BoiseState-AdaptLab / adapt-lidar-tools

Contains code/project notes/ and Data for GEO+CS lidar data processing
GNU General Public License v3.0
8 stars 2 forks source link
full-waveform lidar pulsewaves

Adapt Lidar Tools is a GPL-Licensed set of C++11 Tools for Processing Full-Waveform Lidar Data

Developed by a team of students

Outline:

Introduction

The PulseWaves format is a new, open, vendor-neutral, LGPL-licensed and LAS-compatible data exchange format that is aimed at storing the entire digitized waveform instead of discrete returns(like the LAS format) in a fully geo-referenced manner. The PulseWaves format consists of two binary files: pulse files(.pls) that describe the emitted laser pulses via a georeferenced origin and target point and waves files(.wvs) that contain the actual samples of the outgoing and returning waveform shapes for the digitized sections of the emitted and received waveforms.

This project aims at developing full waveform LiDAR processing tools based on the PulseWaves data exchange format

Installation

Installation on Boise State's R2 cluster

Installation on a Local Machine

Requirements:

Directions:



Installation Continuation: (Only do this after following your appropiate installation instructions)

Note: After running the install script to make sure the dependencies are built, you can at any time regenerate the executables by running make geotiff-driver or make pls-info. To cleanup and remove all executables and object files , run make clean.

The waveform samples of the pulses that are reported in the Pulse Records are stored in a separate Waves file that must be in the same directory and have the same base name as the .pls file, but have the ending .wvs.

Implemented Products

These are the properties the program can analyze currently. For each property of interest, a comma separated list of product numbers specifies the desired output.

Amplitude

Elevation

Width

Rise Time

Backscatter Coefficient

Arguments

Combine the property type flag above with one or more product types below to generate products

Function Peak Type Product Number
Max First 1
Last 7
All 13
Min First 2
Last 8
All 14
Mean First 3
Last 9
All 15
Std.Dev First 4
Last 10
All 16
Skew First 5
Last 11
All 17
Kurtosis First 6
Last 12
All 18

Sorted by Product Number

Function Peak Type Product Number
Max First 1
Min First 2
Mean First 3
Std.Dev First 4
Skew First 5
Kurtosis First 6
Max Last 7
Min Last 8
Mean Last 9
Std.Dev Last 10
Skew Last 11
Kurtosis Last 12
Max All 13
Min All 14
Mean All 15
Std.Dev All 16
Skew All 17
Kurtosis All 18

Examples

//generate max first elevation, min first elevation, mean first elevation
bin/geotiff-driver -f etc/test-file-1.pls -e 1,2,3
//generate std.dev first amplitude, min last amplitude, skew all amplitude
bin/geotiff-driver -f etc/test-file-1.pls -a 4,8,17
//generate max all width, skew last width, min all width
bin/geotiff-driver -f etc/test-file-1.pls -w 13,11,14
//combine the three above commands into a single run for efficiency
bin/geotiff-driver -f etc/test-file-1.pls -w 13,11,14 -a 4,8,17 -e 1,2,3

Product Definitions

AR

raw amplitude data

AE

Estimated amplitude using Gaussian fitting

Full Width Half Maximum (fwhm)

Estimated pulse width

Elevation

Height on Z axis(Elevation from mean sea level (MSL))

Peaks

Number of peaks

Backscatter Coefficient

The backscatter coefficient compares the emitted pulse to the returning pulse within a plane normal to the path of the emitted pulse centered at the location of the peak of the returning pulse.

Rise time

Leading edge (Time between the activation point and maximum amplitude at the rising edge of each pulse)

Total Energy

Total energy from the estimated wave (summation of all amplitudes from wave triggering location to the wave end). Wave triggering location is found by the location that has amplitude value of max amplitude * 1/e(1).

Student Participants (alphabetical)