Skip to main content

A Python wrapper to setup and run the hydrologic modelling framework Raven.

Project description

RavenPy

https://img.shields.io/pypi/v/ravenpy.svg https://anaconda.org/conda-forge/ravenpy/badges/installer/conda.svg Build status Documentation Status Coveralls

A Python wrapper to setup and run the hydrologic modelling framework Raven.

Features

  • Download and compile Raven with pip

  • Configure, run and parse Raven outputs from Python

  • Parallel simulations over parameters, models or watersheds

  • Utility command to create grid weight files

  • Extract physiographic information about watersheds

  • Algorithms to estimate model parameters from ungauged watersheds

  • Exposes outputs (flow, storage) as xarray.DataArray objects

Install

Please see the detailed installation docs.

Credits

RavenPy’s development has been funded by CANARIE.

This package was created with Cookiecutter and the Ouranosinc/cookiecutter-pypackage project template.

History

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

0.7.5

  • Update test so that it works with xclim 0.29.

0.7.4

  • Pinned climpred below v2.1.6.

0.7.3

  • Pinned xclim below v0.29.

0.7.2

  • Update cruft

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

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

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

0.5.2

  • Simplify RVC configuration logic.

  • Add ravenpy.utilities.testdata.file_md5_checksum (previously in xarray.tutorial).

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

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

0.4.2

  • Update to RavenC revision 318 to fix OPeNDAP access for StationForcing commands.

  • Fix grid_weights set to None by default.

  • Pass nc_index to ObservationData command.

  • Expose more cleanly RavenC errors and warnings.

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.

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

0.3.1

  • Update external dependencies (Raven, OSTRICH) to facilitate Conda packaging.

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

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

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

0.2.1

  • Fix xarray caching bug in regionalization.

0.2.0

  • Refactoring of ravenpy.utilities.testdata functions.

  • Bump xclim to 0.23.

0.1.7

  • Fix xarray caching bug affecting climatological ESP forecasts (#33).

  • Fix deprecation issue with Fiona.

0.1.6 (2021-01-15)

  • Correct installer bugs.

0.1.5 (2021-01-14)

  • Release with docs.

0.1.0 (2020-12-20)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ravenpy-0.7.6.tar.gz (6.3 MB view details)

Uploaded Source

Built Distribution

ravenpy-0.7.6-py3-none-any.whl (6.3 MB view details)

Uploaded Python 3

File details

Details for the file ravenpy-0.7.6.tar.gz.

File metadata

  • Download URL: ravenpy-0.7.6.tar.gz
  • Upload date:
  • Size: 6.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for ravenpy-0.7.6.tar.gz
Algorithm Hash digest
SHA256 3565a425fdae271ee539fb072f8085f8d75182e1b96fa12864afe18ac0ef9e61
MD5 7083815f3cde62b5d0e5600ee00387a3
BLAKE2b-256 4d8f7811b8c6e1e7dc0aebe84e7a2503ba3aaa34e126f84c68da6d2fb71fa9e9

See more details on using hashes here.

File details

Details for the file ravenpy-0.7.6-py3-none-any.whl.

File metadata

  • Download URL: ravenpy-0.7.6-py3-none-any.whl
  • Upload date:
  • Size: 6.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for ravenpy-0.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e107645fd7988096ae76521e4daf87e93a8d999bec4585d490d30f50d05ecc0b
MD5 ccb70710b2b10ff2151b78c9abf7142d
BLAKE2b-256 eba152e1f87db06e92a94e3c443428bfcf37398988e01967614948fff9133674

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page