This function calculates twelve (plus the first and second PCA) for several point geometry-related metrics (listed below) in parallel using C++ for a user-specified radius.
eigen_metrics(las = las, radius = 0.1, ncpu = 8)A labeled data.table of point metrics for each point in the LAS object
LAS Normalized las object.
numeric the radius of the neighborhood
integer the number of cpu's to be used in parallelfor the calculation
eLargest: first eigenvalue, _1ASCII representation
eMedium: second eigenvalue, _2ASCII representation
eSmallest: third eigenvalue, _3ASCII representation
eSum: sum of eigenvalues, _i=1^n=3 _iASCII representation
Curvature: surface variation, _3 / _i=1^n=3 _iASCII representation
Omnivariance: high values correspond to spherical features and low values to planes or linear features, (_1 * _2 * _3)^1/3ASCII representation
Anisotropy: relationships between the directions of the point distribution, (_1 - _3) / _1ASCII representation
Eigentropy: entropy in the eigenvalues, - _i=1^n=3 _i * ln(_i)ASCII representation
Linearity: linear saliency, (_1 - _2) / _1ASCII representation
Verticality: vertical saliency, 1-abs( (0,0,1),e_3)ASCII representation
Planarity: planar saliency, (_2 - _3) / _1ASCII representation
Sphericity: spherical saliency, _3 / _1ASCII representation
Nx,Ny,Nz: 3 components of the normal vector (smallest eigenvector)
SurfaceVariation: surface variation (change of curvature), same as Curvature
ChangeCurvature: alternative name for surface variation
SurfaceDensity: 2D point density using circle area, k / ( R^2)ASCII representation
VolumeDensity: 3D point density using sphere volume, k / (43 R^3)ASCII representation
MomentOrder1: 1st order moment from CloudCompare, projection onto 2nd eigenvector, m_1^2 / m_2ASCII representation
NormalChangeRate: normal change rate, same as Curvature, _3 / _i=1^n=3 _iASCII representation
Roughness: distance from query point to fitted plane, |d n|ASCII representation
MeanCurvature: mean curvature from quadric surface fitting, H = (1+f_y^2)f_xx - 2f_xf_yf_xy + (1+f_x^2)f_yy2(1+f_x^2+f_y^2)^3/2ASCII representation
GaussianCurvature: Gaussian curvature from quadric surface fitting, K = f_xxf_yy - f_xy^2(1+f_x^2+f_y^2)^2ASCII representation
PCA1: eigenvector projection variance normalized by eigensum, _PC1^2 / _i=1^n=3 _iASCII representation
PCA2: eigenvector projection variance normalized by eigensum, _PC2^2 / _i=1^n=3 _iASCII representation
NumNeighbors: number of points in the spherical neighborhood, kASCII representation
# \donttest{
LASfile <- system.file("extdata", "MixedConifer.laz", package="lidR")
las <- readLAS(LASfile)
eigen = eigen_metrics(las, radius=2, ncpu=4)
# }
Run the code above in your browser using DataLab