humidity/resources/katzenberger.txt

49 lines
No EOL
1.8 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# I'm guessing this is Python
# Saturated water vapor pressure in hPa, Magnus Formula
# Parameters from Sonntag1990, for 45 °C ≤ T ≤ 60 °C (error ±0.35 °C).
def saturatedVaporPressureMagnusSonntag1990(temperatureCelsius):
a = 6.112
b = 17.62
c = 243.12
saturatedVaporPressure = a * math.exp((b * temperatureCelsius) / (c + temperatureCelsius))
return saturatedVaporPressure
# Saturated water vapor pressure in hPa, Tetens Formula
def saturatedVaporPressureTetens(temperatureCelsius):
a = 6.1078
b = 17.27
c = 237.3
saturatedVaporPressure = a * math.exp((b * temperatureCelsius) / (c + temperatureCelsius))
return saturatedVaporPressure
# Saturated water vapor pressure in hPa, Buck 1996 Formula
def saturatedVaporPressureBuck1996(temperatureCelsius):
if temperatureCelsius < 0:
return 6.1115 * math.exp(
(23.06 - temperatureCelsius / 333.7) * (temperatureCelsius / (279.82 + temperatureCelsius)))
else:
return 6.1121 * math.exp(
(18.678 - temperatureCelsius / 234.5) * (temperatureCelsius / (257.14 + temperatureCelsius)))
# Actual water vapor pressure in hPa
def vaporPressure(relativeHumidity, temperatureCelsius):
vaporPressure = relativeHumidity / 100.0 * saturatedVaporPressureBuck1996(temperatureCelsius)
return vaporPressure
# Absolute humidity in g/m³
def absoluteHumidity(relativeHumidity, temperatureCelsius):
molarMassOfWaterVapor = 18.01528
universalGasConstant = 8314.46261815324
zeroCelsiusInKelvin = 273.15
absoluteHumidity = 10 ** 5 * molarMassOfWaterVapor / universalGasConstant * vaporPressure(relativeHumidity,
temperatureCelsius) / (
temperatureCelsius + zeroCelsiusInKelvin)
return absoluteHumidity