decimate#

PolyDataFilters.decimate(target_reduction, volume_preservation=False, attribute_error=False, scalars=True, vectors=True, normals=False, tcoords=True, tensors=True, scalars_weight=0.1, vectors_weight=0.1, normals_weight=0.1, tcoords_weight=0.1, tensors_weight=0.1, inplace=False, progress_bar=False)[source]#

Reduce the number of triangles in a triangular mesh using vtkQuadricDecimation.

Parameters:
target_reductionfloat

Fraction of the original mesh to remove. If target_reduction is set to 0.9, this filter will try to reduce the data set to 10% of its original size and will remove 90% of the input triangles.

volume_preservationbool, optional

Decide whether to activate volume preservation which greatly reduces errors in triangle normal direction. If False, volume preservation is disabled and if attribute_error is active, these errors can be large. Defaults to False.

attribute_errorbool, optional

Decide whether to include data attributes in the error metric. If False, then only geometric error is used to control the decimation. Defaults to False. If True, the following flags are used to specify which attributes are to be included in the error calculation.

scalarsbool, optional

If attribute errors are to be included in the metric (i.e., attribute_error is True), then these flags control which attributes are to be included in the error calculation. Defaults to True.

vectorsbool, optional

See scalars parameter. Defaults to True.

normalsbool, optional

See scalars parameter. Defaults to False.

tcoordsbool, optional

See scalars parameter. Defaults to True.

tensorsbool, optional

See scalars parameter. Defaults to True.

scalars_weightfloat, optional

The scaling weight contribution of the scalar attribute. These values are used to weight the contribution of the attributes towards the error metric. Defaults to 0.1.

vectors_weightfloat, optional

See scalars_weight parameter. Defaults to 0.1.

normals_weightfloat, optional

See scalars_weight parameter. Defaults to 0.1.

tcoords_weightfloat, optional

See scalars_weight parameter. Defaults to 0.1.

tensors_weightfloat, optional

See scalars_weight parameter. Defaults to 0.1.

inplacebool, optional

Whether to update the mesh in-place.

progress_barbool, optional

Display a progress bar to indicate progress.

Returns:
pyvista.PolyData

Decimated mesh.

Notes

If you encounter a segmentation fault or other error, consider using pyvista.PolyDataFilters.clean() to remove any invalid cells before using this filter.

Examples

Decimate a sphere. First plot the sphere.

>>> import pyvista
>>> sphere = pyvista.Sphere(phi_resolution=60, theta_resolution=60)
>>> sphere.plot(show_edges=True, line_width=2)
../../../_images/pyvista-PolyDataFilters-decimate-1_00_00.png

Now decimate it by 75% and plot it.

>>> decimated = sphere.decimate(0.75)
>>> decimated.plot(show_edges=True, line_width=2)
../../../_images/pyvista-PolyDataFilters-decimate-1_01_00.png

See Decimation for more examples using this filter.