= Processing Full Waveform LiDAR data = Although there are not many tool capable of processing LAS1.3 full waveform LiDAR data, you may find some of the following useful: [wiki:Help/Fullwaveform#ARSFextractiontool ARSF full waveform extraction tool] [[BR]] [wiki:Help/Fullwaveform#Lastools LAStools] [[BR]] [wiki:Help/Fullwaveform#Terrascan TerraScan ] (License required) == ARSF full waveform extraction tool == #ARSFextractiontool Example commands: {{{ python fwf_extract.py LDR-FW-FW10_02-201010101.LAS }}} Requests user to input on command line the limits of area to extract and saves full waveform data to current directory {{{ python fwf_extract.py LDR-FW-FW10_02-201010101.LAS -o /lidar/extraction }}} Requests user to input on command line the limits of area to extract and saves full wavefrom data to /lidar/extraction {{{ python fwf_extract.py LDR-FW-FW10_02-201010101.LAS -o /lidar/extraction --area 560002 560000 318002 318000 }}} Extracts wavefrom data for area bound by 560002 560000 318002 318000 to /lidar/extraction {{{ python fwf_extract.py LDR-FW-FW10_02-201010101.LAS --header }}} Prints the Header of the LAS file to the screen and exits NOTE: You need to have Python installed on your computer and to add the directroy of your Python distribution to your PATH environment variable. [[BR]] See the Python user guide for more information: http://docs.python.org/using/windows.html#excursus-setting-environment-variables == LAStools == #Lastools Below are some useful commands for extracting the waveform from the LAS1.3 files. To download the tools and for more information and help see http://www.cs.unc.edu/~isenburg/lastools/ {{{ las2txt -i LDR-FW-GB12_06-2012-083b-01.LAS -parse MrnxyzWV -o LDR-FW-GB12_06-2012-083b-01.txt }}} converts the LAS file LDR-FW-GB12_06-2012-083b-01.LAS to ASCII text using format MrnxyzWV {{{ las2txt -i LDR-FW-GB12_06-2012-083b-01.LAS -parse MrnxyzWV -keep_wavepacket 1 -o LDR-FW-GB12_06-2012-083b-01.txt` }}} converts the LAS file LDR-FW-GB12_06-2012-083b-01.LAS to ASCII text using format MrnxyzWV keeping only those points containing waveform information {{{ laszip -i LDR-FW-GB12_06-2012-083b-01.LAS -waveform }}} compresses the LAS file LDR-FW-GB12_06-2012-083b-01.LAS creating two compressed files * LDR-FW-GB12_06-2012-083b-01.laz - containing the compressed discrete data and wave packet information * LDR-FW-GB12_06-2012-083b-01.wpz - containing the compressed wave packet data {{{ laszip -i LDR-FW-GB12_06-2012-083b-01.laz -waveform }}} decomressses the laz file LDR-FW-GB12_06-2012-083b-01.laz creating two file - LDR-FW-GB12_06-2012-083b-01.las - containing the discrete data and wave packet information - LDR-FW-GB12_06-2012-083b-01.wpd - containing the wave packet data {{{ lasclip -i LDR-FW-GB12_06-2012-083b-01.laz -poly clip.shp -o LDR-FW-GB12_06-2012-083b-01_clip.laz` }}} subsets the laz file LDR-FW-GB12_06-2012-083b-01.laz using the polygon contained in clip.shp and ouputs the result to LDR-FW-GB12_06-2012-083b-01_clip.laz. Note this will only subset the laz file - the wpz file will still contain all points. If you wish to extract the waveform data for a particular area bounded by 407049 200380 407067 200398 the workflow would be as follows: {{{ laszip -i LDR-FW-GB12_06-2012-083b-01.LAS -waveform laszip -i LDR-FW-GB12_06-2012-083b-01.laz -waveform las2txt -i LDR-FW-GB12_06-2012-083b-01.las -clip 407049 200380 407067 200398 -parse MrnxyzWV -o LDR-FW-GB12_06-2012-083b-01_bounding_box.txt }}} If you wish to extract the waveform data for a particular area conatined in clip.shp the workflow would be as follows: {{{ laszip -i LDR-FW-GB12_06-2012-083b-01.LAS -waveform laszip -i LDR-FW-GB12_06-2012-083b-01.laz -waveform lasclip -i LDR-FW-GB12_06-2012-083b-01.las -poly clip.shp -o LDR-FW-GB12_06-2012-083b-01_clip.las rename LDR-FW-GB12_06-2012-083b-01.wpd to LDR-FW-GB12_06-2012-083b-01_clip.wpd las2txt -i LDR-FW-GB12_06-2012-083b-01_clip.las -parse MrnxyzWV -o LDR-FW-GB12_06-2012-083b-01_clip.txt }}} == !TerraScan == #Terrascan In order to view the full waveform data you first need to create trajectory files. With the !RawLaser data loaded in ALSPP select Utilities > Generate trj files. This creates an individual trajectory file for each flightline. In !TerraScan, select Manage Trajectories ( /// icon) from the General tool bar. Under File > Set Directory select the location of the trj files. Alternatively you can use the .sol file. Under Manage Trajectories > File > Import Files > ***.sol. This creates a .trj covering the entire project (which is included with the delivery). Load in a full waveform .LAS files. It is advisable to create a small fence and only load points inside the fence as !TerraScan can't seem to cope with entire flightlines. From the main !TerraScan window select Flightline > Deduce Using Time. On the main !TerraScan toolbox select View Waveform Data to open the waveform viewer (the sideways barchart icon, on the bottom right of the Main toolbar). Under Settings > Display Settings you can adjust how the wave is viewed by varying maximum value (x axis) or sample height (y axis). === !WaveForm Extractions: === The PI may request waveform extractions to be included with the delivery. These are ASCII files (one file per return) containing the full waveform information. * Draw a fence around the area of interest * Open the View Waveform Data window * File > Save As Text === Extract Echoes: === This tool can be used to create additional discrete points from the full waveform data. Use the ambient noise value to set the threshold for detecting peaks (on the waveform viewer under Settings > Display Settings). * Draw a fence around the area of interest * Select Extract Echoes from the waveform toolbar