# How can true altitude be calculated from pressure altitude, temperature and altimeter setting?

The manual that came with my Jeppensen E6B has the following sample...

If an aircraft is flying at 12,500 feet with an outside air temperature of -20C and the altimeter is set on 30.42 inches of mercury, what is the true altitude?

The explanation goes on to find a pressure altitude of 12,000 feet. After placing -20C over 12,000 we find 12,500 (12.5) on the B scale and read the true altitude of 12,000 (12.0) on the outer ring.

Looking closely at the outer ring, I see that the true altitude is actually just slightly below 12,000. Now for practical purposes I realize we don't worry about differences like this and round the result. But I'm working on a project in which I need to calculate the true altitude precisely. I'm having a difficult time finding the formula. The closest thing I have found says the correction is 4 feet per thousand feet indicated per degree off of ISA.

When I attempt to apply that formula to our sample problem I get 4 * 12.5 * -35 = -1750. Applying that correction gives a value far below expected so obviously I'm doing something wrong. Can someone straighten me out here? References to documentation with educational value are especially welcome.

• Can you add more detail and context? In practice, it is impossible to calculate true altitude from pressure since the atmosphere does not act in a linear way. One day A, with ISA standard at sea level, the pressure altitude for say 900Hpa can be different for day B with ISA standard day. It will also change from minute to minute. So when you say you must calculate it exactly, we need to find a different approach. Mar 11, 2016 at 6:46
• If you need true altitude, you should not use pressure altitude, especially at higher altitudes. Use GPS instead. Out of curiosity what do you need true altitude for? There are corrections you can apply based on meteorological models that allow you to convert pressure altitude to true altitude, but they involve quite some math. Mar 11, 2016 at 8:27
• @DeltaLima, I'm creating an E6B app as a programming excercise. I wanted it to be mathematically true to the paper versions. Determining the location of the individual tick marks on each scale sometimes requires a little reverse-engineering. Knowing the precise formula used by manual E6B's (even if they weren't the most accurate formula) would help me recreate the most consistent experience. Apr 12, 2016 at 12:17
• I don't know the approximation used by E6B, but I do know the official mathematical model used by ICAO. Would that help? Apr 12, 2016 at 15:56
• Couldn't hurt, if nothing else it would be an educational opportunity for me. Thank you. Apr 12, 2016 at 15:58

I would think the OAT in the example is what your on-board thermometer is showing, so at 12,500 ft, not at sea level. ISA is +15°C at sea level, but at 12,500 ft it is -9.8°C, so you are just -10 off ISA. Let's see. 4 ⋅ 12.5 ⋅ (−10) = −500, so the formulas match.

Note though, that this is still just an approximation. The temperature lapse rate might also differ and that would have to be taken into account as well. The more precise equation is also nonlinear.

• This filled in a big missing piece... I wasn't accounting for the lapse rate and so I was thinking -35 off ISA rather than -10. But as you said, this is an approximation. Do you happen to know "the more precise equation?" I'm trying to replicate the result obtained from the E6B which is slightly lower than 12,000. I suspect we use "4" for convenience but the actual value is 4.xxx Mar 11, 2016 at 16:02
• @dazedandconfused, I've seen some calculations in simulators, but never took the time to truly understand them. In any case while the temperature lapse rate is considered constant in the troposphere (up to 36,000 ft), the pressure and density still decrease exponentially, so the calculation is rather complicated. Mar 11, 2016 at 22:01
• If you need to compute the temperature deviation from ISA you need to use the pressure altitude (12000ft), not the indicated altitude (12500ft)
– fab
Oct 12, 2022 at 3:55

Since the OP is interested in an exact equation, let me take a stab at deriving it (though it's probably late for a 2016 question).

## Premise: how altimeters work

Altimeters take a QNH and a static pressure in input and spit out an altitude. In order to do that, they assume that both the QNH and the pressure are values within the International Standard Atmosphere (ISA). With this hypothesis, it's easy to show that the relation between QNH, pressure and altitude is:

$$h=\frac{T_0}{L}\left[\left(\frac{\mathrm{QNH}}{P}\right)^\frac{R_sL}{g}-\left(\frac{P}{P_0}\right)^\frac{R_sL}{g}\right]\tag{1}$$

where:

• $$h$$: Altitude reading in meters
• $$P$$: Air pressure in Pascal
• $$\mathrm{QNH}$$: Altimeter setting in Pascal
• $$L$$: Temperature lapse $$=0.0065 \mathrm{~K/m}$$
• $$T_0$$: Standard temperature $$=288.15 \mathrm{~K}$$
• $$P_0$$: Standard pressure $$=101325 \mathrm{~Pa}$$
• $$g$$: Gravitational acceleration $$\approx 9.81 \mathrm{~m/s}^2$$
• $$R_s$$: specific gas constant for dry air $$\approx 287.058 \mathrm{~J \cdot kg^{−1}K^{−1}}$$

That's however not only how altimeters work. This relation is general and that's how altitude, pressure and QNH always relate to each other in the ISA. For this purpose it's useful to solve for $$P$$ as well:

$$P=P_0\left[\left(\frac{\mathrm{QNH}}{P_0}\right)^\frac{R_sL}{g}-\frac{Lh}{T_0}\right]\tag{2}$$

## ISA corrected for temperature

Sometimes, instead of using ISA, it's useful to use ISA +X, i.e. standard atmosphere with X°C of variation. X is sometimes expressed as $$X=T_\mathrm{OAT}-T_\mathrm{ISA}$$. For example if at sea level pressure is 29.92 inHg and temperature is 10°C, then $$X=-5$$

Equation 1 works also in ISA +X but it needs a slight correction:

$$h_{ISA~+X}=\frac{T_0+X}{L}\left[\left(\frac{\mathrm{QNH}}{P}\right)^\frac{R_sL}{g}-\left(\frac{P}{P_0}\right)^\frac{R_sL}{g}\right]\tag{3}$$

## The problem

The problem at hand basically means using equation 2 to get the air pressure outside the aircraft, and replacing it back into equation 3 (with the appropriate temperature correction X). If one does the replacement, the 2 equations simplify nicely in the following relation:

$$h_{true} = h\cdot\left(1+\frac{X}{T_0}\right)\tag{4}$$

where we use $$h$$ to denote the altimeter reading and $$h_{true}$$, the altitude with the temperature correction. Note that this equation is exact, it's not an approximation. If we replace the actual value of $$T_0$$ we get

$$h_{true} = h + 0.00347h\cdot\left(T_\mathrm{OAT}-T_\mathrm{ISA}\right)\tag{5}$$ $$h_{true}\approx h+h\frac{4}{1000}\left(T_\mathrm{OAT}-T_\mathrm{ISA}\right)\tag{6}$$

Which is the equation that shows up in other answers. I'm not sure why $$\frac{1}{T_0}=0.00347$$ is approximated as 0.004 but I suppose it's to make it conservatively safer (since it approximates the true altitude in excess)

## Solution

In order to solve the problem, all we need to compute is the temperature deviation X and replace it in equation 5. To do so, we first compute the Pressure Altitude with the following relation:

$$\mathrm{P.A.}=h+\frac{T_0}{L}\left[1-\left(\frac{\mathrm{QNH}}{P_0}\right)^\frac{R_sL}{g}\right]=3670\mathrm{~m}=12041\mathrm{~ft}\tag{7}$$

It follows that:

$$X=T_\mathrm{OAT}-T_\mathrm{ISA}=T_\mathrm{OAT}-\left(T_0-L\cdot\mathrm{P.A.}\right)=-11.145\mathrm{~C}\tag{8}$$

Finally:

$$h_{true} = h + 0.00347\cdot h\cdot X=12016.6\mathrm{~ft}\tag{9}$$

One final note: calling it "true" altitude is misleading because, it probably better approximates the actual altitude, but the true altitude may still be different. The assumption is that temperature decays linearly with altitude, which may not necessarily be the case

True Altitude= P.A. + ( (4/1000)* P.A.* Temp. Dev.)

Where P.A.= Pressure Altitude

Temp. dev.= Temperature Deviation from IsA temperature at that level

• Q: Given the following information, what is the true altitude? (rounded to the nearest 50 ft) QNH: 983 hPa Altitude: FL 85 Outside Air Temperature: ISA - 10° May 27, 2020 at 7:38

1:Recon QNH altitude, considering lower than ISA SL pressure, you`d have to rotate the Kollsmanswindow down, and with that the altimeter reading. How much? 30ft (~8m) / mB (hPa) the difference to standard altimeter of 1013,25 hPa, is -30,25hPa. -30,25*30= -907,5ft. Subtract this altitude from pressure alt, results in QNH Alt. 8500ft-907,5ft=7592,5ft. With Std Alt and OAT (calculate using a 2°C/1000ft, at 8500ft) comes to -11°C, set in your Aviat (or similar), read above 7600ft QHH alt, true alt on the outer scale: 7300ft.

• Wow, that's quite different from the answer that Jeppesen gave (see question). May 5, 2022 at 18:26