geoarrow-pyarrow
Decision gist · record as of 2026-08-14
Yes, if you work with geographic data in Arrow-native formats or need efficient interop between geopandas and columnar storage. The low install friction and permissive license are favorable, but the aging maintenance status (444 days since last release) warrants checking whether active development meets your stability needs. No known security vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.8; pyarrow, geoarrow-types, and geoarrow-c must be installed.
- Low install friction with a pure-wheel distribution.
- Maintenance status is aging—last release was 444 days ago—but the repository remains active with recent commits and no archived status.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
last release 2025-05-27 (444 days) · last repo commit 2025-09-30 · 95 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 280,593 downloads/mo, #8,109 on PyPI
Alternatives
Verify before relying
pip install geoarrow-pyarrow
import geoarrow.pyarrow as ga
import pyarrow as pa
# Register extension types and read Arrow IPC files
with pa.ipc.open_stream(source) as reader:
tab = reader.read_all()
# Convert to geopandas
df = ga.to_geopandas(tab)- Performance characteristics when handling large geographic datasets relative to memory overhead.
- Compatibility scope with specific versions of geopandas, pyogrio, and GeoParquet specifications.
- Whether coordinate shuffling between WKT, WKB, and GeoArrow encodings preserves precision for all geometry types.
What it is and what it does
geoarrow-pyarrow bridges geographic data and Apache Arrow by registering PyArrow extension types that preserve coordinate reference system (CRS) and geometry type metadata when reading and writing Arrow-native formats like Parquet and Arrow IPC. It integrates with geopandas for bidirectional conversion and provides direct I/O to GeoParquet files and vector data via pyogrio, enabling memory-efficient workflows for large spatial datasets.
The package includes compute functions for coordinate transformations between WKT (well-known text), WKB (well-known binary), and native GeoArrow encodings, plus utilities to construct geometry arrays from coordinate buffers. It also exposes the geoarrow-types module for managing the large space of geometry type permutations (X, Y, Z, M dimensions and serialization formats), making it useful both for end users working with geographic data and for developers building geospatial tools on Arrow.
Use it for
- Read and write geographic data in Parquet format while preserving CRS and geometry type information.
- Convert between geopandas GeoDataFrames and Arrow tables for memory-efficient processing of large point clouds or polygon datasets.
- Load vector data directly from GeoParquet or OGR sources into PyArrow without intermediate geopandas materialization.
- Transform coordinate encodings between WKT, WKB, and GeoArrow native formats for interoperability.
- Build geospatial data pipelines that work natively with Arrow columnar storage and compute engines.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with geographic data in Arrow-native formats or need efficient interop between geopandas and columnar storage.
The low install friction and permissive license are favorable, but the aging maintenance status (444 days since last release) warrants checking whether active development meets your stability needs. No known security vulnerabilities.
Install
geoarrow-pyarrow on PyPI
Before you install
Low install friction with a pure-wheel distribution. Maintenance status is aging—last release was 444 days ago—but the repository remains active with recent commits and no archived status.
Requires Python >=3.8; pyarrow, geoarrow-types, and geoarrow-c must be installed.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install geoarrow-pyarrow
import geoarrow.pyarrow as ga
import pyarrow as pa
# Register extension types and read Arrow IPC files
with pa.ipc.open_stream(source) as reader:
tab = reader.read_all()
# Convert to geopandas
df = ga.to_geopandas(tab)
Verify before relying
- Performance characteristics when handling large geographic datasets relative to memory overhead.
- Compatibility scope with specific versions of geopandas, pyogrio, and GeoParquet specifications.
- Whether coordinate shuffling between WKT, WKB, and GeoArrow encodings preserves precision for all geometry types.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespyarrowgeoarrow-typesgeoarrow-c |
| Maintenance | Aging 444 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 280,593 / month, #8,109 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: geoarrow_pyarrow-0.2.0-py3-none-any.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 › “spatial data parquet”
- geoarrow-pyarrowProvides Python bindings for the GeoArrow specification, enabling…
- arcosparseDownloads and subsets sparse geospatial datasets stored in ARCO…
- geoarrow-pandasIntegrates GeoArrow geometry data with pandas and pyarrow, enabling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
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.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also geoarrow-c · geoarrow-pandas · geoarrow-types · pyarrow · pyarrow-hotfix · geopandas · pydantic-to-pyarrow · feather-format · pyarrowfs-adlgen2 · overturemaps