HydPy-WQ-Trapeze-Strickler (multi-trapeze river profile submodel including Strickler-based calculations)¶
wq_trapeze_strickler is a stateless submodel that requires information on the current
water level or depth from its main model (usually a routing model).  It returns the
corresponding discharge and related properties, such as the kinematic wave celerity.
See the documentation on the application model musk_mct, which shows how to use
wq_trapeze_strickler in practice.  Also, please see the documentation on the related
application model wq_trapeze, which also relies on stacket and symmetric trapezes but
does not include discharge calculations.
wq_trapeze and wq_trapeze_strickler offer the same plotting functionalities.  To
avoid redundancies, we give a single example for wq_trapeze_strickler and refer you
to the documentation on wq_trapeze for further details:
>>> from hydpy.core.testtools import save_autofig
>>> from hydpy.models.wq_trapeze_strickler import *
>>> parameterstep()
>>> nmbtrapezes(3)
>>> bottomlevels(1.0, 3.0, 4.0)
>>> bottomwidths(2.0, 0.0, 2.0)
>>> sideslopes(0.0, 2.0, 2.0)
>>> derived.trapezeheights.update()
>>> derived.slopewidths.update()
>>> figure = model.plot()
>>> save_autofig(f"wq_trapeze_strickler_three_trapezes.png", figure=figure)
- class hydpy.models.wq_trapeze_strickler.Model[source]¶
 Bases:
TrapezeModel,CrossSectionModel_V1HydPy-WQ-Trapeze-Strickler (multi-trapeze river profile submodel including Strickler-based calculations).
- The following interface methods are available to main models using the defined model as a submodel:
 Use_WaterDepth_V1Set the water depth in m and use it to calculate all other properties.Use_WaterLevel_V1Set the water level in m and use it to calculate all other properties.Get_WettedArea_V1Get the wetted area in m².Get_SurfaceWidth_V1Get the surface width in m.Get_Discharge_V1Get the discharge in m³/s.Get_Celerity_V1Get the wave celerity in m/s.
- The following “additional methods” might be called by one or more of the other methods or are meant to be directly called by the user:
 Set_WaterDepth_V1Set the water depth in m.Set_WaterLevel_V1Set the water level in m.Calc_WaterDepth_V1Calculate the water depth based on the current water level.Calc_WaterLevel_V1Calculate the water level based on the current water depth.Calc_WettedAreas_V1Calculate the wetted area for each trapeze range.Calc_WettedArea_V1Sum up the individual trapeze ranges’ wetted areas.Calc_WettedPerimeters_V1Calculate the wetted perimeter for each trapeze range.Calc_WettedPerimeterDerivatives_V1Calculate the change in the wetted perimeter of each trapeze range with respect to the water level increase.Calc_SurfaceWidths_V1Calculate the surface width for each trapeze range.Calc_SurfaceWidth_V1Sum the individual trapeze ranges’ surface widths.Calc_Discharges_V1Calculate the discharge for each trapeze range.Calc_Discharge_V2Sum the individual trapeze ranges’ discharges.Calc_DischargeDerivatives_V1Calculate the discharge change for each trapeze range with respect to a water level increase.Calc_DischargeDerivative_V1Sum the individual trapeze ranges’ discharge derivatives.Calc_Celerity_V1Calculate the kinematic wave celerity.
- DOCNAME: DocName = ('WQ-Trapeze-Strickler', 'multi-trapeze river profile submodel including Strickler-based calculations')¶
 
- prepare_bottomslope¶
 Set the bottom’s slope (in the longitudinal direction) [-].
>>> from hydpy.models.wq_trapeze_strickler import * >>> parameterstep() >>> model.prepare_bottomslope(0.01) >>> bottomslope bottomslope(0.01)
- REUSABLE_METHODS: ClassVar[tuple[type[ReusableMethod], ...]] = ()¶
 
- cymodel: CyModelProtocol | None¶
 
- parameters: parametertools.Parameters¶
 
- sequences: sequencetools.Sequences¶
 
- masks: masktools.Masks¶
 
- class hydpy.models.wq_trapeze_strickler.ControlParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
 Bases:
SubParametersControl parameters of model wq_trapeze_strickler.
- The following classes are selected:
 NmbTrapezes()Number of trapezes defining the cross section [-].BottomLevels()The bottom level for each trapeze [m].BottomWidths()The bottom width for each trapeze [m].SideSlopes()The side slope for each trapeze[-].StricklerCoefficients()Manning-Strickler coefficient for each trapeze or sector [m^(1/3)/s].CalibrationFactors()Calibration factor for each trapeze or sector [-].BottomSlope()Bottom slope [-].
- class hydpy.models.wq_trapeze_strickler.DerivedParameters(master: Parameters, cls_fastaccess: type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)¶
 Bases:
SubParametersDerived parameters of model wq_trapeze_strickler.
- The following classes are selected:
 BottomDepths()The cumulated depth of a trapeze and its lower neighbours [m].TrapezeHeights()The individual height of each trapeze [m].SlopeWidths()The total width of both side slopes of each trapeze.PerimeterDerivatives()Change of the perimeter of each trapeze relative to a water level increase within the trapeze’s range [-].
- class hydpy.models.wq_trapeze_strickler.FactorSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
 Bases:
FactorSequencesFactor sequences of model wq_trapeze_strickler.
- The following classes are selected:
 WaterDepth()Water depth [m].WaterLevel()Water level [m].WettedAreas()Wetted area of each trapeze range [m²].WettedArea()Total wetted area [m²].WettedPerimeters()Wetted perimeter of each trapeze range [m].WettedPerimeterDerivatives()Change in the wetted perimeter of each trapeze range with respect to a water level increase [-].SurfaceWidths()Surface width of each trapeze range [m].SurfaceWidth()Total surface width [m].DischargeDerivatives()Discharge change of each trapeze range with respect to a water level increase [m²/s].DischargeDerivative()Total discharge change with respect to a water level increase [m²/s].Celerity()Kinematic celerity (wave speed) [m/s].
- class hydpy.models.wq_trapeze_strickler.FluxSequences(master: Sequences, cls_fastaccess: type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)¶
 Bases:
FluxSequencesFlux sequences of model wq_trapeze_strickler.
- The following classes are selected:
 Discharges()The discharge of each trapeze range [m³/s].Discharge()Total discharge [m³/s].