metpy.calc.height_to_pressure_std not using the current ICAO standard atmosphere calculation (latest version is from 1993) #3561
Description
What went wrong?
Hi,
The formula and constants that are used in the standard atmosphere calculations are outdated. The equations and constant are based on the 1976 version of the ICAO standard atmosphere. However, there is latest version available that is slightly different. The equations and constants for the standard atmosphere should be based on the 1993 version of the ICAO standard atmosphere [https://img.antpedia.com/standard/files/pdfs_ora/20200926/ICAO%207488-1993.pdf].
The equation used in metpy.calc.height_to_pressure_std :
p0 * (1 - (gamma / t0) * height) ** (mpconsts.g / (mpconsts.Rd * gamma))
Also, the equation used for metpy.calc.height_to_pressure_std is valid for the troposphere only. For meteorology programming, we would need, at least, a function that considers both the troposphere and the tropopause.
Here are the euation for the troposphere and the tropopause:
where
P0 = 1013.25 hPa P1 = 226.32 hPa
T0 = 288.15 K T1 = 216.65 K
g0 = 9.80665 m/s2 g0 = 9.80665 m/s2
α = 6.5 °C /km
R = 287.0528 J/(kg K) R = 287.0528 J/(kg K)
h1 = 11 km
h = Geopotential Altitude in km h = Geopotential Altitude in km
Best regards,
Anna-Belle
Operating System
Windows
Version
1.5.1
Python Version
3.10.12
Code to Reproduce
from metpy import constants
from metpy.calc import height_to_pressure_std
from metpy.units import units
import numpy as np
height = np.arange(0,67000,1000) * units.feet
metpy.calc.height_to_pressure_std(height)
Errors, Traceback, and Logs
No error, the function is working fine. It is the function formula and constants used in the formula that are outdated.
Activity