Skip to main content

Vectorized spatial vector file format I/O using GDAL/OGR

Project description

pyogrio - Vectorized spatial vector file format I/O using GDAL/OGR

Pyogrio provides a GeoPandas-oriented API to OGR vector data sources, such as ESRI Shapefile, GeoPackage, and GeoJSON. Vector data sources have geometries, such as points, lines, or polygons, and associated records with potentially many columns worth of data.

Pyogrio uses a vectorized approach for reading and writing GeoDataFrames to and from OGR vector data sources in order to give you faster interoperability. It uses pre-compiled bindings for GDAL/OGR so that the performance is primarily limited by the underlying I/O speed of data source drivers in GDAL/OGR rather than multiple steps of converting to and from Python data types within Python.

We have seen >5-10x speedups reading files and >5-20x speedups writing files compared to using non-vectorized approaches (Fiona and current I/O support in GeoPandas).

You can read these data sources into GeoDataFrames, read just the non-geometry columns into Pandas DataFrames, or even read non-spatial data sources that exist alongside vector data sources, such as tables in a ESRI File Geodatabase, or antiquated DBF files.

Pyogrio also enables you to write GeoDataFrames to at least a few different OGR vector data source formats.

Read the documentation for more information: https://pyogrio.readthedocs.io.

WARNING: Pyogrio is still at an early version and the API is subject to substantial change. Please see CHANGES.

Requirements

Supports Python 3.8 - 3.11 and GDAL 3.1.x - 3.6.x.

Reading to GeoDataFrames requires geopandas>=0.8 with pygeos or geopandas>=0.12 with shapely>=2.

Additionally, installing pyarrow in combination with GDAL 3.6+ enables a further speed-up when specifying use_arrow=True.

Installation

Pyogrio is currently available on conda-forge and PyPI for Linux, MacOS, and Windows.

Please read the installation documentation for more information.

Supported vector formats

Pyogrio supports some of the most common vector data source formats (provided they are also supported by GDAL/OGR), including ESRI Shapefile, GeoPackage, GeoJSON, and FlatGeobuf.

Please see the list of supported formats for more information.

Getting started

Please read the introduction for more information and examples to get started using Pyogrio.

You can also check out the the API documentation for full details on using the API.

Credits

This project is made possible by the tremendous efforts of the GDAL, Fiona, and Geopandas communities.

  • Core I/O methods and supporting functions adapted from Fiona
  • Inspired by Fiona PR

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyogrio-0.5.0.tar.gz (316.7 kB view hashes)

Uploaded Source

Built Distributions

pyogrio-0.5.0-cp311-cp311-win_amd64.whl (14.0 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

pyogrio-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyogrio-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (13.6 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pyogrio-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl (14.9 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pyogrio-0.5.0-cp310-cp310-win_amd64.whl (14.0 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

pyogrio-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyogrio-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (13.6 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pyogrio-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl (14.9 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pyogrio-0.5.0-cp39-cp39-win_amd64.whl (14.0 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

pyogrio-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyogrio-0.5.0-cp39-cp39-macosx_11_0_arm64.whl (13.6 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pyogrio-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl (14.9 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pyogrio-0.5.0-cp38-cp38-win_amd64.whl (14.0 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

pyogrio-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyogrio-0.5.0-cp38-cp38-macosx_11_0_arm64.whl (13.6 MB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pyogrio-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl (14.9 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page