Python bindings to geoarrow-rs
This library contains Python bindings to the GeoArrow Rust implementation.
- Fast: Connects to algorithms implemented in GeoRust, which compile to native code.
- Parallel: Multi-threading is enabled out-of-the-box for all operations on chunked data structures.
- Self-contained: Zero Python dependencies.
- Easy to install: Distributed as static binary wheels with zero C dependencies.
- Strong, static typing: geometry arrays have a known type
- Interoperable ecosystem: Data is shared at zero cost with other Python libraries in the burgeoning GeoArrow ecosystem, such as geoarrow-c or lightning-fast map rendering.
More specifically, it contains:
- Classes to represent GeoArrow arrays:
PointArray
,LineStringArray
, etc. - Classes to represent chunked GeoArrow arrays:
ChunkedPointArray
,ChunkedLineStringArray
, etc. - A spatial table representation,
GeoTable
, where one column is a geospatial type, to enable future support for geospatial joins. - Rust-based algorithms for computations on GeoArrow memory.
- Rust-based parsers for various geospatial file formats.
Refer to the documentation at geoarrow.github.io/geoarrow-rs/python.
- 3D coordinates. Only 2D geometries are supported at this time.
- More algorithms, including spatial indexes and spatial joins.
- CRS management. This currently loses the CRS information in the GeoArrow metadata.
Refer to the GeoArrow Python module proposal for more background information.