A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of RavenPy

RavenPy - v0.18.0

New features

  • ravenpy now supports Python3.13. (PR #459)
  • Updated raven-hydro to v0.4.0 (RavenHydroFramework v4.0.1). (PR #459)
  • Updated xclim to v0.54.0, pint to v0.24.4, and numpy to v1.24.0 (no longer pinned below v2.0). (PR #459)
  • ravenpy is now registered with the Open Source Security Foundation (OSSF) Best Practices initiative (RavenPy OpenSSF-BP Status). (PR #464)
  • ravenpy now enables new EvaluationMetrics commands in the model configuration. Other features from RavenHydroFramework will be included in newer releases. (PR #476)

Bug fixes

  • Fix bug in _MonthlyRecord class definition crashing the pydantic-autodoc serialization. (PR #458)
  • Fixed a small API bug in the Comparing_hindcasts_and_ESP_forecasts.ipynb notebook. (PR #463)
  • The Raven model previously always reported version "3.7", regardless of the installed Raven version. It now uses raven-hydro's __raven_version__ attribute. (PR #464)

Internal changes

  • Updated the cookiecutter template to the latest commit: (PR #454)
    • GitHub Actions and Python dependencies have been updated.
    • New pre-commit hooks for vulture (find dead code) and codespell (spelling errors).
    • Removed several type: ignore statements.
    • Spelling errors in documentation have been addressed.
  • GitHub Workflows now test ravenpy using macOS as well as Python3.13. (PR #459)
  • Several small deprecation and usage warnings as well as a few variable typing issues have been addressed. (PR #464)
  • Updated the license to reflect current year. (PR #476)
  • Documentation version now supports showing hyphens in the version number. (PR #476)
  • Call signatures and docstrings of functions have been modified to be more precise for the expected variable type. (PR #476)

Hydrosphere - Freshwater and Hydrology - Python
Published by github-actions[bot] 24 days ago

RavenPy - v0.17.0

  • Updated the cookiecutter template to the latest commit and synchronized dependencies between PyPI and Anaconda recipes. (PR #427)
  • Updated ts_fit_graph logic for matplotlib >= 3.10.0 compatibility. (PR #434)
  • Temporarily pinned pygments below v2.19 due to a breaking change affecting sphinx-codeautolink. (PR #434)
  • Adopted a new RavenPy logo for the documentation. (PR #428)
  • Documentation Updates: (PR #436)
    • Cleaner imports, removed some unneeded library imports.
    • Typo and grammar fixes.
    • Updated the Python, Anaconda, and Ubuntu versions used to generate the documentation.
  • Small import fixes and minor code cleanup (ravenpy.extractors). (PR #436)
  • Adjusted pins for intake, intake-esm and zarr to ensure notebooks run correctly. (PR #440)
  • Added a Security Policy (SECURITY.md) to the repository. (PR #441)
  • Updated the cookiecutter template to the latest commit: (PR #444)
    • Workflows now use Checkout with persist-credentials: false.
    • CodeQL workflow has been updated.
    • pre-commit hooks for vulture (finding dead code) and zizmor (finding security vulnerabilities) have been added.

Hydrosphere - Freshwater and Hydrology - Python
Published by github-actions[bot] 3 months ago

RavenPy - v0.16.1

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.16.0...v0.16.1

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre 5 months ago

RavenPy - v0.16.0

What's Changed

New Contributors

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.15.0...v0.16.0

Hydrosphere - Freshwater and Hydrology - Python
Published by github-actions[bot] 6 months ago

RavenPy - v0.15.0

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.14.1...v0.15.0

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre 10 months ago

RavenPy - v0.13.1

This is a patch update of v0.13.0 containing a backport of the following changes in order to provide stability for PAVICS users:

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre 12 months ago

RavenPy - v0.14.1

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.14.0...v0.14.1

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre 12 months ago

RavenPy - v0.14.0

What's Changed

New Contributors

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.13...v0.14.0

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre about 1 year ago

RavenPy - v0.13

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.12.3...v0.13

Hydrosphere - Freshwater and Hydrology - Python
Published by huard over 1 year ago

RavenPy - v0.12.3

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.12.2...v0.12.3

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 1 year ago

RavenPy - v0.12.2

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.12.1...v0.12.2

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre almost 2 years ago

RavenPy - v0.12.1

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.12.0...v0.12.1

Hydrosphere - Freshwater and Hydrology - Python
Published by huard almost 2 years ago

RavenPy - v0.12.0

What's Changed

This release includes major breaking changes. It completely overhauls how models are defined, and how to run
simulations. Code relying on the previous release will most likely break. Please check the documentation
to see how to use the new improved interface.

New Contributors

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.11.0...v0.12.0

Hydrosphere - Freshwater and Hydrology - Python
Published by huard almost 2 years ago

RavenPy - v0.11.0

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.10.0...v0.11.0

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre about 2 years ago

RavenPy - v0.10.0

What's Changed

Full Changelog: https://github.com/CSHS-CWRA/RavenPy/compare/v0.9.0...v0.10.0

Hydrosphere - Freshwater and Hydrology - Python
Published by huard over 2 years ago

RavenPy - v0.9.0

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

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 2 years ago

RavenPy - v0.8.1

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.

Hydrosphere - Freshwater and Hydrology - Python
Published by huard over 2 years ago

RavenPy - v0.8.0

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

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 2 years ago

RavenPy - v0.7.8

  • 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.

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 3 years ago

RavenPy - v0.7.7

  • Updated internal shapely calls to remove deprecated .to_wkt() methods.

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 3 years ago

RavenPy - v0.7.6

  • 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.

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 3 years ago

RavenPy - v0.7.5

  • Update test so that it works with xclim 0.29.

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 3 years ago

RavenPy - v0.7.4

  • Pinned climpred below v2.1.6

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 3 years ago

RavenPy - v0.7.3

  • Pinned xclim below v0.29.0

Hydrosphere - Freshwater and Hydrology - Python
Published by Zeitsperre over 3 years ago

RavenPy - v0.7.2

  • Update cruft
  • Subclass derived_parameters in Ostrich emulators to avoid having to pass params.

Hydrosphere - Freshwater and Hydrology - Python
Published by huard over 3 years ago

RavenPy - v0.7.0

  • Add support for V2.1 of the Routing Product in ravenpy.extractors.routing_product.
  • Add collect-subbasins-upstream-of-gauge CLI script.
  • Modify WFS request functions to use spatial filtering (Intersects) supplied by OWSLib.

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin almost 4 years ago

RavenPy - v0.6.0

  • Add support for EvaluationPeriod commands. Note that as a result of this, the model's diagnostics property contains one list per key, instead of a single scalar. Also note that for calibration, Ostrich will use the first period and the first evaluation metric.
  • Add SACSMA, CANADIANSHIELD and HYPR model emulators.

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin almost 4 years ago

RavenPy - v0.5.2

  • Simplify RVC configuration logic.
  • Add ravenpy.utilities.testdata.file_md5_checksum (previously in xarray.tutorial).

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin almost 4 years ago

RavenPy - v0.5.1

  • Some adjustments and bugfixes needed for RavenWPS
  • Refactoring of some internal logic in ravenpy.config.rvs.RVT
  • Improvements to typing with the help of mypy

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin almost 4 years ago

RavenPy - v0.5.0

  • Refactoring of the RV config subsystem
    • The config is fully encapsulated into its own class: ravenpy.config.rvs.Config
    • The emulator RV templates are inline in their emulator classes
  • The emulators have their own submodule: ravenpy.models.emulators
  • The "importers" have been renamed to "extractors" and they have their own submodule: ravenpy.extractors

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin almost 4 years ago

RavenPy - v0.4.2

  • Update to Raven revision 318 to fix OPENDAP access for StationForcing commands
  • Fix problems with defaults for grid_weights and nc_index
  • Pass nc_index to ObservationData command
  • Expose more cleanly RavenC errors and warnings
  • Add test with Canopex and fix related bugs
  • Remove nbstripout hook
  • Replace a broken notebook by one demoing how to access Canopex data.

Hydrosphere - Freshwater and Hydrology - Python
Published by huard about 4 years ago

RavenPy - v.0.4.1

  • Add notebook about hindcast verification skill.
  • Add notebook about routing capability.
  • Modify geoserver functions to have them return GeoJSON instead of GML.
  • Collect upstream watershed aggregation logic.
  • Fix RVC bug.

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin about 4 years ago

RavenPy - v0.4.0

This is an interim version making one step toward semi-distributed modeling support. Model configuration is still in flux and will be significantly modified with 0.5. The major change in this version is that model configuration supports passing multiple HRU objects, instead of simply passing area, latitude, longitude and elevation for a single HRU.

  • GR4JCN emulator now supports routing mode.
  • Add BLENDED model emulator.
  • DAP links for forcing files are now supported.
  • Added support for tox-based localized installation and testing with python-pip.
  • Now supporting Python 3.7, 3.8, and 3.9.
  • Build testing for pip and conda-based builds with GitHub CI.

Hydrosphere - Freshwater and Hydrology - Python
Published by huard about 4 years ago

RavenPy - v0.3.0

  • Migration and refactoring of GIS and IO utilities (utils.py, utilities/gis.py) from RavenWPS to RavenPy.
  • RavenPy can now be installed from PyPI without GIS dependencies (limited functionality).
  • Hydro routing product is now supported from geoserver.py (a notebook has been added to demonstrate the new functions).
  • New script ravenpy aggregate-forcings-to-hrus to aggregate NetCDF files and compute updated grid weights.
  • Add the basis for a new routing emulator option (WIP).
  • Add climpred verification capabilities.

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin about 4 years ago

RavenPy - v0.2.3

  • Regionalisation data is now part of the package.
  • Fix tests that were not using testdata properly.
  • Add tests for external dataset access.
  • utilities.testdata.get_local_testdata now raises an exception when it finds no dataset corresponding to the user pattern.

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin about 4 years ago

RavenPy - v0.2.2

  • Set wcs.getCoverage timeout to 120 seconds.
  • Fix Raven.parse_results logic when no flow observations are present and no diagnostic file is created.
  • Fix ECCC test where input was cached and shadowed forecast input data.

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin about 4 years ago

RavenPy - v0.2.1

  • Fix xarray caching bug in ravenpy.utilities.regionalization

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin about 4 years ago

RavenPy - v0.2.0

  • Refactoring of ravenpy.utilities.testdata functions
  • Bump xclim to 0.23

Hydrosphere - Freshwater and Hydrology - Python
Published by cjauvin about 4 years ago