Skip to content

Releases: hyriver/pygeohydro

v0.15.0

07 May 22:56
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

  • Add a new option to NWIS.get_info, called nhd_info, for retrieving NHDPlus related info on the sites. This will two new service calls that might slow down the function, so it's disabled by default.
  • Update links in NID to the latest CSV and GPKG versions of the NID dataset.
  • Add two new properties to NID to access the entire NID dataset. You can use NID.df to access the CSV version as a pandas.DataFrame and NID.gdf to access the GPKG version as a geopandas.GeoDataFrame. Installing pyogrio is highly recommended for much faster reading of the GPKG version.
  • Refactor NID.bygeom to use the new NID.gdf property for spatial querying of the dataset. This change should make the query much faster.
  • For now, retain compatibility with shapely<2 while supporting shapley>=2.

v0.14.0

05 Mar 16:51
Compare
Choose a tag to compare

Release Notes

New Features

  • Add a new function, called nlcd_area_percent, for computing the percentages or natural, developed, and impervious areas within geometries of a given GeoDataFrame. This function uses imperviousness and land use/land cover data from NLCD to compute the area percentages of the natural, developed, and impervious areas. For more information please refer to the function's documentation.
  • Add a new column to the dataframe returned by NWIS.get_info, called nhd_comid, and rename drain_sqkm to nhd_areasqkm. The new drainage area is the best available estimates of stations' drainage area that have been extracted from the NHDPlus. The new nhd_comid column makes it easier to link stations to NHDPlus.
  • In get_camels, return qobs with negatives values set to NaN. Also, Add a new variable called Newman_2017 to both datasets for identifying the 531 stations that were used in Newman et al. (2017).
  • Add a new function, called streamflow_fillna, for filling missing streamflow values (NAN) with day-of-year average values.

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.
  • Improve performance of all NLCD functions by merging two methods of the NLCD and also reducing the memory footprint of the functions.

v0.13.12

10 Feb 16:20
Compare
Choose a tag to compare

Release Notes

New Features

  • Add initial support for SensorThings API Currently, the SensorThings class only supports Things endpoint. Users need to provide a valid Odata filter. The class has a odata_helper function that can be used to generate and validate Odata filters. Additionally, using sensor_info and sensor_property functions users can request for information about sensors themselves or their properties.

Internal Changes

  • Simplify geometry validation by using pygeoutils.geo2polygon function in ssebopeta_bygeom.
  • 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.10

09 Jan 16:58
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • The NID service has changed some of its endpoints to use Federal ID instead of Dam ID. This change affect the NID.inventory_byid function. This function now accepts Federal IDs instead of dam IDs.

New Features

  • Refactor the show_versions function to improve performance and print the output in a nicer table-like format.

Internal Changes

  • Use the new pygeoogc.streaming_download function in huc_wb_full to improve performance and reduce code complexity.
  • Skip 0.13.9 version so the minor version of all HyRiver packages become the same.
  • Modify the codebase based on the latest changes in geopandas related to empty dataframes.
  • Use pyright for static type checking instead of mypy and address all typing issues that it raised.

v0.13.8

09 Dec 23:06
Compare
Choose a tag to compare

Release Notes

New Features

  • Add a function called huc_wb_full that returns the full watershed boundary GeoDataFrame of a given HUC level. If only a subset of HUCs is needed the pygeohydro.WBD class should be used. The full dataset is downloaded from the National Maps' WBD staged products.
  • Add a new function called irrigation_withdrawals for retrieving estimated monthly water use for irrigation by 12-digit hydrologic unit in the CONUS for 2015 from ScienceBase.
  • Add a new property to NID, called data_units for indicating the units of NID dataset variables.
  • The get_us_states now accepts conus as a subset_key which is equivalent to contiguous.

Internal Changes

  • Add get_us_states to __init__ file, so it can be loaded directly, e.g., gh.get_us_states("TX").
  • Modify the codebase based on Refurb suggestions.
  • Significant performance improvements in NWIS.get_streamflow especially for large requests by refactoring the timezone handling.

Bug Fixes

  • Fix the dam types and purposes mapping dictionaries in NID class.

v0.13.7

05 Nov 01:04
Compare
Choose a tag to compare

Release Notes

New Features

  • Add a two new function for retrieving soil properties across the US:
    • soil_properties: Porosity, available water capacity, and field capacity,
    • soil_gnatsgo: Soil properties from the gNATSGO database.
  • Add a new help function called state_lookup_table for getting a lookup table of US states and their counties. This can be particularly useful for mapping the digit state_cd and county_cd that NWIS returns to state names/codes.
  • Add support for getting individual state geometries using get_us_states function by passing their two letter state code. Also, use TIGER 2022 data for the US states and counties instead of TIGER 2021.

Internal Changes

  • Remove proplot as a dependency and use matplotlib instead.

v0.13.6

30 Aug 17:30
Compare
Choose a tag to compare

Release Notes

Internal Changes

  • Add the missing PyPi classifiers for the supported Python versions.

v0.13.5

29 Aug 21:40
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • Append "Error" to all exception classes for conforming to PEP-8 naming conventions.
  • Deprecate ssebopeta_byloc since it's been replaced with ssebopeta_bycoords since version 0.13.0.

Internal Changes

  • Bump the minimum versions of pygeoogc and pygeoutils to 0.13.5 and that of async-retriever to 0.3.5.

v0.13.3

31 Jul 15:28
Compare
Choose a tag to compare

Release Notes

New Features

  • Add a new argument to NID.inventory_byid class for staging the entire NID dataset prior to inventory queries. There a new public method called NID.stage_nid_inventory that can be used to download the entire NID dataset and save it as a feather file. This is useful inventory queries with large number of IDs and is much more efficient than querying the NID web service.

Bug Fixes

  • The background value in cover_statistics function should have been 127 not 0. Also, dropped the background value from the return statistics.

v0.13.2

14 Jun 05:33
Compare
Choose a tag to compare

Release Notes

Breaking Changes

  • Set the minimum supported version of Python to 3.8 since many of the dependencies such as xarray, pandas, rioxarray have dropped support for Python 3.7.

Internal Changes

  • Remove USGS prefixes from the input station IDs in NWIS.get_streamflow function. Also, check if the remaining parts of the IDs are all digits and throw an exception if otherwise. Additionally, make sure that IDs have at least 8 chars by adding leading zeros (:issue_hydro:[99]{.title-ref}).
  • Use micromamba for running tests and use nox for linting in CI.