MetPy icon indicating copy to clipboard operation
MetPy copied to clipboard

metpy.calc.height_to_pressure_std not using the current ICAO standard atmosphere calculation (latest version is from 1993)

Open ABF-EC opened this issue 7 months ago • 3 comments

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: image

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.

ABF-EC avatar Jul 09 '24 18:07 ABF-EC