hydromt_wflow.WflowModel.setup_reservoirs_no_control#

WflowModel.setup_reservoirs_no_control(reservoirs_fn: str | Path | GeoDataFrame, rating_curve_fns: List[str | Path | DataFrame] | None = None, overwrite_existing: bool = False, duplicate_id: str = 'error', min_area: float = 10.0, output_names: Dict = {'reservoir_area__count': 'reservoir_area_id', 'reservoir_location__count': 'reservoir_outlet_id', 'reservoir_surface__area': 'reservoir_area', 'reservoir_water__rating_curve_coefficient': 'reservoir_b', 'reservoir_water__rating_curve_exponent': 'reservoir_e', 'reservoir_water__rating_curve_type_count': 'reservoir_rating_curve', 'reservoir_water__storage_curve_type_count': 'reservoir_storage_curve', 'reservoir_water_flow_threshold-level__elevation': 'reservoir_outflow_threshold', 'reservoir_water_surface__initial_elevation': 'reservoir_initial_depth', 'reservoir~lower_location__count': 'reservoir_lower_id'}, geom_name: str = 'meta_reservoirs_no_control', **kwargs)[source]#

Generate maps of reservoir areas, outlets and parameters.

This function adds (uncontrolled) reservoirs such as natural lakes or weirs to the model. It prepares rating and storage curves parameters for the reservoirs modelled with the following rating curve types (see Wflow reservoir concepts ):

  • 1 for Q = f(H) from reservoir data and interpolation

  • 2 for Q = b(H - H0)^e (general power law)

  • 3 for Q = b(H - H0)^2 (Modified Puls Approach)

Created reservoirs can be added to already existing ones in the model overwrite_existing=False (default) or overwrite them overwrite_existing=True.

Reservoir data is generated from features with min_area [km2] (default 1 km2) from a database with reservoir geometry, IDs and metadata. Parameters can be directly provided in the GeoDataFrame or derived using common properties such as average depth, area and discharge.

If rating curve data is available for storage and discharge they can be prepared via rating_curve_fns (see below for syntax and requirements). Else the parameters ‘reservoir_b’ and ‘reservoir_e’ will be used for discharge, and a rectangular profile will be used to compute storage. This corresponds to the following storage curve types in Wflow:

  • 1 for S = A * H

  • 2 for S = f(H) from reservoir data and interpolation

Adds model layers:

  • reservoir_area_id map: reservoir IDs [-]

  • reservoir_outlet_id map: reservoir IDs at outlet locations [-]

  • reservoir_area map: reservoir area [m2]

  • reservoir_initial_depth map: reservoir average water level [m]

  • reservoir_outflow_threshold map: reservoir outflow threshold water level [m]

  • meta_reservoir_mean_outflow map: reservoir average discharge [m3/s]

  • reservoir_b map: reservoir rating curve coefficient [-]

  • reservoir_e map: reservoir rating curve exponent [-]

  • reservoir_rating_curve map: option to compute rating curve [-]

  • reservoir_storage_curve map: option to compute storage curve [-]

  • reservoir_lower_id map: optional, lower linked reservoir locations [-]

  • meta_reservoirs_no_control geom: polygon with reservoirs (e.g. lakes or weirs) and wflow parameters.

  • reservoirs geom: polygon with all reservoirs as in the model

Parameters:
  • reservoirs_fn (str, Path, gpd.GeoDataFrame) –

    Name of GeoDataFrame source for uncontrolled reservoir parameters.

    • Required variables for direct use: ‘waterbody_id’ [-], ‘Area_avg’ [m2], ‘Depth_avg’ [m], ‘Dis_avg’ [m3/s], ‘reservoir_b’ [-], ‘reservoir_e’ [-], ‘reservoir_rating_curve’ [-], ‘reservoir_storage_curve’ [-], ‘reservoir_outflow_threshold’ [m], ‘reservoir_lower_id’ [-]

    • Required variables for parameter estimation: ‘waterbody_id’ [-], ‘Area_avg’ [m2], ‘Vol_avg’ [m3], ‘Depth_avg’ [m], ‘Dis_avg’[m3/s]

  • rating_curve_fns (str, Path, pandas.DataFrame, List, optional) –

    Data catalog entry/entries, path(s) or pandas.DataFrame containing rating curve values for reservoirs. If None then will be derived from properties of reservoirs_fn. Assumes one file per reservoir (with all variables) and that the reservoir ID is either in the filename or data catalog entry name (eg using placeholder). The ID should be placed at the end separated by an underscore (eg ‘rating_curve_12.csv’ or ‘rating_curve_12’)

    • Required variables for storage curve: ‘elevtn’ [m+REF], ‘volume’ [m3]

    • Required variables for rating curve: ‘elevtn’ [m+REF], ‘discharge’ [m3/s]

  • overwrite_existing (bool, optional) – If False (default), update existing reservoirs in the model with the new reservoirs_fn data.

  • duplicate_id (str, optional {"error", "skip"}) – Action to take if duplicate reservoir IDs are found when merging with existing reservoirs. Options are “error” to raise an error (default); “skip” to skip adding new reservoirs.

  • min_area (float, optional) – Minimum reservoir area threshold [km2], by default 10.0 km2.

  • output_names (dict, optional) – Dictionary with output names that will be used in the model netcdf input files. Users should provide the Wflow.jl variable name followed by the name in the netcdf file.

  • geom_name (str, optional) – Name of the reservoir geometry in the staticgeoms folder, by default ‘meta_reservoirs_no_control’ for meta_reservoirs_no_control.geojson.

  • kwargs (optional) – Keyword arguments passed to the method hydromt.DataCatalog.get_rasterdataset()