예제 #1
0
class ParameterComplete(parametertools.ZipParameter):
    """Base class for 1-dimensional parameters relevant for all types
    of landuse.

    Class |ParameterComplete| of base model |lland| basically works
    like class |hland_parameters.ParameterComplete| of base model
    |hland|, but references |lland| specific parameters and constants,
    as shown in the following examples based on parameter |KG| (for
    explanations, see the documentation on class
    |hland_parameters.ParameterComplete|):

    >>> from hydpy.models.lland import *
    >>> parameterstep("1d")
    >>> nhru(5)
    >>> lnk(ACKER, VERS, GLETS, SEE, ACKER)
    >>> kg(acker=2.0, vers=1.0, glets=4.0, see=3.0)
    >>> kg
    kg(acker=2.0, glets=4.0, see=3.0, vers=1.0)
    >>> kg.values
    array([2., 1., 4., 3., 2.])
    >>> kg(5.0, 4.0, 3.0, 2.0, 1.0)
    >>> derived.absfhru(0.0, 0.1, 0.2, 0.3, 0.4)
    >>> from hydpy import round_
    >>> round_(kg.average_values())
    2.0
    """

    MODEL_CONSTANTS = lland_constants.CONSTANTS
    mask = lland_masks.Complete()

    @property
    def refweights(self):
        """Alias for the associated instance of |FHRU| for calculating
        areal mean values."""
        return self.subpars.pars.derived.absfhru
예제 #2
0
class Flux1DSequence(sequencetools.FluxSequence):
    """Base class for 1-dimensional flux subclasses that support
    aggregation with respect to |AbsFHRU|.

    All |Flux1DSequence| subclasses should stick to the mask |Complete|.

    The following example shows how subclass |NKor| works:

    >>> from hydpy.models.lland import *
    >>> parameterstep('1d')
    >>> nhru(4)
    >>> lnk(ACKER, GLETS, VERS, SEE)
    >>> derived.absfhru(10.0, 20.0, 30.0, 40.0)
    >>> fluxes.nkor(5.0, 2.0, 4.0, 1.0)
    >>> from hydpy import round_
    >>> round_(fluxes.nkor.average_values())
    2.5
    """
    mask = lland_masks.Complete()

    @property
    def refweights(self):
        """Alias for the associated instance of |AbsFHRU| for calculating
        areal values."""
        return self.subseqs.seqs.model.parameters.derived.absfhru
예제 #3
0
class DailyNetRadiation(lland_sequences.Flux1DSequence):
    """Daily net radiation [W/m²].

    With positive values, the soil gains heat from radiation.
    """

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #4
0
class DailyNetLongwaveRadiation(lland_sequences.Flux1DSequence):
    """Daily net longwave radiation [MJ/m²/d].

    With positive values, the soil looses heat from radiation.
    """

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #5
0
class NetShortwaveRadiation(lland_sequences.Flux1DSequence):
    """Netto kurzwellige Strahlungsbilanz (net shortwave radiation) [W/m²].

    With positive values, the soil gains heat from radiation.
    """

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #6
0
class QIB2(lland_sequences.Flux1DSequence):
    """Zweite Komponente der Interflow-Abgabe aus dem Bodenspeicher (second
    component of the interflow release from the soil storage) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #7
0
class QDB(lland_sequences.Flux1DSequence):
    """Direktabfluss-Abgabe aus dem Bodenspeicher (direct runoff release
    from the soil storage) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #8
0
class TKor(lland_sequences.Flux1DSequence):
    """Korrigierte Lufttemperatur (corrected air temperature) [°C]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #9
0
class NKor(lland_sequences.Flux1DSequence):
    """Korrigierter Niederschlag (corrected precipitation) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #10
0
class ActualAlbedo(lland_sequences.Flux1DSequence):
    """Aktuelle Albedo der relevanten Oberfläche (the current albedo of
    the relevant surface) [-]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #11
0
class EvI(lland_sequences.Flux1DSequence):
    """Tatsächliche Interzeptionsverdunstung (actual evaporation of
    intercepted water) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #12
0
class DailySaturationVapourPressureSlope(lland_sequences.Flux1DSequence):
    """Daily satuarion vapour pressure [hPa/K]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #13
0
class SaturationVapourPressure(lland_sequences.Flux1DSequence):
    """Saturation vapour pressure [hPa]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #14
0
class TKorTag(lland_sequences.Flux1DSequence):
    """Tageswert der korrigierten Lufttemperatur (corrected daily air
    temperature) [°C]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #15
0
class DensityAir(lland_sequences.Flux1DSequence):
    """Air density [kg/m³]"""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #16
0
class DryAirPressure(lland_sequences.Flux1DSequence):
    """Dry air pressure [hPa]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #17
0
class DailyActualVapourPressure(lland_sequences.Flux1DSequence):
    """Daily actual vapour pressure [hPa]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #18
0
class QBB(lland_sequences.Flux1DSequence):
    """Basisabfluss-Abgabe aus dem Bodenspeicher (base flow release
    from the soil storage) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #19
0
class EvPo(lland_sequences.Flux1DSequence):
    """Evapotranspiration (evapotranspiration) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #20
0
class QKap(lland_sequences.Flux1DSequence):
    """Kapillarer Aufstieg in den Bodenspeicher (capillary rise to soil
    storage) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #21
0
class SaturationVapourPressureSlope(lland_sequences.Flux1DSequence):
    """The slope of the saturation vapour pressure curve [hPa/K]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #22
0
class ReducedWindSpeed2m(lland_sequences.Flux1DSequence):
    """Land-use-specific wind speed at a height of 2 m above the ground [m/s]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()
예제 #23
0
class ET0(lland_sequences.Flux1DSequence):
    """Grasreferenzverdunstung (reference evapotranspiration) [mm/T]."""

    NDIM, NUMERIC = 1, False
    mask = lland_masks.Complete()