evap

The HydPy-Evap model family supplies methods for calculating potential evapotranspiration.

Method Features

class hydpy.models.evap.evap_model.Model[source]

Bases: AdHocModel

The Evap base model.

The following “run methods” are called in the given sequence during each simulation step:
class hydpy.models.evap.evap_model.Calc_AdjustedWindSpeed_V1[source]

Bases: Method

Adjust the measured wind speed to a height of two meters above the ground according to Allen et al. (1998).

Requires the control parameter:

MeasuringHeightWindSpeed

Requires the input sequence:

WindSpeed

Calculates the factor sequence:

AdjustedWindSpeed

Basic equation (Allen et al. (1998), equation 47, modified for higher precision):

\[AdjustedWindSpeed = WindSpeed \cdot \frac{ln((2-d)/z_0)}{ln((MeasuringHeightWindSpeed-d)/z_0)}`\]

\(d = 2 / 3 \cdot 0.12\)

\(z_0 = 0.123 \cdot 0.12\)

Example:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> measuringheightwindspeed(10.0)
>>> inputs.windspeed = 5.0
>>> model.calc_adjustedwindspeed_v1()
>>> factors.adjustedwindspeed
adjustedwindspeed(3.738763)
class hydpy.models.evap.evap_model.Calc_SaturationVapourPressure_V1[source]

Bases: Method

Calculate the saturation vapour pressure according to Allen et al. (1998).

Requires the input sequence:

AirTemperature

Calculates the factor sequence:

SaturationVapourPressure

Basic equation (Allen et al. (1998), equation 11):

\(SaturationVapourPressure = 6.108 \cdot \exp \left( \frac{17.27 \cdot AirTemperature}{AirTemperature + 237.3} \right)\)

Example:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> inputs.airtemperature = 10.0
>>> model.calc_saturationvapourpressure_v1()
>>> factors.saturationvapourpressure
saturationvapourpressure(12.279626)
class hydpy.models.evap.evap_model.Calc_SaturationVapourPressureSlope_V1[source]

Bases: Method

Calculate the slope of the saturation vapour pressure curve according to Allen et al. (1998).

Requires the input sequence:

AirTemperature

Requires the factor sequence:

SaturationVapourPressure

Calculates the factor sequence:

SaturationVapourPressureSlope

Basic equation (Allen et al. (1998), equation 13):

\(SaturationVapourPressureSlope = 4098 \cdot \frac{SaturationVapourPressure}{(AirTemperature + 237.3)^2}\)

Example:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> inputs.airtemperature = 10.0
>>> factors.saturationvapourpressure = 12.279626
>>> model.calc_saturationvapourpressureslope_v1()
>>> factors.saturationvapourpressureslope
saturationvapourpressureslope(0.822828)
class hydpy.models.evap.evap_model.Calc_ActualVapourPressure_V1[source]

Bases: Method

Calculate the actual vapour pressure according to Allen et al. (1998).

Requires the input sequence:

RelativeHumidity

Requires the factor sequence:

SaturationVapourPressure

Calculates the factor sequence:

ActualVapourPressure

Basic equation (Allen et al. (1998), equation 19, modified):

\(ActualVapourPressure = SaturationVapourPressure \cdot RelativeHumidity / 100\)

Example:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> inputs.relativehumidity = 60.0
>>> factors.saturationvapourpressure = 30.0
>>> model.calc_actualvapourpressure_v1()
>>> factors.actualvapourpressure
actualvapourpressure(18.0)
class hydpy.models.evap.evap_model.Update_LoggedClearSkySolarRadiation_V1[source]

Bases: Method

Log the clear sky solar radiation values of the last 24 hours.

Requires the derived parameter:

NmbLogEntries

Requires the input sequence:

ClearSkySolarRadiation

Updates the log sequence:

LoggedClearSkySolarRadiation

Example:

The following example shows that each new method call successively moves the three memorized values to the right and stores the respective new value on the most left position:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> derived.nmblogentries(3)
>>> logs.loggedclearskysolarradiation.shape = 3
>>> logs.loggedclearskysolarradiation = 0.0
>>> from hydpy import UnitTest
>>> test = UnitTest(model,
...                 model.update_loggedclearskysolarradiation_v1,
...                 last_example=4,
...                 parseqs=(inputs.clearskysolarradiation,
...                          logs.loggedclearskysolarradiation))
>>> test.nexts.clearskysolarradiation = 1.0, 3.0, 2.0, 4.0
>>> del test.inits.loggedclearskysolarradiation
>>> test()
| ex. | clearskysolarradiation |           loggedclearskysolarradiation |
-------------------------------------------------------------------------
|   1 |                    1.0 | 1.0  0.0                           0.0 |
|   2 |                    3.0 | 3.0  1.0                           0.0 |
|   3 |                    2.0 | 2.0  3.0                           1.0 |
|   4 |                    4.0 | 4.0  2.0                           3.0 |
class hydpy.models.evap.evap_model.Update_LoggedGlobalRadiation_V1[source]

Bases: Method

Log the global radiation values of the last 24 hours.

Requires the derived parameter:

NmbLogEntries

Requires the input sequence:

GlobalRadiation

Updates the log sequence:

LoggedGlobalRadiation

Example:

The following example shows that each new method call successively moves the three memorized values to the right and stores the respective new value on the most left position:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> derived.nmblogentries(3)
>>> logs.loggedglobalradiation.shape = 3
>>> logs.loggedglobalradiation = 0.0
>>> from hydpy import UnitTest
>>> test = UnitTest(model,
...                 model.update_loggedglobalradiation_v1,
...                 last_example=4,
...                 parseqs=(inputs.globalradiation,
...                          logs.loggedglobalradiation))
>>> test.nexts.globalradiation = 1.0, 3.0, 2.0, 4.0
>>> del test.inits.loggedglobalradiation
>>> test()
| ex. | globalradiation |           loggedglobalradiation |
-----------------------------------------------------------
|   1 |             1.0 | 1.0  0.0                    0.0 |
|   2 |             3.0 | 3.0  1.0                    0.0 |
|   3 |             2.0 | 2.0  3.0                    1.0 |
|   4 |             4.0 | 4.0  2.0                    3.0 |
class hydpy.models.evap.evap_model.Calc_NetShortwaveRadiation_V1[source]

Bases: Method

Calculate the net shortwave radiation for the hypothetical grass reference crop according to Allen et al. (1998).

Requires the input sequence:

GlobalRadiation

Calculates the flux sequence:

NetShortwaveRadiation

Basic equation (Allen et al. (1998), equation 38):

\(NetShortwaveRadiation = (1.0 - 0.23) \cdot GlobalRadiation\)

Example:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> inputs.globalradiation = 200.0
>>> model.calc_netshortwaveradiation_v1()
>>> fluxes.netshortwaveradiation
netshortwaveradiation(154.0)
class hydpy.models.evap.evap_model.Calc_NetLongwaveRadiation_V1[source]

Bases: Method

Calculate the net longwave radiation according to Allen et al. (1998).

Requires the derived parameter:

NmbLogEntries

Requires the input sequences:

AirTemperature ClearSkySolarRadiation GlobalRadiation

Requires the factor sequence:

ActualVapourPressure

Requires the log sequences:

LoggedGlobalRadiation LoggedClearSkySolarRadiation

Calculates the flux sequence:

NetLongwaveRadiation

Basic equations (Allen et al. (1998), equation 39, modified):

\(NetLongwaveRadiation = \sigma \cdot (AirTemperature + 273.16)^4 \cdot \left( 0.34 - 0.14 \sqrt{ActualVapourPressure / 10} \right) \cdot (1.35 \cdot GR / CSSR - 0.35)\)

\[\begin{split}GR = \begin{cases} GlobalRadiation &|\ ClearSkySolarRadiation > 0 \\ \sum{LoggedGlobalRadiation} &|\ ClearSkySolarRadiation = 0 \end{cases}\end{split}\]
\[\begin{split}CSSR = \begin{cases} ClearSkySolarRadiation &|\ ClearSkySolarRadiation > 0 \\ \sum{LoggedClearSkySolarRadiation} &|\ ClearSkySolarRadiation = 0 \end{cases}\end{split}\]

\(\sigma = 5.6747685185185184 \cdot 10^{-8}\)

Note that when clear sky radiation is zero during night periods, we use the global radiation and clear sky radiation sums of the last 24 hours. The averaging over three hours before sunset suggested by Allen et al. (1998) could be more precise but is a more complicated and error-prone approach.

Example:

The following calculation agrees with example 11 of Allen et al. (1998):

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> derived.nmblogentries(1)
>>> inputs.airtemperature = 22.1
>>> inputs.globalradiation = 167.824074
>>> inputs.clearskysolarradiation = 217.592593
>>> factors.actualvapourpressure = 21.0
>>> model.calc_netlongwaveradiation_v1()
>>> fluxes.netlongwaveradiation
netlongwaveradiation(40.87786)
>>> inputs.clearskysolarradiation = 0.0
>>> logs.loggedclearskysolarradiation.shape = 1
>>> logs.loggedclearskysolarradiation = 138.888889
>>> logs.loggedglobalradiation.shape = 1
>>> logs.loggedglobalradiation = 115.740741
>>> model.calc_netlongwaveradiation_v1()
>>> fluxes.netlongwaveradiation
netlongwaveradiation(45.832275)
class hydpy.models.evap.evap_model.Calc_NetRadiation_V1[source]

Bases: Method

Calculate the total net radiation according to Allen et al. (1998).

Requires the flux sequences:

NetShortwaveRadiation NetLongwaveRadiation

Calculates the flux sequence:

NetRadiation

Basic equation (Allen et al. (1998), equation 40):

\(NetRadiation = NetShortwaveRadiation - NetLongwaveRadiation\)

Example:

The following calculation agrees with example 12 of Allen et al. (1998):

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> fluxes.netshortwaveradiation  = 111.0
>>> fluxes.netlongwaveradiation  = 35.0
>>> model.calc_netradiation_v1()
>>> fluxes.netradiation
netradiation(76.0)
class hydpy.models.evap.evap_model.Calc_SoilHeatFlux_V1[source]

Bases: Method

Calculate the soil heat flux according to Allen et al. (1998).

Requires the derived parameter:

Days

Requires the flux sequence:

NetRadiation

Calculates the flux sequence:

SoilHeatFlux

Basic equation for daily timesteps (Allen et al. (1998), equation 42):

\(SoilHeatFlux = 0\) n

Basic equation for (sub)hourly timesteps (Allen et al. (1998), eq. 45 and 46 ):

\(SoilHeatFlux = \Bigl \lbrace { {0.1 \cdot SoilHeatFlux \ | \ NetRadiation \geq 0} \atop {0.5 \cdot SoilHeatFlux \ | \ NetRadiation < 0} }\)

Examples:

For simulation time steps shorter one day, we define all steps with positive NetRadiation as part of the daylight period and all steps with negative NetRadiation as part of the nighttime period. If the summed NetRadiation during daytime is five times as high as the absolute summed NetRadiation during nighttime, the total SoilHeatFlux is zero:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> derived.days(1/24)
>>> fluxes.netradiation = 100.0
>>> model.calc_soilheatflux_v1()
>>> fluxes.soilheatflux
soilheatflux(10.0)
>>> fluxes.netradiation = -20.0
>>> model.calc_soilheatflux_v1()
>>> fluxes.soilheatflux
soilheatflux(-10.0)

For any simulation step size of at least one day, method Calc_SoilHeatFlux_V1 sets the SoilHeatFlux to zero, which Allen et al. (1998) suggests for daily simulation steps only:

>>> derived.days(1)
>>> fluxes.netradiation = 100.0
>>> model.calc_soilheatflux_v1()
>>> fluxes.soilheatflux
soilheatflux(0.0)
>>> fluxes.netradiation = -20.0
>>> model.calc_soilheatflux_v1()
>>> fluxes.soilheatflux
soilheatflux(0.0)

Hence, be aware that function Calc_SoilHeatFlux_V1 does not give the best results for intermediate (e.g. 12 hours) or larger step sizes (e.g. one month).

class hydpy.models.evap.evap_model.Calc_PsychrometricConstant_V1[source]

Bases: Method

Calculate the psychrometric constant according to Allen et al. (1998).

Requires the input sequence:

AtmosphericPressure

Calculates the factor sequence:

PsychrometricConstant

Basic equation (Allen et al. (1998), equation 8):

\(PsychrometricConstant = 6.65 \cdot 10^{-4} \cdot AtmosphericPressure\)

Example:

The following calculation agrees with example 2 of Allen et al. (1998):

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> inputs.atmosphericpressure = 818.0
>>> model.calc_psychrometricconstant_v1()
>>> factors.psychrometricconstant
psychrometricconstant(0.54397)
class hydpy.models.evap.evap_model.Calc_ReferenceEvapotranspiration_V1[source]

Bases: Method

Calculate the reference evapotranspiration constant according to Allen et al. (1998).

Requires the derived parameters:

Days Hours

Requires the input sequence:

AirTemperature

Requires the factor sequences:

SaturationVapourPressureSlope PsychrometricConstant AdjustedWindSpeed SaturationVapourPressure ActualVapourPressure

Requires the flux sequences:

NetRadiation SoilHeatFlux

Calculates the flux sequence:

ReferenceEvapotranspiration

Basic equation (Allen et al. (1998), equation 6):

\(ReferenceEvapotranspiration = \frac{ 0.408 \cdot SaturationVapourPressureSlope \cdot (NetRadiation - SoilHeatFlux) + PsychrometricConstant \cdot \frac{37.5 \cdot Hours}{AirTemperature + 273} \cdot AdjustedWindSpeed \cdot (SaturationVapourPressure - ActualVapourPressure) } { SaturationVapourPressureSlope + PsychrometricConstant \cdot (1 + 0.34 \cdot AdjustedWindSpeed) }\)

Note that Allen et al. (1998) recommends the coefficient 37 for hourly simulations and 900 for daily simulations. Calc_ReferenceEvapotranspiration_V1 generally uses 37.5, which gives 900 when multiplied by 24.

Example:

The following calculation agrees with example 18 of Allen et al. (1998), dealing with a daily simulation step:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> derived.days(1)
>>> derived.hours(24)
>>> inputs.airtemperature = 16.9
>>> factors.psychrometricconstant = 0.666
>>> factors.adjustedwindspeed = 2.078
>>> factors.actualvapourpressure = 14.09
>>> factors.saturationvapourpressure = 19.97
>>> factors.saturationvapourpressureslope = 1.22
>>> fluxes.netradiation = 153.7037
>>> fluxes.soilheatflux = 0.0
>>> model.calc_referenceevapotranspiration_v1()
>>> fluxes.referenceevapotranspiration
referenceevapotranspiration(3.877117)

The following calculation agrees with example 19 of Allen et al. (1998), dealing with an hourly simulation step (note that there is a difference due to using 37.5 instead of 37 that is smaller than the precision of the results tabulated by Allen et al. (1998):

>>> derived.days(1/24)
>>> derived.hours(1)
>>> inputs.airtemperature = 38.0
>>> factors.psychrometricconstant = 0.673
>>> factors.adjustedwindspeed = 3.3
>>> factors.actualvapourpressure = 34.45
>>> factors.saturationvapourpressure = 66.25
>>> factors.saturationvapourpressureslope = 3.58
>>> fluxes.netradiation = 485.8333
>>> fluxes.soilheatflux = 48.6111
>>> model.calc_referenceevapotranspiration_v1()
>>> fluxes.referenceevapotranspiration
referenceevapotranspiration(0.629106)

Parameter Features

Control parameters

class hydpy.models.evap.ControlParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Control parameters of model evap.

The following classes are selected:
class hydpy.models.evap.evap_control.MeasuringHeightWindSpeed(subvars: SubParameters)[source]

Bases: Parameter

The height above ground of the wind speed measurements [m].

Required by the method:

Calc_AdjustedWindSpeed_V1

NDIM: int = 0
TYPE

alias of float

TIME: bool | None = None
SPAN: Tuple[int | float | bool | None, int | float | bool | None] = (0, None)
name: str = 'measuringheightwindspeed'

Name of the variable in lower case letters.

unit: str = 'm'

Unit of the variable.

Derived parameters

class hydpy.models.evap.DerivedParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Derived parameters of model evap.

The following classes are selected:
  • Hours() The length of the actual simulation step size in hours [h].

  • Days() The length of the actual simulation step size in days [d].

  • NmbLogEntries() The number of log entries required for a memory duration of 24 hours [-].

class hydpy.models.evap.evap_derived.Hours(subvars: SubParameters)[source]

Bases: HoursParameter

The length of the actual simulation step size in hours [h].

Required by the method:

Calc_ReferenceEvapotranspiration_V1

name: str = 'hours'

Name of the variable in lower case letters.

unit: str = 'h'

Unit of the variable.

class hydpy.models.evap.evap_derived.Days(subvars: SubParameters)[source]

Bases: DaysParameter

The length of the actual simulation step size in days [d].

Required by the methods:

Calc_ReferenceEvapotranspiration_V1 Calc_SoilHeatFlux_V1

name: str = 'days'

Name of the variable in lower case letters.

unit: str = 'd'

Unit of the variable.

class hydpy.models.evap.evap_derived.NmbLogEntries(subvars: SubParameters)[source]

Bases: Parameter

The number of log entries required for a memory duration of 24 hours [-].

Required by the methods:

Calc_NetLongwaveRadiation_V1 Update_LoggedClearSkySolarRadiation_V1 Update_LoggedGlobalRadiation_V1

NDIM: int = 0
TYPE

alias of int

TIME: bool | None = None
SPAN: Tuple[int | float | bool | None, int | float | bool | None] = (1, None)
update()[source]

Calculate the number of entries and adjust the shape of all relevant log sequences.

The aimed memory duration is one day. Hence, the required log entries depend on the simulation step size:

>>> from hydpy.models.evap import *
>>> parameterstep()
>>> from hydpy import pub
>>> pub.timegrids = "2000-01-01", "2000-01-02", "1h"
>>> derived.nmblogentries.update()
>>> derived.nmblogentries
nmblogentries(24)
>>> for seq in logs:
...     print(seq)
loggedglobalradiation(nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
                      nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
                      nan, nan, nan, nan)
loggedclearskysolarradiation(nan, nan, nan, nan, nan, nan, nan, nan,
                             nan, nan, nan, nan, nan, nan, nan, nan,
                             nan, nan, nan, nan, nan, nan, nan, nan)

There is an explicit check for inappropriate simulation step sizes:

>>> pub.timegrids = "2000-01-01 00:00", "2000-01-01 10:00", "5h"
>>> derived.nmblogentries.update()
Traceback (most recent call last):
...
ValueError: The value of parameter `nmblogentries` of element `?` cannot be determined for a the current simulation step size.  The fraction of the memory period (1d) and the simulation step size (5h) leaves a remainder.
name: str = 'nmblogentries'

Name of the variable in lower case letters.

unit: str = '-'

Unit of the variable.

Sequence Features

Input sequences

class hydpy.models.evap.InputSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: InputSequences

Input sequences of model evap.

The following classes are selected:
class hydpy.models.evap.evap_inputs.AirTemperature(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: InputSequence

Air temperature [°C].

Required by the methods:

Calc_NetLongwaveRadiation_V1 Calc_ReferenceEvapotranspiration_V1 Calc_SaturationVapourPressureSlope_V1 Calc_SaturationVapourPressure_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'airtemperature'

Name of the variable in lower case letters.

unit: str = '°C'

Unit of the variable.

class hydpy.models.evap.evap_inputs.RelativeHumidity(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: InputSequence

Relative humidity [%].

Required by the method:

Calc_ActualVapourPressure_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'relativehumidity'

Name of the variable in lower case letters.

unit: str = '%'

Unit of the variable.

class hydpy.models.evap.evap_inputs.WindSpeed(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: InputSequence

Wind speed [m/s].

Required by the method:

Calc_AdjustedWindSpeed_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'windspeed'

Name of the variable in lower case letters.

unit: str = 'm/s'

Unit of the variable.

class hydpy.models.evap.evap_inputs.AtmosphericPressure(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: InputSequence

Atmospheric pressure [hPa].

Required by the method:

Calc_PsychrometricConstant_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'atmosphericpressure'

Name of the variable in lower case letters.

unit: str = 'hPa'

Unit of the variable.

class hydpy.models.evap.evap_inputs.GlobalRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: InputSequence

Global radiation [W/m²].

Required by the methods:

Calc_NetLongwaveRadiation_V1 Calc_NetShortwaveRadiation_V1 Update_LoggedGlobalRadiation_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'globalradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.evap_inputs.ClearSkySolarRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: InputSequence

Clear sky solar radiation [W/m²].

Required by the methods:

Calc_NetLongwaveRadiation_V1 Update_LoggedClearSkySolarRadiation_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'clearskysolarradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

Factor sequences

class hydpy.models.evap.FactorSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: FactorSequences

Factor sequences of model evap.

The following classes are selected:
class hydpy.models.evap.evap_factors.AdjustedWindSpeed(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FactorSequence

Adjusted wind speed [m/s].

Calculated by the method:

Calc_AdjustedWindSpeed_V1

Required by the method:

Calc_ReferenceEvapotranspiration_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'adjustedwindspeed'

Name of the variable in lower case letters.

unit: str = 'm/s'

Unit of the variable.

class hydpy.models.evap.evap_factors.SaturationVapourPressure(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FactorSequence

Saturation vapour pressure [hPa].

Calculated by the method:

Calc_SaturationVapourPressure_V1

Required by the methods:

Calc_ActualVapourPressure_V1 Calc_ReferenceEvapotranspiration_V1 Calc_SaturationVapourPressureSlope_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'saturationvapourpressure'

Name of the variable in lower case letters.

unit: str = 'hPa'

Unit of the variable.

class hydpy.models.evap.evap_factors.SaturationVapourPressureSlope(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FactorSequence

The slope of the saturation vapour pressure curve [hPa/K].

Calculated by the method:

Calc_SaturationVapourPressureSlope_V1

Required by the method:

Calc_ReferenceEvapotranspiration_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'saturationvapourpressureslope'

Name of the variable in lower case letters.

unit: str = 'hPa/K'

Unit of the variable.

class hydpy.models.evap.evap_factors.ActualVapourPressure(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FactorSequence

Actual vapour pressure [hPa].

Calculated by the method:

Calc_ActualVapourPressure_V1

Required by the methods:

Calc_NetLongwaveRadiation_V1 Calc_ReferenceEvapotranspiration_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'actualvapourpressure'

Name of the variable in lower case letters.

unit: str = 'hPa'

Unit of the variable.

class hydpy.models.evap.evap_factors.PsychrometricConstant(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FactorSequence

Psychrometric constant [hPa/K].

Calculated by the method:

Calc_PsychrometricConstant_V1

Required by the method:

Calc_ReferenceEvapotranspiration_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'psychrometricconstant'

Name of the variable in lower case letters.

unit: str = 'hPa/K'

Unit of the variable.

Flux sequences

class hydpy.models.evap.FluxSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: FluxSequences

Flux sequences of model evap.

The following classes are selected:
class hydpy.models.evap.evap_fluxes.NetShortwaveRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FluxSequence

Net shortwave radiation [W/m²].

Calculated by the method:

Calc_NetShortwaveRadiation_V1

Required by the method:

Calc_NetRadiation_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'netshortwaveradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.evap_fluxes.NetLongwaveRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FluxSequence

Net longwave radiation [W/m²].

Calculated by the method:

Calc_NetLongwaveRadiation_V1

Required by the method:

Calc_NetRadiation_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'netlongwaveradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.evap_fluxes.NetRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FluxSequence

Total net radiation [W/m²].

Calculated by the method:

Calc_NetRadiation_V1

Required by the methods:

Calc_ReferenceEvapotranspiration_V1 Calc_SoilHeatFlux_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'netradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.evap_fluxes.SoilHeatFlux(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FluxSequence

Soil heat flux [W/m²].

Calculated by the method:

Calc_SoilHeatFlux_V1

Required by the method:

Calc_ReferenceEvapotranspiration_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'soilheatflux'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.evap_fluxes.ReferenceEvapotranspiration(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: FluxSequence

Reference evapotranspiration [mm/T].

Calculated by the method:

Calc_ReferenceEvapotranspiration_V1

NDIM: int = 0
NUMERIC: bool = False
name: str = 'referenceevapotranspiration'

Name of the variable in lower case letters.

unit: str = 'mm/T'

Unit of the variable.

Log sequences

class hydpy.models.evap.LogSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: LogSequences

Log sequences of model evap.

The following classes are selected:
class hydpy.models.evap.evap_logs.LoggedGlobalRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: LogSequence

Logged global radiation [W/m²].

Updated by the method:

Update_LoggedGlobalRadiation_V1

Required by the method:

Calc_NetLongwaveRadiation_V1

NDIM: int = 1
NUMERIC: bool = False
name: str = 'loggedglobalradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.evap_logs.LoggedClearSkySolarRadiation(subvars: ModelSequences[ModelSequence, FastAccess])[source]

Bases: LogSequence

Logged clear sky radiation [W/m²].

Updated by the method:

Update_LoggedClearSkySolarRadiation_V1

Required by the method:

Calc_NetLongwaveRadiation_V1

NDIM: int = 1
NUMERIC: bool = False
name: str = 'loggedclearskysolarradiation'

Name of the variable in lower case letters.

unit: str = 'W/m²'

Unit of the variable.

class hydpy.models.evap.ControlParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Control parameters of model evap.

The following classes are selected:
class hydpy.models.evap.DerivedParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Derived parameters of model evap.

The following classes are selected:
  • Hours() The length of the actual simulation step size in hours [h].

  • Days() The length of the actual simulation step size in days [d].

  • NmbLogEntries() The number of log entries required for a memory duration of 24 hours [-].

class hydpy.models.evap.FactorSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: FactorSequences

Factor sequences of model evap.

The following classes are selected:
class hydpy.models.evap.FluxSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: FluxSequences

Flux sequences of model evap.

The following classes are selected:
class hydpy.models.evap.InputSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: InputSequences

Input sequences of model evap.

The following classes are selected:
class hydpy.models.evap.LogSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: LogSequences

Log sequences of model evap.

The following classes are selected: