Hello Mohsen,
let me get the bad news off my chest first. You will not find any emitted (aka outgoing) waveforms in the LAS 1.3/1.4 FWF format because the waveform extension of the LAS format does not provide the capacity to store this. The lack of this capacity was a large part of the motivation for creating PulseWaves ...
The relationship between LAS points and the wavedatapackets is fairly well described in the specification. Here some pseudo code how to get the XYZ position of a waveform sample for a return with the coordinates XYZreturn[3] and the wavepacket with the direction XYZt[3] and the location and temporal spacing. Look into the source code of laswaveform13reader.cpp which is part of LAStools' LASlib for more details:
BOOL LASwaveform13reader::get_sample(U32 s_count, F64 *XYZsample, I32 &sample)
{
if (s_count < nsamples)
{
F32 dist = location - s_count*temporal;
XYZsample[0] = XYZreturn[0] + dist*XYZt[0];
XYZsample[1] = XYZreturn[1] + dist*XYZt[1];
XYZsample[2] = XYZreturn[2] + dist*XYZt[2];
sample = samples[s_count];
return TRUE;
}
return FALSE;
}
If you use lasview.exe to view a file in LAS 1.3 FWF format you can "turn on" the viewing of a subset of the waveforms (right click for pop-up menu or press the hot-key capital 'W'). What you should look for are areas where the pulse generated multiple returns. The "red-colored" high-intensity parts of the otherwise green waveforms should then always coincide with the LAS points. You may want to extract a subset to look at with this little "trick".
las2las -i las13.las -o las13_sub.las -subseq 0 1000
laszip -i las13_sub.las -o las13_sub.laz -waveform
lasview -i las13_sub.laz
and to "look" as the ASCII waveform contents run
las2txt -i las13_sub.laz -o las13_sub.txt -parse xyziaWV
and
las2txt -i las13.las -o las13.txt -parse xyziaWV
obviously the latter will take forever and create a humongous file for large inputs but CTRL^C is your friend here.
I am not a big friend of LAS 1.3 FWF. I just had a double traumatizing experience at the NCKU in Taiwan that received one delivery of LAS 1.3 FWF from Optech where an non-specification conform version of the LAS 1.3 format was used that had 243 instead of 235 bytes in the header. It seemed the format was corresponding to an early working draft (non-ratified) of the LAS 1.3 format. They also received one delivery from RIEGL where all the waveform direction vectors were pointing the wrong way. However, that was a reasonably easy fix because LAStools has an on-the-fly transform for that:
lasview -i las13_flipped.las -flip_waveform_direction
Regards,
Martin @LaserPulseWaves
--
http://pulsewaves.org - no emitted wave left unstored
On Sun, Mar 10, 2013 at 4:26 PM, Mohsen Azadbakht
<m.aza...@gmail.com> wrote:
Hi,
I'm working on
Full-waveform LiDAR data in my research.
The data that I’m working
on is a LAS 1.4 file with an external wavefom set (in WDP format)
The problem is about the
waveforms in WDP format. I can’t figure out the correct format of saving the waveforms
related to the records in the LAS file.
I was wondering if you had
any documents about the format of waveforms in *.WDP files (external VLRs).
I've already tested
LASTOOS and PULSEWAVES to read the header file and other useful information. In
addition, I've read LAS Specification documents (V. 1.3 & 1.4) from ASPRS.
I need to have all
waveforms (both emitted & backscattered pulses) as well as other useful
information (scan angle, lat, long,...) from the LAS file. The relation between
points in LAS format and waveforms in WDP files is not clear to me.
Information from the
wavepacket is as follw:
Wavepacket Index 1 1
Offset 0 0
Size 200
200
Location 0.00447582
100000
Xt -9.72150e-013 1.04614e-012
Yt -7.56717e-012 8.12185e-13
Zt -1.90327e-012 1.45418e-012
Regards,
Mohsen Azadbakht
--
--
Post to "PulseWaves" by email to pulse...@googlegroups.com
Unsubscribe by email to pulsewaves+...@googlegroups.com
Visit this group's message archives at http://pulsewaves.org
---
You received this message because you are subscribed to the Google Groups "PulseWaves - no pulse left behind" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pulsewaves+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.