def sh2ppmv(q, p): """Convert specific humidity [kg/kg] to parts per million by volume ppmv required for RTTOV Parameters ---------- q specific humidity [kg/kg] p air pressure [Pa] Returns ------- pressure [ppmv] """ # Gas Konstanten trocken / feucht c = con.eps() # Parameters()['Rd']/Parameters()['Rv'] # Dampfdruck r = q / (1 - q) # r mixing ratio # c is Rd/Rv # aus e = r p /(r+c) e = r * p / (c + r) # e = (q * p)/(q + (1 - q)*c) # Volumen-spez. # 10e6 * Pwater / (Ptotal - Pwater) return 1e6 * (e / (p - e))
def vap2sh(e, p): """ Convert water vapor pressure to specific humidity Parameters ---------- e Water vapor [Pa] p air pressure [Pa] Returns ------- specific humidity in kg/kg """ c = con.eps() # Rd/Rv Pd = p - e return (e * c) / (e * c + Pd)
def sh2vap(q, p): """Specific Humidity to Water vapor pressure Parameters ---------- q specific humidity [kg/kg] p air pressure [Pa] Returns ------- water vapor pressure [Pa] """ c = con.eps() # Rd / Rv return (q * p) / (q + (1 - q) * c)