Skip to content

Latest commit

 

History

History
36 lines (24 loc) · 1.93 KB

README.md

File metadata and controls

36 lines (24 loc) · 1.93 KB

geoarrow.rust.core

Python bindings to geoarrow-rs

Overview

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.

Documentation

Refer to the documentation at geoarrow.github.io/geoarrow-rs/python.

Future work:

  • 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.

Background reading

Refer to the GeoArrow Python module proposal for more background information.