Calculating model level height - tnipen/NWPdocs GitHub Wiki

Calculating model level height

Some files in e.g. AROME-Arctic full files have parameters on model levels, such as "air_temperature_ml". The height of the model level is usually derived from the parameter "geopotential_ml", but some times this parameter might not be available. In the following we explain how to calculate this yourselves from other information in the file.

The model level coordinate is a hybrid that follows the ground near bottom, and gradually converts to pressure level coordinates higher in the atmosphere. The height of each model level depends on place and time (weather). Originally, the matter is made more complicated since the pressure is given on “half-levels” whereas T, u, v and q are on full levels; however, in the NetCDF output all parameters are given on full levels so we avoid this complication.

Pressure on the different model levels is given by p = a0 + b0*ps where a0 and b0 are constants in the NetCDF-file, and ps is surface pressure. Then one must integrate from ground up, approximately assuming hydrostatic balance (dp/dz = -air density * g). The approximation of Z may be given by Z[k] = Z[k+1] + (R x T[k] / g) x ln(p[k+1]/p[k]) where k is level number, R=287.058 J/kg⋅K (specific gas constant for dry air), T is temperature in Kelvin (really virtual temperature, but T approximately) and p is pressure. The first Z from ground is of course 0.