shapely.voronoi_polygons#

voronoi_polygons(geometry, tolerance=0.0, extend_to=None, only_edges=False, **kwargs)#

Computes a Voronoi diagram from the vertices of an input geometry.

The output is a geometrycollection containing polygons (default) or linestrings (see only_edges). Returns empty if an input geometry contains less than 2 vertices or if the provided extent has zero area.

Parameters
geometryGeometry or array_like
tolerancefloat or array_like, default 0.0

Snap input vertices together if their distance is less than this value.

extend_toGeometry or array_like, optional

If provided, the diagram will be extended to cover the envelope of this geometry (unless this envelope is smaller than the input geometry).

only_edgesbool or array_like, default False

If set to True, the triangulation will return a collection of linestrings instead of polygons.

**kwargs

For other keyword-only arguments, see the NumPy ufunc docs.

Examples

>>> from shapely import LineString, MultiPoint, normalize, Point
>>> points = MultiPoint([(2, 2), (4, 2)])
>>> normalize(voronoi_polygons(points))
<GEOMETRYCOLLECTION (POLYGON ((3 0, 3 4, 6 4, 6 0, 3 0)), POLYGON ((0 0, 0 4...>
>>> voronoi_polygons(points, only_edges=True)
<LINESTRING (3 4, 3 0)>
>>> voronoi_polygons(MultiPoint([(2, 2), (4, 2), (4.2, 2)]), 0.5, only_edges=True)
<LINESTRING (3 4.2, 3 -0.2)>
>>> voronoi_polygons(points, extend_to=LineString([(0, 0), (10, 10)]), only_edges=True)
<LINESTRING (3 10, 3 0)>
>>> voronoi_polygons(LineString([(2, 2), (4, 2)]), only_edges=True)
<LINESTRING (3 4, 3 0)>
>>> voronoi_polygons(Point(2, 2))
<GEOMETRYCOLLECTION EMPTY>