
The pseudo code below illustrates the concept.
K represents an index to a data point in the Nth data block, where its valid range is 0 to 31.
Do this for each data block.
// First, adjust for an Azimuth rollover from 359.99° to 0°
If (Azimuth[data1] < Azimuth[datablock_n])
Then
Azimuth[data1] := Azimuth[data1] + 360;
Endif;
// Determine the Azimuth Gap between data blocks
AzimuthGap = Azimuth[data1] - Azimuth[datablock_n];
// Perform the interpolation using the timing firing
// Note that since pairs of lasers fire at once, each pair shares the same azimuth
// See Figure 9-8
// >>> DRAFT NOTE >>> This pseudo-code block for this sensor still needs work.
K = 0;
While (K < 31)
// Interpolate
Precision_Azimuth[K] := Azimuth[datablock_n] + (AzimuthGap * 2.665 μs * K) / 53.3
μs);
Precision_Azimuth[K+1] := Precision_Azimuth[K]
// Apply the azimuth offsets
Precision_Azimuth[K] := Precision_Azimuth[K] + azimuth_offset[K];
Precision_Azimuth[K+1] := Precision_Azimuth[K+1] + azimuth_offset[K+1];
// Adjust for any rollover
If Precision_Azimuth[K] >= 360
Then
Precision_Azimuth[K] := Precision_Azimuth[K] – 360;
Endif
If Precision_Azimuth[K+1] >= 360
Then
Precision_Azimuth[K+1] := Precision_Azimuth[K+1] – 360;
Endif
K = K + 2;
End While
Note:
If you examine the VeloView code in GITHUB, you’ll notice that VeloView uses a slightly different method to cal-
culate XYZ coordinates. VeloView operates on the azimuth as if it were read as positive in the counter-clockwise
direction with the origin along the X axis.
9.6 Converting PCAP Files to Point Cloud Formats
Converting a packet capture (pcap) file of Velodyne LiDAR data to a LAS, LAZ, XYZ, PLY, or other point cloud file format
can be a non-trivial process.
Chapter 9 • Sensor Data
65
DRAFT