Skip to contents

Josiah Parry

Fast and efficient geospatial operations on GeoArrow arrays.

Bindings to the geoarrow-rs, pure-Rust implementation of GeoArrow with fast “geospatial algorithms implemented by the GeoRust community.”1

extendr creates the Rust 🦀 bindings.

The geoarrowrs (pronounced “gee-oh-air-oh-arr-ess”) package provides the following:

  • Data I/O readers:
    • Shapefile
    • Flatgeobuf
    • GeoJson
    • Note: use geoarrow and arrow R packages for reading parquet.
  • Triangulation (Delaunay, Earcut)
  • Voronoi cells and edges
  • Length
  • Distance (pairwise only at the moment)
  • Simplification
  • Area
  • Bounding Boxes
  • Extremes
  • Rotated rectangles
  • Interpolation
  • Geometry conversion
  • Geometry explosion & flattening
  • Affine ops

Installation

Install the geoarrowrs from GitHub:

pak::pak("josiahparry/geoarrowrs")

Note that you need Rust to install it.

Visit rustup to install rust (do it, it’s fun! believe me!).

Usage

Note that {geoarrowrs} works with the {geoarrow} and {nanoarrow} R packages, specifically. Additionally, I took special care to make it work with {arrow} and its Acero / {dplyr} engines.