pygeoops icon indicating copy to clipboard operation
pygeoops copied to clipboard

Library with some less common or extended spatial functions

PyGeoOps

Actions Status codecov PyPI version Conda version

PyGeoOps provides some less common or extended spatial algorithms and utility functions.

Introduction

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.

Usage

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)

centerline

Installation

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