PyGeoOps provides some less common or extended spatial algorithms and utility functions.
This is a shortlist of the available functions:
- centerline: centerline/medial axis calculation for a polygon, including optional cleanup of short branches.
- view_angles: determine the start and end angle a polygon is visible from the viewpoint specified
- simplify: simplify a polygon, with some extended options like
- choice in simplification algorithms: Lang (+ a variant), Ramer Douglas Peuker, Visvalingal Whyatt
- specify points/locations where points should not be removed by the simplification
- topologic simplification: common boundaries between input features should stay common
- utility functions to create and split grids (create_grid, split_tiles)
- general utility functions on geometries like remove_inner_rings, collection_extract,…
Full documentation can be found on Read the Docs.
The centerline for a polygon, including the default cleanup of short branches, can be calculated like this:
import pygeoops
import shapely
polygon = shapely.from_wkt("POLYGON ((0 0, 0 8, -2 10, 4 10, 2 8, 2 2, 10 2, 10 0, 0 0))")
centerline = pygeoops.centerline(polygon)
PyGeoOps is available on PyPi, so can be installed using pip:
pip install pygeoops
Another option is to use conda or mamba, as it is also available on conda-forge:
conda install pygeoops --channel conda-forge