pygeos
GEOS wrapped in numpy ufuncs
Decision gist · record as of 2026-08-14
Yes, if you need high-performance vectorized geometry operations on arrays and are comfortable with a dormant package. PyGEOS 0.14 is stable and receives no known vulnerabilities, but new projects should prefer Shapely 2.0, which incorporates PyGEOS's vectorization natively. Install PyGEOS only if you have an existing codebase relying on it or require its specific API; for new work, Shapely 2.0 is the maintained path forward.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a C compiler and GEOS library at build time; prebuilt wheels are available for common platforms.
- NumPy must be installed as a runtime dependency.
- Medium install friction due to compiled C extensions; wheels are available for Python 3.7–3.11 on macOS, Windows, and Linux.
License · maintenance · safety
BSD 3-Clause (permissive) — BSD 3-Clause is permissive; you may use, modify, and distribute PyGEOS freely in commercial and private projects. GEOS itself is licensed under LGPL 2.1, which does not impose additional restrictions on PyGEOS's BSD wrapper.
last release 2022-12-12 (1341 days) · last repo commit 2024-09-03 · 389 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 149,545 downloads/mo, #10,991 on PyPI
Alternatives
Verify before relying
import numpy as np
from pygeos import box, contains, points
geoms = points(*np.indices((4, 4)))
polygon = box(0, 0, 2, 2)
result = contains(polygon, geoms)- Whether PyGEOS 0.14 receives backports from Shapely 2.0 or is truly unmaintained after December 2022.
- Performance characteristics compared to Shapely 2.0's native vectorized operations.
- Compatibility with recent GEOS versions and whether binary wheels will be rebuilt for newer Python releases.
What it is and what it does
PyGEOS is a C/Python library that wraps the open-source GEOS geometry engine to provide NumPy ufuncs for geometric operations. Instead of looping over geometries in Python, PyGEOS performs bulk operations on arrays of geometries with the GIL released, enabling parallel computation and significant performance gains for spatial workflows.
The package is designed for developers working with large collections of geometric objects—points, polygons, lines—who need to compute containment, intersection, area, and other topological properties at scale. It integrates directly with NumPy's broadcasting semantics, so operations on geometry arrays feel natural to users familiar with array-oriented Python. However, PyGEOS development was merged into Shapely in December 2021, and active maintenance has shifted to the Shapely repository; PyGEOS 0.14 is the final standalone release, with only backports expected.
Use it for
- Batch spatial queries: test whether thousands of points fall within a polygon without explicit Python loops.
- Intersection analysis: compute areas of all pairwise intersections between two lists of polygons efficiently.
- Geospatial data pipelines: filter or transform large GeoDataFrames by geometric predicates using vectorized operations.
- Multithreaded geometry processing: leverage multiple CPU cores to parallelize GEOS computations from a single Python process.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need high-performance vectorized geometry operations on arrays and are comfortable with a dormant package.
PyGEOS 0.14 is stable and receives no known vulnerabilities, but new projects should prefer Shapely 2.0, which incorporates PyGEOS's vectorization natively. Install PyGEOS only if you have an existing codebase relying on it or require its specific API; for new work, Shapely 2.0 is the maintained path forward.
Install
pygeos on PyPI
Before you install
Medium install friction due to compiled C extensions; wheels are available for Python 3.7–3.11 on macOS, Windows, and Linux. The package is dormant—last release was December 2022 and last commit September 2024—but the project was intentionally merged into Shapely 2.0, so active development has moved upstream.
Requires a C compiler and GEOS library at build time; prebuilt wheels are available for common platforms. NumPy must be installed as a runtime dependency.
License in practice
BSD 3-Clause is permissive; you may use, modify, and distribute PyGEOS freely in commercial and private projects. GEOS itself is licensed under LGPL 2.1, which does not impose additional restrictions on PyGEOS's BSD wrapper.
Quickstart
import numpy as np
from pygeos import box, contains, points
geoms = points(*np.indices((4, 4)))
polygon = box(0, 0, 2, 2)
result = contains(polygon, geoms)
Verify before relying
- Whether PyGEOS 0.14 receives backports from Shapely 2.0 or is truly unmaintained after December 2022.
- Performance characteristics compared to Shapely 2.0's native vectorized operations.
- Compatibility with recent GEOS versions and whether binary wheels will be rebuilt for newer Python releases.
Package facts
| License | BSD 3-Clause permissive |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Dormant 1,341 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 149,545 / month, #10,991 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Science/ResearchOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: UnixProgramming Language :: Python :: 3Topic :: Scientific/EngineeringTopic :: Software Development |
Evidence: pygeos-0.14-cp310-cp310-macosx_10_9_universal2.whl; pygeos-0.14-cp310-cp310-macosx_10_9_x86_64.whl; pygeos-0.14-cp310-cp310-macosx_11_0_arm64.whl; pygeos-0.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pygeos-0.14-cp310-cp310-win32.whl; pygeos-0.14-cp310-cp310-win_amd64.whl; pygeos-0.14-cp311-cp311-macosx_10_9_universal2.whl; pygeos-0.14-cp311-cp311-macosx_10_9_x86_64.whl; pygeos-0.14-cp311-cp311-macosx_11_0_arm64.whl; pygeos-0.14-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; pygeos-0.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pygeos-0.14-cp311-cp311-win32.whl; pygeos-0.14-cp311-cp311-win_amd64.whl; pygeos-0.14-cp37-cp37m-macosx_10_9_x86_64.whl; pygeos-0.14-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl; pygeos-0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pygeos-0.14-cp37-cp37m-win32.whl; pygeos-0.14-cp37-cp37m-win_amd64.whl; pygeos-0.14-cp38-cp38-macosx_10_9_universal2.whl; pygeos-0.14-cp38-cp38-macosx_10_9_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “vectorized geometry operations”
- pygeosPyGEOS wraps GEOS geometry operations in NumPy ufuncs to perform…
- shapelyShapely provides Python tools for creating, manipulating, and…
- numpy-stlReads, writes, and modifies STL mesh files (binary and ASCII formats)…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also shapely · pygeoif · geopandas · gsw · odc-geo · dask-geopandas · descartes · s2sphere · reproj · geojson