filters.estimaterank

filters.estimaterank computes the rank (i.e., the number of nonzero singular values) of a neighborhood of points.

This method uses Eigen’s JacobiSVD class to solve the singular value decomposition and to estimate the rank using the user-specified threshold. A singular value will be considered nonzero if its absolute value is greater than the product of the user-supplied threshold and the absolute value of the maximum singular value.

More on JacobiSVD can be found at https://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html.

Example

This sample pipeline estimates the rank of each point using filters.estimaterank and then filters out those points where the rank is three using filters.range.

{
  "pipeline":[
    "input.las",
    {
      "type":"filters.estimaterank",
      "knn":8,
      "thresh":0.01
    },
    {
      "type":"filters.range",
      "limits":"Rank![3:3]"
    },
    "output.laz"
  ]
}

Options

knn
The number of k-nearest neighbors. [Default: 8]
thresh
The threshold used to identify nonzero singular values. [Default: 0.01]