# 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]