earthkit.meteo.thermo.saturation_vapour_pressure

earthkit.meteo.thermo.saturation_vapour_pressure(t: ArrayLike, phase: str = 'mixed') ArrayLike
earthkit.meteo.thermo.saturation_vapour_pressure(t: xarray.DataArray, phase: str = 'mixed') xarray.DataArray
earthkit.meteo.thermo.saturation_vapour_pressure(t: earthkit.data.FieldList, phase: str = 'mixed') earthkit.data.FieldList

Compute the saturation vapour pressure from temperature with respect to a phase.

Parameters:
  • t (array-like) – Temperature (K)

  • phase (str, optional) – Define the phase with respect to the saturation vapour pressure is computed. It is either “water”, “ice” or “mixed”.

Returns:

Saturation vapour pressure (Pa)

Return type:

array-like

The algorithm was taken from the IFS model [IFS-CY47R3-PhysicalProcesses] (see Chapter 12). It uses the following formula when phase is "water" or "ice":

\[e_{sat} = a_{1}\operatorname{exp} \left(a_{3}\frac{t-273.16}{t-a_{4}}\right)\]

where the parameters are set as follows:

  • phase = "water": \(a_{1}\) =611.21 Pa, \(a_{3}\) =17.502 and \(a_{4}\) =32.19 K

  • phase = "ice": \(a_{1}\) =611.21 Pa, \(a_{3}\) =22.587 and \(a_{4}\) =-0.7 K

When phase is "mixed" the formula is based on the value of t:

  • if \(t <= t_{i}\): the formula for phase = "ice" is used (\(t_{i} = 250.16 K\))

  • if \(t >= t_{0}\): the formula for phase = "water" is used (\(t_{0} = 273.16 K\))

  • for the range \(t_{i} < t < t_{0}\) an interpolation is used between the "ice" and "water" phases:

\[\alpha(t) e_{wsat}(t) + (1 - \alpha(t)) e_{isat}(t)\]

with \(\alpha(t) = (\frac{t-t_{i}}{t_{0}-t_{i}})^2\).

Implementations

saturation_vapour_pressure() calls one of the following implementations depending on the type of the input arguments:

The function returns an object of the same type as the input arguments.