Changelog¶
Unreleased¶
Breaking changes¶
- Split
GeometryArray
intoNativeArray
andSerializedArray
.NativeArray
encompasses any "native" GeoArrow array types, which are efficient to compute on, whileSerializedArray
encompasses any "serialized" GeoArrow types, like WKB and WKT, which must be parsed before they can be passed to any compute functions.
[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.