Source code for hydpy.models.whmod.whmod_states

# pylint: disable=missing-module-docstring

from hydpy.core import sequencetools

from hydpy.models.whmod import whmod_sequences
from hydpy.models.whmod import whmod_derived


[docs] class InterceptedWater(whmod_sequences.State1DNonWaterSequence): """Interception storage water content [mm].""" SPAN = (0.0, None)
[docs] class Snowpack(whmod_sequences.State1DNonWaterSequence): """Snow layer's total water content [mm].""" SPAN = (0.0, None)
[docs] class SoilMoisture(whmod_sequences.State1DSoilSequence): """Crop-available soil water content [mm].""" SPAN = (0.0, None) DERIVEDPARAMETERS = (whmod_derived.MaxSoilWater,)
[docs] def trim(self, lower=None, upper=None) -> bool: r"""Trim |SoilMoisture| following :math:`0 \leq SoilMoisture \leq MaxSoilWater`. >>> from hydpy.models.whmod import * >>> parameterstep() >>> nmbzones(5) >>> derived.maxsoilwater(200.0) >>> states.soilmoisture(-100.0, 0.0, 100.0, 200.0, 300.0) >>> states.soilmoisture soilmoisture(0.0, 0.0, 100.0, 200.0, 200.0) """ if upper is None: upper = self.subseqs.seqs.model.parameters.derived.maxsoilwater return super().trim(lower, upper)
[docs] class CisternWater(sequencetools.StateSequence): """Amount of water that is collected in the cistern [m³].""" NDIM, NUMERIC, SPAN = 0, False, (0.0, None)
[docs] def trim(self, lower=None, upper=None) -> bool: r"""Trim |CisternWater| following :math:`0 \leq CisternWater \leq CisternCapacity`. >>> from hydpy.models.whmod import * >>> parameterstep() >>> control.cisterncapacity(5.0) >>> states.cisternwater(3.0) >>> states.cisternwater cisternwater(3.0) >>> states.cisternwater(5.0) >>> states.cisternwater cisternwater(5.0) >>> states.cisternwater(7.0) >>> states.cisternwater cisternwater(5.0) """ if upper is None: upper = self.subseqs.seqs.model.parameters.control.cisterncapacity.value return super().trim(lower, upper)
[docs] class DeepWater(sequencetools.StateSequence): """Amount of water that is (still) percolating through the vadose zone [mm].""" NDIM, NUMERIC, SPAN = 0, False, (None, None)