hydromt_wflow.WflowModel.setup_rivers#

WflowModel.setup_rivers(hydrography_fn: str | Dataset, river_geom_fn: str | GeoDataFrame | None = None, river_upa: float = 30, rivdph_method: str = 'powlaw', slope_len: float = 2000.0, min_rivlen_ratio: float = 0.0, min_rivdph: float = 1, min_rivwth: float = 30, smooth_len: float = 5000.0, rivman_mapping_fn: str | Path | DataFrame = 'roughness_river_mapping_default', elevtn_map: str = 'land_elevation', river_routing: str = 'kinematic-wave', connectivity: int = 8, strord_name: str = 'meta_streamorder', output_names: Dict = {'river__length': 'river_length', 'river__slope': 'river_slope', 'river__width': 'river_width', 'river_bank_water__depth': 'river_depth', 'river_bank_water__elevation': 'river_bank_elevation', 'river_location__mask': 'river_mask', 'river_water_flow__manning_n_parameter': 'river_manning_n'})[source]#

Set all river parameter maps.

The river mask is defined by all cells with a minimum upstream area threshold river_upa [km2].

The river length is defined as the distance from the subgrid outlet pixel to the next upstream subgrid outlet pixel. The min_rivlen_ratio is the minimum global river length to avg. cell resolution ratio and is used as a threshold in window based smoothing of river length.

The river slope is derived from the subgrid elevation difference between pixels at a half distance slope_len [m] up- and downstream from the subgrid outlet pixel.

The river manning roughness coefficient is derived based on reclassification of the streamorder map using a lookup table rivman_mapping_fn.

The river width is derived from the nearest river segment in river_geom_fn. Data gaps are filled by the nearest valid upstream value and averaged along the flow directions over a length smooth_len [m]

The river depth can be directly derived from river_geom_fn property or calculated using the rivdph_method, by default powlaw: h = hc*Qbf**hp, which is based on qbankfull discharge from the nearest river segment in river_geom_fn and takes optional arguments for the hc (default = 0.27) and hp (default = 0.30) parameters. For other methods see hydromt.workflows.river_depth().

If river_routing is set to “local-inertial”, the bankfull elevation map can be conditioned based on the average cell elevation (“land_elevation”) or subgrid outlet pixel elevation (“meta_subgrid_elevation”). The subgrid elevation might provide a better representation of the river elevation profile, however in combination with local-inertial land routing (see setup_floodplains()) the subgrid elevation will likely overestimate the floodplain storage capacity. Note that the same input elevation map should be used for river bankfull elevation and land elevation when using local-inertial land routing.

Adds model layers:

  • wflow_river map: river mask [-]

  • river_length map: river length [m]

  • river_width map: river width [m]

  • river_depth map: bankfull river depth [m]

  • river_slope map: river slope [m/m]

  • river_manning_n map: Manning coefficient for river cells [s.m^1/3]

  • rivers geom: river vector based on wflow_river mask

  • river_bank_elevation map: hydrologically conditioned elevation [m+REF]

Parameters:
  • hydrography_fn (str, Path, xarray.Dataset) –

    Name of RasterDataset source for hydrography data. Must be same as setup_basemaps for consistent results.

    • Required variables: ‘flwdir’ [LLD or D8 or NEXTXY], ‘uparea’ [km2], ‘elevtn’[m+REF]

    • Optional variables: ‘rivwth’ [m], ‘qbankfull’ [m3/s]

  • river_geom_fn (str, Path, geopandas.GeoDataFrame, optional) –

    Name of GeoDataFrame source for river data.

    • Required variables: ‘rivwth’ [m], ‘rivdph’ [m] or ‘qbankfull’ [m3/s]

  • river_upa (float, optional) – Minimum upstream area threshold for the river map [km2]. By default 30.0

  • slope_len (float, optional) – Length over which the river slope is calculated [km]. By default 2.0

  • min_rivlen_ratio (float, optional) – Ratio of cell resolution used minimum length threshold in a moving window based smoothing of river length, by default 0.0 The river length smoothing is skipped if min_riverlen_ratio = 0. For details about the river length smoothing, see pyflwdir.FlwdirRaster.smooth_rivlen()

  • rivdph_method ({'gvf', 'manning', 'powlaw'}) – see hydromt.workflows.river_depth() for details, by default “powlaw”

  • river_routing ({'kinematic-wave', 'local-inertial'}) – Routing methodology to be used, by default “kinematic-wave”.

  • smooth_len (float, optional) – Length [m] over which to smooth the output river width and depth, by default 5e3

  • min_rivdph (float, optional) – Minimum river depth [m], by default 1.0

  • min_rivwth (float, optional) – Minimum river width [m], by default 30.0

  • elevtn_map (str, optional) – Name of the elevation map in the current WflowModel.grid. By default “land_elevation”

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

See also

workflows.river_bathymetry, hydromt.workflows.river_depth, pyflwdir.FlwdirRaster.river_depth, setup_floodplains