class SM(hland_sequences.State1DSequence): """Soil moisture [mm]. Note that PREVAH uses the abbreviation `SSM`, and COSERO uses the abbreviation `BW0ZON` instead of the HBV96 abbreviation `SM`. """ SPAN = (0.0, None) mask = hland_masks.Soil() CONTROLPARAMETERS = (hland_control.FC, ) def trim(self, lower=None, upper=None): r"""Trim |SM| following :math:`0 \leq SM \leq FC`. >>> from hydpy.models.hland import * >>> parameterstep("1d") >>> nmbzones(5) >>> fc(200.0) >>> states.sm(-100.0, 0.0, 100.0, 200.0, 300.0) >>> states.sm sm(0.0, 0.0, 100.0, 200.0, 200.0) """ if upper is None: upper = self.subseqs.seqs.model.parameters.control.fc super().trim(lower, upper)
class R(hland_sequences.Flux1DSequence): """Effective soil response [mm/T]. Note that PREVAH uses the abbreviation `DSUZ` instead of the HBV96 abbreviation `R`. """ mask = hland_masks.Soil()
class SM(hland_sequences.State1DSequence): """Soil moisture [mm].""" NDIM, NUMERIC, SPAN = 1, False, (0., None) mask = hland_masks.Soil() def trim(self, lower=None, upper=None): """Trim values in accordance with :math:`SM \\leq FC`. >>> from hydpy.models.hland import * >>> parameterstep('1d') >>> nmbzones(5) >>> fc(200.0) >>> states.sm(-100.0, 0.0, 100.0, 200.0, 300.0) >>> states.sm sm(0.0, 0.0, 100.0, 200.0, 200.0) """ if upper is None: upper = self.subseqs.seqs.model.parameters.control.fc hland_sequences.State1DSequence.trim(self, lower, upper)
class Ic(hland_sequences.State1DSequence): """Interception storage [mm].""" NDIM, NUMERIC, SPAN = 1, False, (0., None) mask = hland_masks.Soil() def trim(self, lower=None, upper=None): """Trim upper values in accordance with :math:`IC \\leq ICMAX`. >>> from hydpy.models.hland import * >>> parameterstep('1d') >>> nmbzones(5) >>> icmax(2.0) >>> states.ic(-1.0, 0.0, 1.0, 2.0, 3.0) >>> states.ic ic(0.0, 0.0, 1.0, 2.0, 2.0) """ if upper is None: control = self.subseqs.seqs.model.parameters.control upper = control.icmax hland_sequences.State1DSequence.trim(self, lower, upper)
class ParameterSoil(ParameterComplete): """Base class for 1-dimensional parameters relevant for |FIELD| and |FOREST| zones. |ParameterSoil| works similar to |ParameterComplete|. Some examples based on parameter |IcMax|: >>> from hydpy.models.hland import * >>> parameterstep('1d') >>> nmbzones(5) >>> zonetype(FIELD, FOREST, GLACIER, ILAKE, FIELD) >>> icmax(field=2.0, forest=1.0, glacier=4.0, ilake=3.0) >>> icmax icmax(field=2.0, forest=1.0) >>> icmax(field=2.0, default=9.0) >>> icmax icmax(field=2.0, forest=9.0) >>> zonearea(0.0, 1.0, nan, nan, 3.0) >>> from hydpy import round_ >>> round_(icmax.average_values()) 3.75 """ mask = hland_masks.Soil()
class CF(hland_sequences.Flux1DSequence): """Actual capillary flow [mm/T].""" mask = hland_masks.Soil()
class CFPot(hland_sequences.Flux1DSequence): """Potential capillary flow [mm/T].""" mask = hland_masks.Soil()
class EA(hland_sequences.Flux1DSequence): """Actual soil evaporation [mm/T].""" mask = hland_masks.Soil()