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


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.



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