# filters.voxeldownsize

The voxeldownsize 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, either first point entering in the voxel or center of a voxel (depending on mode argument) is accepted and voxel is marked as populated. All other points entering in the same voxel are filtered out.

## Example

    [
        "input.las",
        {
            "type":"filters.voxeldownsize",
            "cell":1.0,
            "mode":"center"
        },
        "output.las"
    ]

See also

filters.voxelcenternearestneighbor offers a similar solution, using the coordinates of the voxel center 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.

## Options

cell

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

mode

  Mode for voxel based filtering. [Default: center] center: Coordinates of the first point found in each voxel will be modified to be the center of the voxel. first: Only the first point found in each voxel is retained.

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

Warning

If you choose center mode, you are overwriting the X, Y and Z values of retained points. This may invalidate other dimensions of the point if they depend on this location or the location of other points in the input.