Skip to content

Releases: CSHS-CWRA/RavenPy

v0.10.0

21 Dec 19:00
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.9.0...v0.10.0

v0.9.0

16 Nov 19:18
06a1a40
Compare
Choose a tag to compare

Breaking changes

  • HRUState's signature has changed. Instead of passing variables as keyword arguments (e.g. soil0=10.), it now expects a state dictionary keyed by variables' Raven name (e.g. {"SOIL[0]": 10}). This change makes rvc` files easier to read, and avoids Raven warnings regarding 'initial conditions for state variables not in model'.
  • nc_index renamed to meteo_idx to enable the specification of distinct indices for observed streamflow using hydro_idx. nc_index remains supported for backward compatibility.
  • The distributed python testing library, pytest-xdist is now a testing and development requirement.
  • xarray has been pinned below "2022.11.0" due to incompatibility with climpred=="2.2.0".

New features

  • Add support for hydrometric gauge data distinct from meteorological input data. Configuration parameter hydro_idx identifies the gauge station index, while meteo_idx (previously nc_index) stands for the meteo station index.
  • Add support for multiple gauge observations. If a list of hydro_idx is provided, it must be accompanied with a list of corresponding subbasin identifiers (gauged_sb_ids) of the same length.
  • Automatically infer scale and offset :LinearTransform parameters from netCDF file metadata, so that input data units are automatically converted to Raven-compliant units whenever possible.
  • Add support for the command :RedirectToFile. Tested for grid weights only.
  • Add support for the command :WriteForcingFunctions.
  • Add support for the command :CustomOutput.
  • Multiple other new RavenCommand objects added, but not integrated in the configuration, including :SoilParameterList, :VegetationParameterList and :LandUseParameterList.
  • Multichoice options (e.g. calendars) moved from RV classes to config.options, but aliases created for backward compatibility.
  • Patch directory traversal vulnerability (CVE-2007-4559 <https://github.com/advisories/GHSA-gw9q-c7gh-j9vm>_).
  • A local copy of the raven-testdata with environment variable (RAVENPY_TESTDATA_PATH) set to that location is now no longer needed in order to run the testing suite. Test data is fetched automatically and now stored at ~/.raven_testing_data.
  • RavenPy now leverages pytest-xdist to distribute tests among Python workers and significantly speed up the testing suite, depending on number of available CPUs. File access within the testing suite has also been completely rewritten for thread safety.
    • On pytest launch with "--numprocesses > 0", testing data will be fetched automatically from Ouranosinc/raven-testdata by one worker, blocking others until this step is complete. Spawned pytest workers will then copy the testing data to their respective temporary directories before beginning testing.
  • To aid with development and debugging purposes, two new environment variables and pytest fixtures are now available:
    • In order to skip the data collection step: export SKIP_TEST_DATA=true
    • In order to target a specific branch of Ouranosinc/raven-testdata for data retrieval: export MAIN_TESTDATA_BRANCH="my_branch"
    • In order to fetch testing data using the user-set raven-testdata branch, pytest fixtures for get_file and get_local_testdata are now available for convenience

v0.8.1

26 Oct 13:58
Compare
Choose a tag to compare

Reverts the change in 0.8.0 regarding suppress_output, as it breaks downstream applications.
Slowdown due to build-up of files in zip archive handled by not calling parse_results during calibration.

v0.8.0

04 Oct 18:03
8d9fb7e
Compare
Choose a tag to compare

Breaking changes:

  • Parallel parameters must be provided explicitly using the parallel argument when calling emulators.
  • Multiple nc_index values generate multiple gauges, instead of being parallelized.
  • Python3.7 is no longer supported.
  • Documentation now uses sphinx-apidoc at build-time to generate API pages.

Other changes:

  • Add generate-hrus-from-routing-product script.
  • Do not write RV zip file and merge outputs when suppress_output is True. Zipping rv files during multiple calibration runs leads to a non-linear performance slow-down.
  • Fixed issues with coverage reporting via tox and GitHub Actions

v0.7.8

14 Jan 15:25
ed969a3
Compare
Choose a tag to compare
  • Added functionalities in Data Assimilation utils and simplified tests.
  • Removed pin on setuptools.
  • Fixed issues related to symlinks, working directory, and output filenames.
  • Fixed issues related to GDAL version handling in conda-forge.
  • Updated jupyter notebooks.

v0.7.7

21 Dec 15:45
Compare
Choose a tag to compare
  • Updated internal shapely calls to remove deprecated .to_wkt() methods.

v0.7.6

20 Dec 16:36
Compare
Choose a tag to compare
  • Automate release pipeline to PyPI using GitHub CI actions.
  • Added coverage monitoring GitHub CI action.
  • Various documentation adjustments.
  • Various metadata adjustments.
  • Pinned owslib to 0.24.1 and above.
  • Circumvented a bug in GitHub CI that was causing tests to fail at collection stage.

v0.7.5

10 Sep 16:14
24f56ad
Compare
Choose a tag to compare
  • Update test so that it works with xclim 0.29.

v0.7.4

02 Sep 20:40
Compare
Choose a tag to compare
  • Pinned climpred below v2.1.6

v0.7.3

31 Aug 13:45
Compare
Choose a tag to compare
  • Pinned xclim below v0.29.0