# filters.covariancefeatures¶

This filter implements various local feature descriptors introduced that are based on the covariance matrix of a point’s neighborhood. The user can pick a set of feature descriptors by setting the feature_set option. Currently, the only supported feature is the dimensionality set of feature descriptors introduced below.

## Example¶

[
"input.las",
{
"type":"filters.covariancefeatures",
"knn":8,
"feature_set": "Dimensionality"
},
{
"type":"writers.bpf",
"filename":"output.las",
"output_dims":"X,Y,Z,Linearity,Planarity,Scattering,Verticality"
}
]


## Options¶

knn

The number of k nearest neighbors used for calculating the covariance matrix. [Default: 10]

The number of threads used for computing the feature descriptors. [Default: 1]

feature_set

The features to be computed. Currently only supports Dimensionality. [Default: “Dimensionality”]

stride

When finding k nearest neighbors, stride determines the sampling rate. A stride of 1 retains each neighbor in order. A stride of two selects every other neighbor and so on. [Default: 1]

### Dimensionality feature set¶

The features introduced in [Demantke2011] describe the shape of the neighborhood, indicating whether the local geometry is more linear (1D), planar (2D) or volumetric (3D) while the one introduced in [Guinard2017] adds the idea of a structure being vertical.

The dimensionality filter introduces the following four descriptors that are computed from the covariance matrix of the knn neighbors:

• linearity - higher for long thin strips

• planarity - higher for planar surfaces

• scattering - higher for complex 3d neighbourhoods

• verticality - higher for vertical structures, highest for thin vertical strips

It introduces four new dimensions that hold each one of these values: Linearity Planarity Scattering and Verticality.