Function to calculate water vapour saturation pressure (hPa) from temperature (°C) using the International Association for the Properties of Water and Steam (IAPWS as default) or August-Roche-Magnus approximation.
Water vapour saturation pressure is the maximum partial pressure of water vapour that can be present in gas at a given temperature.
Note
If lower accuracy or a limited temperature range can be tolerated a simpler formula can be used for the water vapour saturation pressure over water (and over ice):
Pws = 6.116441 x 10^( (7.591386 x Temp) / (Temp + 240.7263) )
References
Wagner, W., & Pru\ß, A. (2002). The IAPWS formulation 1995 for the thermodynamic properties of ordinary water substance for general and scientific use. Journal of Physical and Chemical Reference Data, 31(2), 387-535.
Alduchov, O. A., and R. E. Eskridge, 1996: Improved Magnus' form approximation of saturation vapor pressure. J. Appl. Meteor., 35, 601-609.
Examples
calcPws(20)
#> [1] 23.39194
calcPws(20, method = "IAPWS")
#> [1] 23.39194
calcPws(20, method = "Magnus")
#> [1] 23.33441
# Calculate relative humidity at 50%RH
calcPw(20, 50) / calcPws(20, method = "IAPWS") * 100
#> [1] 50
calcPw(20, 50) / calcPws(20, method = "Magnus") * 100
#> [1] 50.12328
head(mydata) |> dplyr::mutate(Pws = calcPws(Temp))
#> # A tibble: 6 × 6
#> Site Sensor Date Temp RH Pws
#> <chr> <chr> <dttm> <dbl> <dbl> <dbl>
#> 1 London Room 1 2024-01-01 00:00:00 21.8 36.8 26.1
#> 2 London Room 1 2024-01-01 00:15:00 21.8 36.7 26.1
#> 3 London Room 1 2024-01-01 00:29:59 21.8 36.6 26.1
#> 4 London Room 1 2024-01-01 00:44:59 21.7 36.6 26.0
#> 5 London Room 1 2024-01-01 00:59:59 21.7 36.5 26.0
#> 6 London Room 1 2024-01-01 01:14:59 21.7 36.2 26.0