Source code for chemics.atm_pressure

"""
Function for atmospheric pressure.
"""

import numpy as np


[docs] def patm(alt): """ Calculate atmospheric pressure. Determine atmospheric pressure at altitudes up to 51 km. Based on article by Roland Stull [#stull]_. Parameters ---------- alt : float Altitude or elevation above sea level in meters Returns ------- Patm : float Atmospheric pressure in pascal References ---------- .. [#stull] Practical Meteorology: An Algebra-based Survey of Atmospheric Science by Roland Stull. """ alt = alt / 1000 # convert altitude from meters to kilometers Ro = 6356.766 # average radius of the Earth, km H = (Ro * alt) / (Ro + alt) # geopotential height, km Patm = None # initiate pressure variable if H <= 11: T = 288.15 - (6.5 * H) Patm = 101325 * (288.15 / T) ** (-5.255877) elif H <= 20: T = 216.65 Patm = 22632 * np.exp(-0.1577 * (H - 11)) elif H <= 32: T = 216.65 + (H - 20) Patm = 5474.9 * (216.65 / T) ** (34.16319) elif H <= 47: T = 228.65 + 2.8 * (H - 32) Patm = 868 * (228.65 / T) ** 12.2011 elif H <= 51: T = 270.65 Patm = 110.9 * np.exp(-0.1262 * (H - 47)) else: raise ValueError("geopotential height must be less than 51 km") # return atmospheric pressure at altitude, Pa return Patm