map.eigen.knn: Tree mapping algorithm: KNN point geometry In TreeLS: Terrestrial Point Cloud Processing of Forest Data

Description

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.

Usage

 1 2 3 4 5 6 7 8 map.eigen.knn( max_curvature = 0.1, max_verticality = 10, max_mean_dist = 0.1, max_d = 0.5, min_h = 1.5, max_h = 3 )

Arguments

 max_curvature numeric - maximum curvature (from 0 to 1) accepted when filtering a point neighborhood. max_verticality 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). max_mean_dist numeric - maximum mean distance tolerated from a point to its nearest neighbors. max_d numeric - largest tree diameter expected in the point cloud. min_h, max_h numeric - height thresholds applied to filter a point cloud before processing.

Details

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.