SimConnect sea level pressure is real-world METAR altimeter pressure?

I wrote a small program that automates the comparison of the in-sim atmosphere to real-life METARs using SimConnect. When I run the program I get some odd readings for sea level pressure and ambient pressure.

I expect to see the sea level pressure in the sim and the real METAR to be close. Likewise I would expect the ambient pressure in-sim and the METAR altimeter to be close. Instead it looks like the real-world altimeter pressure is being used as the in-sim sea level pressure.

Am I reading the pressure values from the correct SimConnect vars?

Here are the SimConnect values I use from reading the atmospheric data using Ruby (code here):

    SimConnect.add_data(1, "Absolute Time", "seconds")
    SimConnect.add_data(1, "Plane Alt Above Ground", "feet")
    SimConnect.add_data(1, "Plane Latitude", "radians")
    SimConnect.add_data(1, "Plane Longitude", "radians")
    SimConnect.add_data(1, "Ambient Precip Rate", "millimeters")
    SimConnect.add_data(1, "Ambient Precip State", "mask")
    SimConnect.add_data(1, "Ambient Pressure", "millibars")
    SimConnect.add_data(1, "Ambient Temperature", "celsius")
    SimConnect.add_data(1, "Ambient Visibility", "miles")
    SimConnect.add_data(1, "Ambient Wind Direction", "degrees")
    SimConnect.add_data(1, "Ambient Wind Velocity", "knots")
    SimConnect.add_data(1, "Ambient In Cloud", "bool")
    SimConnect.add_data(1, "Sea Level Pressure", "millibars")

Here is my program’s output:

Station: CYYZ
Measure     METAR       Simulator

temp        -4.0        -3.0
dewpoint    -10.0       NaN
wind_dir    260.0       100.0
wind_speed  11.0        6.0
visibility  15          11
altimeter   1017.0      997.0
SLP         1018.1      1017.6

Station: KDTW
Measure     METAR       Simulator

temp        -5.0        -5.0
dewpoint    -10.0       NaN
wind_dir    240.0       100.0
wind_speed  10.0        6.0
visibility  10+         10
altimeter   1022.1      998.5
SLP         1022.9      1022.0

Station: KORD
Measure     METAR       Simulator

temp        -4.4        -4.0
dewpoint    -12.2       NaN
wind_dir    270.0       100.0
wind_speed  9.0         6.0
visibility  10+         14
altimeter   1023.8      999.3
SLP         1024.8      1023.7

METAR gives a QNH, which is a sea-level pressure, not an ambient pressure. Ambient pressure is sometimes given by some ATIS as a QFE.

In your examples, CYYZ, QNH or sea-level pressure is 1017.6 hPa in the sim, and the QFE or ambient pressure shows 997 hPa. That’s a difference of 20.6 hPa or 556.2 feet and that’s approximately the elevation of CYYZ.

In other words, if you set the ambient pressure on your altimeter, it will show a reading of 0. If you set it to the QNH, or sea-level pressure, it will show the elevation.

QNH is not sea level pressure. It’s calculated from the field elevation, ISA lapse rate (that altimeters use), and the ambient pressure at the field, to ensure the altimeter reads the correct value on the ground at the field, even when the lapse rate is different to ISA (i.e. when the temperature is above or below ISA). For higher altitude fields in hot or cold conditions this can make the QNH quite different to the theoretical “sea level” pressure.

Incidentally, this also explains why it’s sometimes necessary to correct altitudes, relative to the field elevation, in cold weather to ensure terrain/obstacle clearance when flying instrument procedures in the real world.

You are very correct.

1 Like

If the Sea Level Pressure SimVar is not QNH, then which SimVar is QNH?