Algorithms
Arttu Soininen
Software developer
Terrasolid Ltd
Low points
●
For finding bad points clearly below the ground
●
Usually run before ground classification
●
Simple routine, can find only clearest cases
●
Not iterative, you should run it at least 2-3 times
Low points – Single points
●
Classifies a point if all other points Within
search radius are at least More than above
the point
Within
More than
Low points – Groups of points
●
Physical features may cause multiple points
below the ground at the same location
●
Groups of points option finds groups of
points which are all lower than any of the
neighbouring points
Low points – Multiple runs
●
Multiple runs needed for locations with bad
points below the ground at multiple
elevation levels
●
First run finds only the lowest and regards
everything else as valid points
Below surface
●
For finding bad points below the ground
●
Has to be run after ground classification
●
Can find points a little (15cm) below ground
Below surface
●
For each point, finds 6-12 closest neighbouring
points
●
Fits a plane equation to the neighbouring points
●
Checks the elevation distance to the plane
●
Regards point as valid ground point unless it is
at least Tolerance below plane
Below surface
●
Computes standard deviation of the distances
between the neighbouring points and the fitted
plane
●
If point being checked is more than Limit *
standard deviation below the plane, it will be
classified as a point below the ground
Smoothing
●
Laser data is dense but has a level of noise
●
Produces a rough, noisy looking surface
●
Smoothing modifies elevations of laser points
if that produces a smooth surface locally
●
Smoothing keeps the original elevation of a
laser point if the location does not become
smooth
–
This helps to keep breakline changes intact
●
Iterative process
–
During each iteration round, a point moves up or
down to match a plane equation fitted to
neighbours
Smoothing
original laser points
Smoothing
●
For each point, finds 6-12 closest neighbouring
points
●
Fits a plane equation to the neighbouring points
●
Closest neighbours have bigger weight in fitting
●
Point gets an elevation correction towards the
plane equation
Smoothing
●
During one iteration round:
●
Fits a plane equation to neighbours of every
point
●
Computes an elevation correction for every point
●
Applies the correction but limits the change from
the original elevation to be within maximum
movement setting
Smoothing
●
As a result of one iteration round:
●
Points match neighbours a little better
●
Iteration continues as long as there is movement
Smoothing
●
As a result of iteration:
●
Iteration stops when there is no movement
●
Some points do not match neighbours even
though they have been moved by the maximum
change
●
Routine restores the original elevation of those
points and their neighbours
Smoothing
●
Second iteration:
●
'Rough' points restored to original elevation stay
fixed
●
Second iteration is performed in order to make
'smooth' points match their 'rough' neighbours