# filters.voxelcenternearestneighbor

The VoxelCenterNearestNeighbor filter is a voxel-based sampling filter. The input point cloud is divided into 3D voxels at the given cell size. For each populated voxel, the coordinates of the voxel center are used as the query point in a 3D nearest neighbor search. The nearest neighbor is then added to the output point cloud, along with any existing dimensions.

Note

This is similar to the existing filters.voxelgrid. However, in the case of the VoxelGrid, the centroid of the points falling within the voxel is added to the output point cloud. The drawback with this approach is that all dimensional data is lost, and the sampled cloud now consists of only XYZ coordinates.

Default Embedded Stage

This stage is enabled by default

## Example

    [
        "input.las",
        {
            "type":"filters.voxelcenternearestneighbor",
            "cell":10.0
        },
        "output.las"
    ]

See also

filters.voxelcentroidnearestneighbor offers a similar solution, using as the query point the centroid of all points falling within the voxel as opposed to the voxel center coordinates.

## Options

cell

  Cell size in the `X`, `Y`, and `Z` dimension. [Default: 1.0]

where

  An expression that limits points passed to a filter. Points that don’t pass the expression skip the stage but are available to subsequent stages in a pipeline. [Default: no filtering]

where_merge

  A strategy for merging points skipped by a ‘where’ option when running in standard mode. If `true`, the skipped points are added to the first point view returned by the skipped filter. If `false`, skipped points are placed in their own point view. If `auto`, skipped points are merged into the returned point view provided that only one point view is returned and it has the same point count as it did when the filter was run. [Default: `auto`]