Skip to content

Releases: hyriver/pygeoutils

v0.17.1

14 Sep 16:40
Compare
Choose a tag to compare

Release Notes

Internal Changes

  • Drop support for Python 3.8 since its end-of-life date is October 2024.

v0.17.0

05 Jul 19:40
Compare
Choose a tag to compare

Release Notes

Internal Changes

  • Add the exceptions module to the high-level API to declutter the main module. In the future, all exceptions will be raised from this module and not from the main module. For now, the exceptions are raised from both modules for backward compatibility.
  • Switch to using the src layout instead of the flat layout for the package structure. This is to make the package more maintainable and to avoid any potential conflicts with other packages.
  • Improve robustness of json2geodf by ensuring that all geojsons are in the same CRS.

v0.16.3

16 May 20:13
Compare
Choose a tag to compare

Release Notes

Internal Changes

  • Add the exceptions module to the high-level API to declutter the main module. In the future, all exceptions will be raised from this module and not from the main module. For now, the exceptions are raised from both modules for backward compatibility.
  • Improve robustness of json2geodf by ensuring that all geojsons are in the same CRS.

v0.16.1

15 Jan 18:30
Compare
Choose a tag to compare

Release Notes

Bug Fixes

  • pyproj uses its own env variables for SSL certification. This release fixes the issue with pyproj not being able to download the grid database when using DOI SSL certification file. This release uses pyproj.network.set_ca_bundle_path for setting the SSL certification file given by the user via HYRIVER_SSL_CERT env variable.
  • Ignore FutureWarning of pandas 2.1.0 for all-NaN columns in json2geodf.

Internal Changes

  • For Attrs class, use dataclass instead for better performance and consistency.

v0.16.0

03 Jan 19:03
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • Refactor the spline generation functions to make them more efficient, more accurate, and more robust. Switched to using UnivariateSpline from scipy instead of BSpline. This allows for more control over smoothness of the spline via the smooth parameter. References to BSpline has been removed from the functions and a new functionality has been added. The new spline generation functions are GeoSpline, make_spline, spline_linestring, smooth_linestring, spline_curvature, and line_curvature. The smooth_linestring function now returns a LineString instead of a Spline object. This function is intended for smoothing a LineString when curvature, radius of curvature, and tangent angles are not needed. The spline_linestring function now returns a Spline object that contains the smoothed LineString and curvature, radius of curvature, and tangent angles. Also, line_curvature function can be used to compute curvature, radius of curvature, and tangent angles of a LineString at all point along the LineString.

New Features

  • Add a new function called gtiff2vrt for creating a VRT file from a list of GeoTiff files. Note that this new function requires gdal to be installed.
  • The xd_write_crs function now keeps spatial_ref attribute of the input xarray.DataArray or xarray.Dataset to retain CF compliance.

v0.15.2

22 Sep 14:23
Compare
Choose a tag to compare

Release Notes

New Features

  • Add geometry_reproject function for reprojecting a geometry (bounding box, list of coordinates, or any shapely.geometry) to a new CRS.
  • Add smooth_linestring function for smoothing a LineString using B-splines.
  • Make make_bspline and bspline_curvature functions public. The make_bspline function uses scipy to generate a BSplines object and the bspline_curvature function calculates the tangent angles, curvature, and radius of curvature of a B-spline at any point along the B-spline.
  • Improve the accuracy and performance of B-spline generation functions.

Internal Changes

  • Remove dependency on dask.

v0.15.0

07 May 22:23
Compare
Choose a tag to compare

Release Notes

From release 0.15 onward, all minor versions of HyRiver packages will be pinned. This ensures that previous minor versions of HyRiver packages cannot be installed with later minor releases. For example, if you have py3dep==0.14.x installed, you cannot install pydaymet==0.15.x. This is to ensure that the API is consistent across all minor versions.

New Features

  • For now, retain compatibility with shapely<2 while supporting shapley>=2.

v0.14.0

05 Mar 16:49
Compare
Choose a tag to compare

Release Notes

New Features

  • Ignore index when concatenating multiple responses in json2geodf to ensure indices are unique
  • Add a new function, called coords_list, for converting/validating input coordinates of any type to a list of tuple, i.e., [(x1, y1), (x2, y2), ...].
  • Make xd_write_crs function public.
  • In xarray_geomask if the input geometry is very small return at least one pixel.
  • Add a new function, called multi2poly, for converting a MultiPolygon to a Polygon in a GeoDataFrame. This function tries to convert MultiPolygon to Polygon by first checking if MultiPolygon can be directly converted using their exterior boundaries. If not, will try to remove those small sub-Polygon that their area is less than 1% of the total area of the MultiPolygon. If this fails, the original MultiPolygon will be returned.

Breaking Changes

  • Bump the minimum required version of shapely to 2.0, and use its new API.

Internal Changes

  • Sync all minor versions of HyRiver packages to 0.14.0.

v0.13.12

10 Feb 16:18
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • The input geo-dataframes to break_lines now should be in a projected CRS.

New Features

  • Significant improvements in the accuracy and performance of nested_polygons by changing the logic. Now, the function first determines the nested polygons by comparing the centroids of the geometries with their geometry and then picks the largest geometry from each group of nested geometries.
  • Add a new function called query_indicies which is a wrapper around geopandas.sindex.query_bulk. However, instead of returning an array of positional indices, it returns a dictionary of indices where keys are the indices of the input geometry and values are a list of indices of the tree geometries that intersect with the input geometry.

Internal Changes

  • Simplify geo2polygon by making the two CRS arguments optional and only reproject if CRS values are given and different.
  • Apply the geometry mask in gtiff2xarray even if the input geometry is a bounding box since the mask might not be the same geometry as the one that was used during data query.
  • Fully migrate setup.cfg and setup.py to pyproject.toml.
  • Convert relative imports to absolute with absolufy-imports.
  • Sync all patch versions of HyRiver packages to x.x.12.

v0.13.11

09 Jan 04:35
Compare
Choose a tag to compare

Release Notes

Bug Fixes

  • Fix an in issue xarray_geomask where for geometries that are smaller than a single pixel, the bbox clipping operation fails. This is fixed by using the auto_expand option of rioxarray.clip_box.