map.eigen.knn: Tree mapping algorithm: KNN point geometry

Description Usage Arguments Details Eigen Decomposition of Point Neighborhoods

View source: R/map_methods.R


This function is meant to be used inside treeMap. It applies a KNN filter to select points with specific neighborhood features. For more details on geometry features, check out fastPointMetrics.


  max_curvature = 0.1,
  max_verticality = 10,
  max_mean_dist = 0.1,
  max_d = 0.5,
  min_h = 1.5,
  max_h = 3



numeric - maximum curvature (from 0 to 1) accepted when filtering a point neighborhood.


numeric - maximum deviation of a point neighborhood's orientation from an absolute vertical axis ( Z = c(0,0,1) ), in degrees (from 0 to 90).


numeric - maximum mean distance tolerated from a point to its nearest neighbors.


numeric - largest tree diameter expected in the point cloud.

min_h, max_h

numeric - height thresholds applied to filter a point cloud before processing.


Point metrics are calculated for every point. Points are then removed depending on their point metrics parameters and clustered to represent individual tree regions. Clusters are defined as a function of the expected maximum diameter. Any fields added to the point cloud are described in fastPointMetrics.

Eigen Decomposition of Point Neighborhoods

Point filtering/classification methods that rely on eigen decomposition rely on shape indices calculated for point neighborhoods (knn or voxel). To derive these shape indices, eigen decomposition is performed on the XYZ columns of a point cloud patch. Metrics related to object curvature are calculated upon ratios of the resulting eigen values, and metrics related to object orientation are caltulated from approximate normals obtained from the eigen vectors.

For instance, a point neighborhood that belongs to a perfect flat surface will have all of its variance explained by the first two eigen values, and none explained by the third eigen value. The 'normal' of such surface, i.e. the vector oriented in the direction orthogonal to the surface, is therefore represented by the third eigenvector.

Methods for both tree mapping and stem segmentation use those metrics, so in order to speed up the workflow one might apply fastPointMetrics to the point cloud before other methods. The advantages of this approach are that users can parameterize the point neighborhoods themselves when calculating their metrics. Those calculations won't be performed again internally in the tree mapping or stem denoising methods, reducing the overall processing time.

TreeLS documentation built on Aug. 26, 2020, 5:14 p.m.