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

Recent Releases of eWaterCycle

eWaterCycle - 2.4.0

The eWaterCycle package makes it easier to use hydrological models without having intimate knowledge about how to install and run the models.

Changes in 2.4.0

Added

  • support for Remote BMI, an OpenAPI based alternative for grpc4bmi (#467).
  • .get_shape_area() utility method to the ewatercycle Forcing objects. This returns the area of the shapefile in square meters, useful for converting the results of lumped models (e.g., from mm/day to m3/s) (#464).
  • .plot_shape() utility method to the ewatercycle Forcing objects. This allows plotting the shapefile in a single-line of code, or adds the shapefile to an existing plot (#464).
  • ewatercycle.util.get_package_versions() to aid in reproducibility. The function can be used in, e.g., notebooks to show what ewatercycle + plugins is installed (#466).

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

eWaterCycle - 2.3.1

The eWaterCycle package makes it easier to use hydrological models without having intimate knowledge about how to install and run the models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Fixed

  • all required shapefile files (.shp, .shx, .dbf, .prj) are now copied to the new directory when saving a forcing object (#430).

Hydrosphere - Freshwater and Hydrology - Python
Published by BSchilperoort 7 months ago

eWaterCycle - 2.3.0

The eWaterCycle package makes it easier to use hydrological models without having intimate knowledge about how to install and run the models.

Uses container for running models in an isolated and portable way with grpc4bmi
Generates rain and sunshine required for the model using ESMValTool
Supports observation data from GRDC or USGS
Exposes simple interface to quickly get up and running

Changed

  • Use conda-lock to install reproducible conda dependencies. Instead of loosely pinned environment.yml (#357)
  • ESMValTool is no longer a Python dependency, but a conda dependency (#442)

Hydrosphere - Freshwater and Hydrology - Python
Published by sverhoeven 8 months ago

eWaterCycle - 2.2.0

The eWaterCycle package makes it easier to use hydrological models without having intimate knowledge about how to install and run the models.

Uses container for running models in an isolated and portable way with grpc4bmi
Generates rain and sunshine required for the model using ESMValTool
Supports observation data from GRDC or USGS
Exposes simple interface to quickly get up and running

Added

  • ewatercycle.esmvaltool.search.search_esgf can now be used to find climate model ensembles on ESGF that have the required input variables for generating forcing data (#422).
  • ewatercycle.observation.caravan.get_caravan_data() (#432)

Fixed

  • get_usgs_data() throws error (#414)
  • get_usgs_data() and get_grdc_data() both return xarray.Dataset (#253)

Removed

  • Caching mechanism from get_usgs_data() (#240)

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

eWaterCycle - 2.1.1

The eWaterCycle package makes it easier to use hydrological models without having intimate knowledge about how to install and run the models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • input_var_names property to the eWaterCycle model class, to accompany the existing output_var_names property (#403).
  • var_units method to the eWaterCycle model class, to mirror PyMT (#403).
  • A note on the time units that eWaterCycle expects models to provide to the documentation (#403).
  • CaravanForcing, which allows for the retrieval of single basins from the Caravan dataset, rather than downloading the whole dataset (#407).

Changed

  • If a model plugin raises an exception during the loading of the model entry points, a more clear exception is raised which guides the users on how to solve the error (#404).
  • Updated the model documentation to link to the eWaterCycleModel API docs, and to make it a bit more clear that it is build on top of BMI (#403).
  • Dask has been explicitly added to the ewatercycle package dependencies. The package already depended on it through ESMValTool (#410).

Fixed

  • An issue related to the .to_xarray() method of the generic forcing classes. This method should now be more robust (#410).
  • An issue related to saving netCDF files generated by caravan forcing. Only copies relevant attributes to the seperate files generated. (#416)

Hydrosphere - Freshwater and Hydrology - Python
Published by BSchilperoort 11 months ago

eWaterCycle - 2.1.0

This release comes with some changes to the (generic) generation of forcing data. It is now easier to define your own forcing generator. MakkinkForcings (distributed & lumped) have been added which allow for forcing generation with potential evaporation (from both ERA5 and CMIP datasets).

Added

  • Added new forcing classes (#393):
    • LumpedUserForcing, DistributedUserForcing - have the variable names as an argument, as well as an optional post-processor that can derive addition variables from the downloaded data.
    • LumpedMakkinkForcing, DistributedMakkinkForcing - based on the UserForcing: selects the required variables and computes the Makkink potential evaporation.
  • The available models are now stored in ewatercycle.models.sources, just like the different forcing sources (#393).

Changed

  • Internal changes to DefaultForcing: variables are no longer attributes of the class, but are stored under a "filenames" (dict) attribute (#393).
  • Updated the documentation to reflect the changes in the forcing generation (#393).
  • Shapefiles used for generating forcing are now always copied to the output folder, to allow determination of the area to convert mm water depth to m^3 of discharge. (#393).

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

eWaterCycle - 2.0.0

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way
    with grpc4bmi
  • Generates rain and sunshine required for the model using
    ESMValTool
  • Supports observation data from GRDC or
    USGS
  • Exposes simple
    interface

    to quickly get up and running

Breaking changes

The eWatercycle package no longer contains models and their forcing and/or example parameter sets. Instead, models are now plugins that can be installed separately. See https://ewatercycle.readthedocs.io/en/latest/plugins.html for a list of endorsed plugins.

Added

  • Apptainer support (#290)
  • Forcing ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365]):
    • GenericDistributedForcing class
    • GenericLumpedForcing class
    • Generate from not just ERA5 or ERA-Interim dataset, but any ESMvalTool supported dataset
  • Testing helpers for plugins ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365])

Changed

  • Upgraded BMI version from 0.2 to 2.0 (#339)
    • Model container images using BMI v0.2 are supported see grpc4bmi docs.
  • ewatercycle config, forcings and parameter sets now use Pydantic for validation instead of Matplotlib inspired validation. (#332, #334, #346)
  • Functions of a model inside a container that return the same result each call are cached with MemoizedBmi (#339)
  • Moved CaseConfig to src/utils.py
  • forcing.load_foreign has been superceded by using sources.model(...)
  • Forcing ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365]):
    • Instead of modifying an existing recipe now builds a ESMValTool recipe from scratch using a fluent interface
    • DefaultForcing has overridable class methods for each step of the forcing generation process (build_recipe, run_recipe, recipe_output_to_forcing_arguments).
  • eWaterCycleModel.parameters property type is ItemsView instead of dict.
  • Rewrote adding models documentation to use the new plugin system (#383

Deprecated

  • Singularity support (#290)

Removed

  • Models live in their own repository as a eWatercycle plugin. (#371)
  • Removed parametersetdb module. XmlConfig moved to lisflood plugin. YamlConfig & IniConfig have been removed.

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

eWaterCycle - 2.0.0b2

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Breaking changes

The eWatercycle package no longer contains models and their forcing and/or example parameter sets. Instead, models are now plugins that can be installed separately. See https://ewatercycle.readthedocs.io/en/latest/plugins.html for a list of endorsed plugins.

Added

  • Apptainer support (#290)
  • Forcing ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365]):
    • GenericDistributedForcing class
    • GenericLumpedForcing class
    • Generate from not just ERA5 or ERA-Interim dataset, but any ESMvalTool supported dataset
  • Testing helpers for plugins ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365])

Changed

  • Upgraded BMI version from 0.2 to 2.0 (#339)
    • Model container images using BMI v0.2 are supported see grpc4bmi docs.
  • ewatercycle config, forcings and parameter sets now use Pydantic for validation instead of Matplotlib inspired validation. (#332, #334, #346)
  • Functions of a model inside a container that return the same result each call are cached with MemoizedBmi (#339)
  • Moved CaseConfig to src/utils.py
  • forcing.load_foreign has been superceded by using sources.model(...)
  • Forcing ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365]):
    • Instead of modifying an existing recipe now builds a ESMValTool recipe from scratch using a fluent interface
    • DefaultForcing has overridable class methods for each step of the forcing generation process (build_recipe, run_recipe, recipe_output_to_forcing_arguments).
  • eWaterCycleModel.parameters property type is ItemsView instead of dict.

Deprecated

  • Singularity support (#290)

Removed

  • Models live in their own repository as a eWatercycle plugin. (#371)
  • Removed parametersetdb module. XmlConfig moved to lisflood plugin. YamlConfig & IniConfig have been removed.

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

eWaterCycle - 2.0.0b1

Oops forgot to select branch for release. Do not use this release!

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Breaking changes

The eWatercycle package no longer contains models and their forcing and/or example parameter sets. Instead, models are now plugins that can be installed separately. See https://ewatercycle.readthedocs.io/en/latest/plugins.html for a list of endorsed plugins.

Added

  • Apptainer support (#290)
  • Forcing ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365]):
    • GenericDistributedForcing class
    • GenericLumpedForcing class
    • Generate from not just ERA5 or ERA-Interim dataset, but any ESMvalTool supported dataset
  • Testing helpers for plugins ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365])

Changed

  • Upgraded BMI version from 0.2 to 2.0 (#339)
    • Model container images using BMI v0.2 are supported see grpc4bmi docs.
  • ewatercycle config, forcings and parameter sets now use Pydantic for validation instead of Matplotlib inspired validation. (#332, #334, #346)
  • Functions of a model inside a container that return the same result each call are cached with MemoizedBmi (#339)
  • Moved CaseConfig to src/utils.py
  • forcing.load_foreign has been superceded by using sources.model(...)
  • Forcing ((#365)[https://github.com/eWaterCycle/ewatercycle/pull/365]):
    • Instead of modifying an existing recipe now builds a ESMValTool recipe from scratch using a fluent interface
    • DefaultForcing has overridable class methods for each step of the forcing generation process (build_recipe, run_recipe, recipe_output_to_forcing_arguments).
  • eWaterCycleModel.parameters property type is ItemsView instead of dict.

Deprecated

  • Singularity support (#290)

Removed

  • Models live in their own repository as a eWatercycle plugin. (#371)
  • Removed parametersetdb module. XmlConfig moved to lisflood plugin. YamlConfig & IniConfig have been removed.

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

eWaterCycle - 1.4.1

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Fixed

  • PEP 484 prohibits implicit Optional (#325)
  • Update of ESMValCore breaks recipes tests (#325)
  • Pre-commit hook for flake8 from GitHub instead of GitLab (#325)
  • Update of ESMValCore breaks Marrmot forcing generation (#322)
  • Forcing generation for Wflow has been fixed (#321)

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

eWaterCycle - 1.4.0

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • delay argument to `ewatercycle.models.Marrmot*.setup()_ (#303)
  • Hype forcing generation and model #308

Removed

  • Python 3.7 support

Hydrosphere - Freshwater and Hydrology - Python
Published by sverhoeven almost 3 years ago

eWaterCycle - 1.3.0

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • Directory argument to ewatercycle.forcing.generate() (#145)

Changed

  • Improved performance of forcing generation of LISFLOOD model (#301)

Hydrosphere - Freshwater and Hydrology - Python
Published by sverhoeven about 3 years ago

eWaterCycle - 1.2.0

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • Evaporation Pre-Processor for the LISFLOOD (Lisvap) to forcing (#282)
  • Set number of bars in hydrograph (#298)

Hydrosphere - Freshwater and Hydrology - Python
Published by sverhoeven about 3 years ago

eWaterCycle - 1.1.4

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • 2020.1.3 version of wflow model (#270)

Changed

  • Replace Cartesius section in system setup docs with Snellius (#273)

Fixed

  • Test suite fails with fresh conda env (#275)
  • incompatible numpy typings (#285)

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

eWaterCycle - 1.1.3

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • 2020.1.2 version of wflow model (#268)
  • Document how to add a new version of a model (#266)

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

eWaterCycle - 1.1.2

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • Type information according to PEP-0561
  • Pre-commit hooks and black formatting (#111)

Changed

  • Timeout for model setup set to 5 minutes (#244)
  • Use mamba for installation instructions (#136)
  • Use version 1.2.0 of CITATION.cff format
  • Moved package to src/ (#228)

Fixed

  • Name particle in CITATION.cff (#204)
  • Build Sphinx locally with config file (#169)
  • Type errors in notebooks (#262)
  • Lisflood.finalize() (#257)

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

eWaterCycle - 1.1.1

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Fixed

  • Zenodo DOI

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

eWaterCycle - 1.1.0

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • Column name argument to get_grdc_data() (#190)
  • Copy to clipboard button to documentation (#216)

Changed

  • Compatible with ESMValTool 2.3 . Older versions (<2.3) of ESMValTool are no longer supported. (#219)
  • README, CONTRIBUTING, CHANGELOG reformated from RestructedText to Markdown (#199)

Fixed

  • ParameterSet can be outside CFG['parametersets_dir'] (#217)
  • Link to nbviewer (#202)
  • Pinned esmpy as temporary workaround for single CPU affinity (#234)

Removed

  • Unused esmvaltool_config field in CFG (#152)

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

eWaterCycle - 1.0.0

The eWaterCycle package makes it easier to use hydrological models
without having intimate knowledge about how to install and run the
models.

  • Uses container for running models in an isolated and portable way with grpc4bmi
  • Generates rain and sunshine required for the model using ESMValTool
  • Supports observation data from GRDC or USGS
  • Exposes simple interface to quickly get up and running

Added

  • Documentation
    • Example notebooks
    • Setup guide (#120)
    • HPC cluster guide
  • Forcing generation using ESMValTool (#28, #87)
  • Available parameter sets (#118)
  • PyMT inspired interface for following models
    • LISFLOOD
    • MARRMoT M01 and M14
    • PCR-GLOBWB
    • wflow
  • Model methods to get and set values based on spatial coordinates (#53, #140)
  • Model method to get value as a xarray dataset (#36)
  • Containerized models using grpc4bmi
  • Configuration files for system setup
  • Hydrograph plotting (#54)
  • Typings
  • iso8601 time format (#90)

Changed

  • GRDC returns Pandas dataframe and metadata dict instead of xarray dataset (#109)

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