💾 Archived View for republic.circumlunar.space › users › johngodlee › posts › 2018-12-05-vpd.gmi captured on 2024-07-09 at 00:46:04. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-04)
-=-=-=-=-=-=-
DATE: 2018-12-05
AUTHOR: John L. Godlee
I needed to calculate Vapour Pressure Deficit for a productivity model that I'm running, using ECMWF spatial data timeseries as an input. I wrote some functions in R that I think do the right thing:
# Saturation vapour pressure (millibars) vps <- function(T_k){ T_c <- T_k - 273.15 return(0.6108 * exp(17.27 * T_c / (T_c + 273.15))) } # Relative humidity (%) rh <- function(T_k, Td_k){ es_calc <- vps(T_k) # Saturation vp ea_calc <- vps(Td_k) # Actual vp return((ea_calc / es_calc) * 100) } # Vapour pressure of air (millibars) vpa <- function(T_k, Td_k){ rh_calc <- rh(T_k, Td_k) vps_calc <- vps(T_k) return(rh_calc / 100 * vps_calc) } # Vapour pressure deficit (kPa) vpd <- function(T_k, Td_k){ vps_calc <- vps(T_k) vpa_calc <- vpa(T_k, Td_k) return(vpa_calc - vps_calc) }