Menu

AlgorithmDescription

Rupesh Shrestha

MCC Algorithm

SD : scale domain, integer in [1,3] (variable l (lowercase "L") in paper)

tSD: curvature tolerance for scale domain SD
t1 = specified by user
t2 = t1 + 0.1
t3 = t2 + 0.1

CRSD : cell resolution for scale domain SD (lambda variable in paper)
CR1 = 0.5 * CR2
CR2 = specified by user (nominal post-spacing of input LiDAR data)
CR3 = 1.5 * CR2

f : tension parameter (invariant across scale domains)
f = 1.5

U : vector of points that remain unclassified
U = (P1 , P2 , P3 , ... Pn)
n : # of points in U (at the start of each loop pass)
Pj : single LiDAR point
Pj = (xj , yj , zj)
U0 = initial point-cloud data specified by user

  1. U = filter out higher points at same x,y in U0 and classify them as non-ground
  2. for scale domain (SD) = 1 to 3:
  3. . . repeat
  4. . . . . S = interpolate new raster surface using TPS(U, CRSD, f)
  5. . . . . S' = surface resulting from passing 3x3 averaging kernel over S
  6. . . . . for each point Pj in U:
  7. . . . . . . if zj > S'(xj , yj) + tSD then
  8. . . . . . . . . classify Pj as non-ground and remove it from U
  9. . . . . nC : # of points classified and removed from U during current iteration through inner loop
  10. . . until nC < 0.1% * n
  11. classify all the points remaining in U as ground

Related

Wiki: AlgorithmFilterXY
Wiki: Home