In the current Mode S design, two message formats are used for aircraft to communicate meteorological conditions. These messages are meteorological routine air report (MRAR) and meteorological hazard report (MHR). In this chapter, we focus on explaining the information contained in these two types of messages.
In MRAR messages, information on wind, air temperature, pressure, and humidity is transmitted. The structure of the message is shown in Table 1.1.
FIELD | MSG | MB | BITS |
---|---|---|---|
Figure of merit / source | 33–36 | 1–4 | 4 |
Status (for wind) | 37 | 5 | 1 |
Wind speed | 38–46 | 6–14 | 9 |
Range: [0, 511] knots | |||
LSB: 1 knots | |||
Wind direction | 47–55 | 15–23 | 9 |
Range: [0, 360] degrees | |||
LSB: 180/256 degrees | |||
Sign (for temperature) | 56 | 24 | 1 |
Static air temperature | 57–66 | 25–34 | 10 |
Range: [-128, +128] \(^\circ\)C | |||
LSB: 0.25 \(^\circ\)C | |||
Status (for pressure) | 67 | 35 | 1 |
Average static pressure | 68–78 | 36–46 | 11 |
Range: [0, 2048] hPa | |||
LSB: 1 hPa | |||
Status (for turbulence) | 79 | 47 | 1 |
Turbulence | 80–81 | 48–49 | 2 |
Status (for humidity) | 82 | 50 | 1 |
Humidity | 83–88 | 51–56 | 6 |
Range: [0%, 100%] | |||
LSB: 100/64 % |
The first field of the message defined the figure of merit (FOM)/source of the information. The values indicate the following:
0: Invalid
1: Inertial system (INS)
2: Global Navigation Satellite System (GNSS)
3: Distance measuring equipment-based navigation (DME/DME)
4: Very High Frequency omnidirectional range/distance measuring equipment based navigation (VOR/DME)
5–15: Reserved
For static air temperature, the encoded value can be negative. Hence, two’s complement coding (see section [sec:two_complement]) is used for encoding the value. The actual maximum range of temperature is from -80 \(^\circ\)C to +60 \(^\circ\)C.
It is also worth pointing out a discrepancy in the design. The temperature is encoded using 10 bits, where the least significant bit value should have been 0.125\(^\circ\). However, according to the official document [ICAO 2008], the LSB value is 0.25\(^\circ\). ICAO is planning to update this to 0.125\(^\circ\) in the future. However, most current implementations still use 0.25\(^\circ\).
Figure 1.1 shows the decoding of an MRAR example message.
Try it out Using pyModeS, we can decode information of BDS 4,4 messages as:
import pyModeS as pms
msg = "A0001692185BD5CF400000DFC696"
pms.commb.wind44(msg) # (22, 344.5)
pms.commb.temp44(msg) # (-48.75, -24.375)
pms.commb.p44(msg) # None
pms.commb.hum44(msg) # None
In MHR messages, different hazard condition levels are reported, such as turbulence, wind shear, microburst, icing, and wake vortex. It also includes temperature, pressure, and radio height. Table 1.2 shows the structure of the MHR message.
It is worth noting that during real flights, MHR messages are much rarer than MARA messages. Based on the tests I conducted, whenever MRAR messages are detected, most of the them only contain temperature information.
FIELD | MSG | MB | BITS |
---|---|---|---|
Status (for turbulence) | 33 | 1 | 1 |
Turbulence | 34–35 | 2–3 | 2 |
Status (for wind shear) | 36 | 4 | 1 |
Wind shear | 37–38 | 5–6 | 2 |
Status (for microburst) | 39 | 7 | 1 |
Microburst | 40–41 | 8–9 | 2 |
Status (for icing) | 42 | 10 | 1 |
Icing | 43–44 | 11–12 | 2 |
Status (for wake vortex) | 45 | 13 | 1 |
Wake vortex | 46–47 | 14–15 | 2 |
Status (for temperature) | 48 | 16 | 1 |
Sign (for temperature) | 49 | 17 | 1 |
Static air temperature | 50–58 | 18–26 | 9 |
Range: [-128, +128] \(^\circ\)C | |||
LSB: 0.25 \(^\circ\)C | |||
Status (for pressure) | 59 | 27 | 1 |
Average static pressure | 60–70 | 28–38 | 11 |
Range: [0, 2048] hPa | |||
LSB: 1 hPa | |||
Status (for height) | 71 | 39 | 1 |
Radio height | 72–83 | 40–51 | 12 |
Range: [0, 65 528] ft | |||
LSB: 16 ft | |||
Reserved | 84–88 | 52–56 | 5 |
The levels for turbulence, wind shear, microburst, icing, and wake vortex are encoded as follows:
00
: NIL
01
: LIGHT
10
: MODERATE
11
: SEVERE
As is the case for MRAR messages, the actual range of the temperature is from -80 \(^\circ\)C to +60 \(^\circ\)C, and it is encoded using the two’s complement coding.
Figure 1.2 shows the decoding of an example message. Note that in this example, only the air temperature information is included. None of the hazard conditions is reported.
Note The availability of BDS 4,4 messages is quite low. Very few aircraft’s transponders have these capabilities enabled. BDS 4,5 messages are even rarer. When such a message is transmitted, it is very common that the information in many fields is not available.