Changelog¶
[0.3.0] - 2024-09-07¶
New Features :magic_wand:¶
- Remove geometry class specializations. Instead of
PointArray,LineStringArray, etc, there's now justGeometryArray,ChunkedGeometryArray, andGeometry(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
GeometryTypeclass for understanding the geometry type of an array or chunked array. - Split Python code into three modules:
geoarrow-rust-core,geoarrow-rust-computeandgeoarrow-rust-io. - Support for Pyodide Python environment
- Support Python file objects for reading and writing GeoParquet
Bug fixes
¶
- Fix array indexing with negative integers by @kylebarron in geoarrow/geoarrow-rs!724
[0.2.0] - 2024-03-22¶
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.
- Pyogrio integration for reading from OGR/GDAL.
- Asynchronous GeoParquet reader for reading from remote files. By @weiji14 in geoarrow/geoarrow-rs!493
- Also new support for writing GeoParquet files.
- Most I/O readers and writers support Python file-like objects (in binary mode).
- Support for reading and writing Arrow IPC files.
Better interoperability with the Python geospatial ecosystem.¶
- Import from and export to GeoPandas GeoDataFrames. Refer to the GeoPandas interoperability documentation.
- Import from and export to Shapely arrays. Refer to the Shapely interoperability documentation.
- Better integration with Lonboard for fast visualization in Jupyter.
- All scalars, arrays, chunked arrays, and table objects implement
__geo_interface__for interoperability with existing tools. - Numpy interoperability for float array output from algorithms. Pass any
Float64ArrayorBooleanArraytonumpy.asarray. You can also pass a numpy array as vectorized input into a function likeline_interpolate_point.
New algorithms!¶
- Explode a Table where each multi-geometry expands into multiple rows of single geometries.
total_bounds- Unified
areafunction for planar and geodesic area. - Unified
simplifyfunction for multiple simplification methods. Also new support for topology-preserving simplification. - Unified
lengthfunction for euclidean and geodesic length calculations. frechet_distancefor LineString similarity.affine_transform, which integrates with the Pythonaffinelibrary.line_interpolate_pointandline_locate_pointfor linear referencing.polylabelfor polygon labeling.
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_xyto 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, sopoint_array[-1]will get the last item in the array. - New top-level docs website.
New Contributors¶
- @Robinlovelace made their first contribution in geoarrow/geoarrow-rs!484
- @weiji14 made their first contribution in geoarrow/geoarrow-rs!493
Full Changelog: github.com/geoarrow/geoarrow-rs/compare/py-v0.1.0...py-v0.2.0
[0.1.0] - 2024-01-08¶
- Initial public release.