Skip to content

Releases: geoarrow/geoarrow-rs

rust-v0.3.0

09 Sep 13:10
0c0af60
Compare
Choose a tag to compare

New Features 🪄

  • Preliminary support for 3D (XYZ) geometries
  • Support for reading and writing GeoParquet 1.1
    • Support for reading and writing GeoArrow (native) geometry encoding
    • Support for reading with spatial filtering
  • Both synchronous and asynchronous readers for GeoParquet. Readers will stream a RecordBatch at a time by default.
  • Accept RecordBatchReader as input to all
  • New support for geoarrow.box array (equivalent to Vec<Option<geo::Rect>>). RectArray is now laid out as a StructArray internally instead of a FixedSizeListArray.
  • Improved documentation

Performance Improvements 🏎️

Bug fixes 🐛

  • Don't serialize empty array metadata by @kylebarron in #678
  • Fixed MixedGeometryArray handling. Exported Arrow UnionArrays always have same data layout.
  • Support MapArrays when exporting to geozero by @kylebarron in #721

New Contributors

Full Changelog: rust-v0.2.0...rust-v0.3.0

py-v0.3.0

09 Sep 13:11
0c0af60
Compare
Choose a tag to compare

New Features 🪄

  • Remove geometry class specializations. Instead of PointArray, LineStringArray, etc, there's now just GeometryArray, ChunkedGeometryArray, and Geometry (a scalar).
  • Remove GeoTable class, in favor of external, generic arrow Table implementations, such as arro3.core.Table.
  • Move to slimmer, functional API. No more geometry methods on classes.
  • Don't materialize input data when writing to a file.
  • New GeometryType class for understanding the geometry type of an array or chunked array.
  • Split Python code into three modules: geoarrow-rust-core, geoarrow-rust-compute and geoarrow-rust-io.
  • Support for Pyodide Python environment
  • Support Python file objects for reading and writing GeoParquet

Bug fixes 🐛

Full Changelog: py-v0.2.0...py-v0.3.0

rust-v0.2.0

23 Mar 18:26
2089a01
Compare
Choose a tag to compare

New! ✨

New I/O support for reading and writing to geospatial formats

  • Asynchronous FlatGeobuf reader. This also supports passing a spatial filter.
  • Initial support for reading from PostGIS. Note that not all Postgres data types are supported yet. Create an issue if your query fails.
  • Reading and writing newline-delimited GeoJSON.
  • Asynchronous GeoParquet reader for reading from remote files. By @weiji14 in #493
  • Also new support for writing GeoParquet files.
  • Support for reading and writing Arrow IPC files.

New algorithms!

  • Explode a Table where each multi-geometry expands into multiple rows of single geometries.
  • total_bounds
  • frechet_distance for LineString similarity.
  • line_interpolate_point and line_locate_point for linear referencing.
  • polylabel for polygon labeling.

Improved usability:

New Contributors

Full Changelog: rust-v0.1.0...rust-v0.2.0

py-v0.2.0

23 Mar 18:25
ee42b3b
Compare
Choose a tag to compare

New! ✨

New I/O support for reading and writing to geospatial formats

Better interoperability with the Python geospatial ecosystem.

New algorithms!

Improved display of Python objects:

  • Scalars now display as SVG geometries inside Jupyter environments.
  • Tables, arrays, and chunked arrays implement __repr__ so that you can inspect data easily.

Improved usability:

  • PointArray.from_xy to simplify creating a point array from numpy arrays of coordinates.
  • Index into arrays and chunked arrays with square brackets. E.g. point_array[0] will access the first point in the array. Negative indexing is also supported, so point_array[-1] will get the last item in the array.
  • New top-level docs website.

New Contributors

Full Changelog: py-v0.1.0...py-v0.2.0

rust-v0.1.0

21 Jan 15:56
8bc67cd
Compare
Choose a tag to compare

New Contributors

Full Changelog: rust-v0.0.1...rust-v0.1.0

Python v0.1.0

08 Jan 16:28
88b4c16
Compare
Choose a tag to compare

Initial release!