Edge of flightline bit flag

51 views
Skip to first unread message

Jordan M. Moore

unread,
Aug 9, 2016, 12:38:42 PM8/9/16
to last...@googlegroups.com

Hello,

 

Is there a current workflow that can create bit flags for edge of flightline? Our files have been fully processed without such flag but it is needed to be fully USGS compliant.    

 

 

 

Martin Isenburg

unread,
Aug 9, 2016, 11:15:39 PM8/9/16
to LAStools - efficient command line tools for LIDAR processing
Hello,

There are two possible ways coming to mind using either the scan angles (do you use the new point types 6 - 10) or the geometry of the scan lines to deduce those flags. Neither of them are readily implemented but that would be something we could add. Do you have a rotating polygon mirror or a zigzag mirror system? Also ... what definition does the USGS use to define "compliant" edge of flightline flags? Should such a compliance check maybe added to the LASvalidator?

It turns out that the LAS Working Group has recently had a long discussion about exactly these flags [lament on] but due to the closed nature of this "standarization body" [lament off] it was not possible for the rest of the LiDAR community to follow this conversation. See also these two threads:


Does the USGS specification define precisely how they want those bits set?

Regards,

Martin @rapidlasso

On Tue, Aug 9, 2016 at 5:13 PM, Jordan M. Moore <jmo...@axisgeospatial.com> wrote:

Hello,

 

Is there a current workflow that can create bit flags for edge of flightline? Our files have been fully processed without such flag but it is needed to be fully USGS compliant.    

 

 

 

Terje Mathisen

unread,
Aug 10, 2016, 8:50:43 AM8/10/16
to last...@googlegroups.com
It would seem to be relatively easy to take a time-sorted list of pulses
with angle measurements and then add the EOF bit for the pulse where the
delta angle reverses direction:

$prev_angle, $curr_angle, $next_angle is set to the angle values from
the corresponding pulses:

$prev_delta = $curr_angle - $prev_angle;
$next_delta = $next_angle - $curr_angle;

$edge_of_flightline = $prev_delta * $next_delta < 0;

I.e. if the sign of the delta between pairs of angles changes, then we
have an angle turning point.

The most obvious problem here seem to be:

Since the angles are integer degrees then it is quite possible (and in
fact to be expected) for pairs of pulses to have the same integer angle!

In order to fix this I suggest scanning through the pulses so that
$prev_angle, $curr_angle and $next_angle are all different, and then you
use the middle pulse of all those with the same angle to represent that
particular value: This is the pulse most likely to be the actual edge point!

Terje

--
- <Terje.M...@tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Reply all
Reply to author
Forward
0 new messages