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
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
andgeoarrow-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
Float64Array
orBooleanArray
tonumpy.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
area
function for planar and geodesic area. - Unified
simplify
function for multiple simplification methods. Also new support for topology-preserving simplification. - Unified
length
function for euclidean and geodesic length calculations. frechet_distance
for LineString similarity.affine_transform
, which integrates with the Pythonaffine
library.line_interpolate_point
andline_locate_point
for linear referencing.polylabel
for 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_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, 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.