map.eigen.voxel: Tree mapping algorithm: Voxel geometry

Description Usage Arguments Details Eigen Decomposition of Point Neighborhoods

Description

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

Usage

1
2
3
4
5
6
7
8
map.eigen.voxel(
  max_curvature = 0.15,
  max_verticality = 15,
  voxel_spacing = 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).

voxel_spacing

numeric - voxel side length, in point cloud units.

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 voxel. Points are then removed depending on their voxel's metrics 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.