Metadata-Version: 2.4
Name: geoparquet-io
Version: 1.1.1
Summary: Fast I/O and transformation tools for GeoParquet files
Project-URL: Homepage, https://github.com/geoparquet/geoparquet-io
Project-URL: Bug Tracker, https://github.com/geoparquet/geoparquet-io/issues
Project-URL: Documentation, https://geoparquet.io/
Project-URL: Source, https://github.com/geoparquet/geoparquet-io
Author-email: Chris Holmes <cholmes@9eo.org>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: geoparquet,geospatial,gis,io,parquet
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.10
Requires-Dist: aiohttp>=3.13.4
Requires-Dist: click-plugins>=1.1.1
Requires-Dist: click>=8.0.0
Requires-Dist: duckdb>=1.5.0
Requires-Dist: fsspec>=2023.9.0
Requires-Dist: geoarrow-pyarrow>=0.1.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: jsonschema>=4.0.0
Requires-Dist: lxml>=6.1.0
Requires-Dist: mercantile>=1.2.0
Requires-Dist: obstore>=0.8.2
Requires-Dist: owslib>=0.29.0
Requires-Dist: pandas>=1.0.0
Requires-Dist: psutil>=5.9.0
Requires-Dist: pyarrow>=12.0.0
Requires-Dist: pyproj>=3.0.0
Requires-Dist: pystac>=1.9.0
Requires-Dist: requests>=2.33.0
Requires-Dist: rich>=13.0.0
Requires-Dist: s3fs>=2023.9.0
Provides-Extra: benchmark
Requires-Dist: fiona>=1.9.0; extra == 'benchmark'
Requires-Dist: geopandas>=0.14.0; extra == 'benchmark'
Requires-Dist: pyogrio>=0.7.0; extra == 'benchmark'
Provides-Extra: dev
Requires-Dist: bandit>=1.7; extra == 'dev'
Requires-Dist: codespell>=2.2; extra == 'dev'
Requires-Dist: commitizen>=4.0; extra == 'dev'
Requires-Dist: deptry>=0.25.0; extra == 'dev'
Requires-Dist: import-linter>=2.0; extra == 'dev'
Requires-Dist: menard>=0.4.0; extra == 'dev'
Requires-Dist: mutmut>=3.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: nbmake>=1.5.0; extra == 'dev'
Requires-Dist: pip-audit>=2.7; extra == 'dev'
Requires-Dist: pre-commit>=4.3.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.5.0; extra == 'dev'
Requires-Dist: pytest>=9.0.3; extra == 'dev'
Requires-Dist: pyyaml>=6.0; extra == 'dev'
Requires-Dist: radon>=6.0.1; extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Requires-Dist: tomli>=2.0.0; (python_version < '3.11') and extra == 'dev'
Requires-Dist: vulture>=2.14; extra == 'dev'
Requires-Dist: xenon>=0.9.3; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
Requires-Dist: pymdown-extensions>=10.18; extra == 'docs'
Description-Content-Type: text/markdown

# geoparquet-io

[![PyPI version](https://badge.fury.io/py/geoparquet-io.svg)](https://badge.fury.io/py/geoparquet-io)
[![Tests](https://github.com/geoparquet/geoparquet-io/actions/workflows/tests.yml/badge.svg)](https://github.com/geoparquet/geoparquet-io/actions/workflows/tests.yml)
[![codecov](https://codecov.io/gh/geoparquet/geoparquet-io/branch/main/graph/badge.svg)](https://codecov.io/gh/geoparquet/geoparquet-io)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/geoparquet/geoparquet-io/blob/main/LICENSE)

Fast I/O and transformation tools for [GeoParquet](https://geoparquet.org/) files, powered by [DuckDB](https://duckdb.org/) and [PyArrow](https://arrow.apache.org/docs/python/).

- **One interface** for conversion, sorting, partitioning, and spatial indexing.
- CLI and Python API with **full type hints**.
- **Unix pipes** with Arrow IPC streaming—no intermediate files.
- Read/write to **S3, GCS, Azure, HTTPS** via DuckDB and [obstore](https://github.com/developmentseed/obstore).
- Automatic **Hilbert sorting**, **ZSTD compression**, **bbox columns**.
- Add **H3, S2, A5, quadkey, KD-tree** spatial indices.
- **GeoParquet 1.1 and 2.0** support, including Parquet geometry types.

## Installation

```sh
uv tool install geoparquet-io   # CLI (recommended)
uv add geoparquet-io            # Python library
```

Or with pip:

```sh
pip install geoparquet-io
```

## Documentation

[Full documentation](https://geoparquet.io) is available on the website.

Head to [Getting Started](https://geoparquet.io/getting-started/quickstart/) to dig in.

## Development

```sh
git clone https://github.com/geoparquet/geoparquet-io.git
cd geoparquet-io
uv sync --all-extras
uv run pytest
```

See [Contributing Guide](https://geoparquet.io/contributing/) for details.

## License

[Apache 2.0](LICENSE)
