Table Of Contents

This Page

The PotentialEvapoTranspiration class

class PotentialEvapoTranspiration(tmin, tmax, latitude, z=0, Kt=0.17000000000000001)

Bases: scikits.hydroclimpy.lib.evaporation.SolarInformation

Computes the Potential EvapoTranspiration (PET) through different models.

The class instance stores the information (temperatures series, solar radiaitons, altitude...) required to calculate the PET for one given site over several dates with different models.

The PET estimated with a given model is the output of the instance method corresponding to the model. Thus, it is very easy to compare PETs estimated with different models.

Parameters:

tmin : TimeSeries

Minimum air temperatures [\textrm{\textcelsius}].

tmax : TimeSeries

Maximum air temperatures [\textrm{\textcelsius}].

latitude : float

Latitude of the site (in degrees).

z : float

Altitude of the site [m].

Kt : {None, float}, optional

Regression constant used to approximate solar radiations from temperatures. The default (K_t=0.171 corresponds to the standard value suggested by Hargreaves and Samani [Hargreaves_Samani_1985]. If None, K_t is evaluated from the temperatures range \Delta T as K_t = 0.00185 {\Delta T}^2 - 0.0433 {\Delta T} + 0.4023. [REF_TO_FIND_19xx]

Methods

Droogers
Hamon
Hansen
Hargreaves
Kharrufa
Makkink
PenmanMonteith
PenmanMonteithASCE
PriestleyTaylor
Thornthwaite
Turc
apx_solar_radiations
clearsky_solar_radiations
frac_day_of_year
net_lw_radiations
set_atmospheric_pressure
solar_radiations_from_sunshinehours
solar_radiations_from_temperatures
vapor_pressure_from_dewpoint
vapor_pressure_from_humidity

Attributes

Because the PotentialEvapoTranspiration class is a subclass of SolarInformation, it inherits all its attributes (freq, latitude, extraterrestrial_solar_radiations...). In addition, the class has its own attributes:

PotentialEvapoTranspiration.tmin
Minimum air temperature series [\textrm{\textcelsius}], as a TimeSeries object.
PotentialEvapoTranspiration.tmax
Maximum air temperatures series [\textrm{\textcelsius}], as a TimeSeries object.
PotentialEvapoTranspiration.tavg
Average air temperatures series step [\textrm{\textcelsius}], as a TimeSeries object.
PotentialEvapoTranspiration.Kt

Empirical coefficient for the estimation of solar radiations from temperatures. A value of 0.171 is used by default.

If set to None, K_t is computed from \Delta T, the temperature range, as K_t = 0.00185 {\Delta T}^2 - 0.0433 {\Delta T} + 0.4023.

PotentialEvapoTranspiration.lambdah
Latent heat of vaporization [MJ.kg-1]. A default of 2.451 is assumed. If set to None, lambdah is computed from the average air temperature T_{avg} as \lambda_H = 2.501 - 0.0002361  T_{avg}
PotentialEvapoTranspiration.Delta

Slope of the vapor pressure-temperature relationship, as

\Delta = 2502.992210 \cdot \exp{\left[17.2693882\cfrac{T_{avg}}{T_{avg}+237.3}\right]} \cdot (T_{avg}+237.3)^{-2}

where T_{avg} is average air temperature [\textrm{\textcelsius}].

PotentialEvapoTranspiration.gamma
Psychrometric constant [kPa/\textrm{\textcelsius}], as given by \gamma = \frac{c_p}{\epsilon} \frac{P}{\lambda_h} where c_p = 1.013 10^{-3} [MJ.kg-1.\textrm{\textcelsius}-1] is the specific heat of water at constant pressure and \epsilon = 0.622 is the ratio molecular weight of water vapor on dry air.
PotentialEvapoTranspiration.saturated_vapor_pressure

Returns the vapor pressure at saturation [kPa]. The saturated vapor pressure for the time step is calculated as the average of the saturated vapor pressures corresponding to the minimum and maximum temperatures for the time step.

The relationship between saturated vapor pressure e_s^* and temperature T is:

e_s^*(T) = 0.61078 \cdot \exp\left[\frac{17.2693882 T}{T+237.3} \right]

PotentialEvapoTranspiration.atm_pressure
Atmospheric pressure [kPa].
PotentialEvapoTranspiration.apx_solar_radiations

Returns the solar radiations [MJ.m-2.d-1] approximated from temperatures, as:

R_s = K_t \cdot \sqrt{T_{max}-T_{min}} \cdot R_a

where K_t is an empirical parameter. By default, K_t=0.171. Otherwise, K_t is estimated from the temperature range \Delta T=T_{max}-T_{min} as K_t = 0.00185 (\Delta T)^2 - 0.0433 \Delta T + 0.4023.

Parameters:

Kt : {None, float}, optional

Regression constant used to approximate solar radiations from temperatures. The default (K_t=0.171 corresponds to the standard value suggested by Hargreaves and Samani [Hargreaves_Samani_1985]. If None, K_t is evaluated from the temperatures range \Delta T as K_t = 0.00185 {\Delta T}^2 - 0.0433 {\Delta T} + 0.4023. [REF_TO_FIND_19xx]

PotentialEvapoTranspiration.net_lw_radiations

Computes the net longwave radiation [MJ.m-2.d-1] as a function of temperatures:

R_{nl} = \sigma \cdot \left[\cfrac{T_{min}^4 + T_{max}^4}{2}\right] \cdot
         (0.34 - 0.139\sqrt{(e_a)} \cdot
         \left[ 1.35 \cfrac{R_s}{R_{so}} - 0.35\right]

where \sigma = 4.903 10^{-9} [MJ.K-4.m-2.d-1] is the Stefan-Bolztmann constant, e_a the actual vapor pressure, R_s the actual incoming solar radiation, R_{so} the incoming clear-sky solar radiation. The temperatures are expressed in [K]

Parameters:

ea : float

Actual vapor pressure [kPa]

solar_radiations : TimeSeries

Mean incoming solar radiations R_s [MJ.m-2.d-1]

PotentialEvapoTranspiration.soil_heat_flux_density
Computes the soil heat flux density. The soil heat flux density is set to zero when the time step is less a month. Otherwise, it is computed as G_{i} = 0.07 \left( t_{air,i+1} - t_{air,i-1} \right)

Methods

PotentialEvapoTranspiration.vapor_pressure_from_humidity(RHmin=None, RHmax=None, RHmean=None)

Returns the vapor pressure e_a [kPa] calculated from relative humidity.

The relative humidity is the ratio of the vapor pressure e_a on the vapor pressure at saturation e_s^* at the same temperature.

If maximum and minimum relative humidities (RH_{max} and RH_{min}) are available, the vapor pressure is calculated as

e_a = \left[ e_s^*(T_{min}) \cdot RH_{max} + e_s^*(T_{max}) \cdot RH_{min}\right] / 2

If RH_{min} is unavailable, the previous equation simplifies in

e_a = e_s^*(T_{min}) \cdot RH_{max}

If only the average relative humidity RH_{mean} is available, e_a is estimated with:

e_a = RH_{mean} \cdot \left[ e_s^*(T_{min}) + e_s^*(T_{max})\right] / 2

Parameters:

RHmin : None, TimeSeries

Minimum relative humidity for the time step.

RHmax : None, TimeSeries

Maximum relative humidity for the time step.

RHmean : None, TimeSeries

Mean relative humidity for the time step.

PotentialEvapoTranspiration.vapor_pressure_from_dewpoint(tdew=None)

Returns the vapor pressure [kPa] calculated from the dew point temperature, T_{dew}:

e_a = e_s^*(T_{dew})

If the dew point temperature is None, it is approximated by the minimum air temperature T_{min}.

Parameters:

tdew : None, TimeSeries

Dew point temperature [\textrm{\textcelsius}]. If None, use the minimum temperature.

PotentialEvapoTranspiration.set_atmospheric_pressure(P, zo=0, tmean=0)

Sets the atmospheric pressure.

If P is None, it is calculated from P_o [101.3 kPa], the average atmospheric pressure at sea level.

Parameters:

P : TimeSeries

Series of atmospheric pressures [kPa].

z0 : {0., float} optional

Elevation at reference level [m].

tmean : {20., float} optional

Mean temperature at the reference level [\textrm\{\textcelsius\}].

References

Burman et al., 1987