Upper Air Data Codes

The Radiosonde and Upper Wind Codes

Guess what? Upper-air reports also come in their own, very special format. Pressure, height, temperature, humidity, and wind information is reported to the ground every 6 seconds from a radiosonde. Then the data is reported (i.e. interpolated) and specific mandatory and significant levels for temperature and humidity. Actually, the radiosonde code (Federal Meteorological Handbook, or FMH #4 ) and the upper wind code (FMH #6 ) are two separate codes which are often included in the same report. We will look at the radiosonde code first, and describe how it is constructed. Information is relayed via radio signal to the ground from the baroswitch, thermistor, and hygristor, as discussed in class. A tracking system records elevation and azimuth angles so that as the balloon ascends at a nearly constant rate of 1000 ft/min, simple geometry can be used to discern the wind speed and direction. A list of currently-received upper air stations is also available. These observations are important to provide information about vertical strructure of the atmosphere...called a skew-T log-p diagram.

The Radiosonde Code

Mandatory Levels

There are twelve levels at which data must be reported in each report, provided the radiosonde and balloon make it that far! They are:

	pressure	approximate
	level (mb)	height (m, MSL)

	surface		     0 (AGL)
	1000		   100
	925		   800
	850		  1500
	700		  3000
	500		  5500
	400		  7500
	300		  9000
	250		10,500
	200		12,000
	150		14,000
	100		16,000
	trop		(variable)

The heights indicated above are approximate geopotential heights for each level. For the lower half of the atmosphere (lowest 500 mb), you can often use a relationship that pressure changes with respect to height are approximately 10 mb per 100 m of elevation change. This stems from the hydrostatic relationship:

where p is pressure, z is height, [[rho]] is air density, and g is the acceleration due to gravity (9.806 m s-2). Using appropriate values for atmospheric density (try it out using the gas law!) of about 1.0 to 1.2 kg m-3, we find that [[partialdiff]]p/[[partialdiff]]z ~ -10 mb/100 m.

The tropopause and surface will of course have variable pressures and heights, depending on the meteorological situation. There may also be an additional "mandatory" level, namely a level of maximum wind, which is independent from the tropopause. Before we begin to decode the data, let's define some terms, as used by the National Weather Service:

tropopause: the first (e.g. lowest) level at which the lapse rate decreases to 2 deg. C/km or less and the average lapse rate from this level to any higher level withing the next higher 2 km does not exceed 2 deg. C/km. Rules: 1) The ascent must reach 200 mb to determine it and 2) once a tropopause is determined, you must have valid data for 2 km above that level. If no tropopause is determined, encode 88999.

maximum wind level: any level with a wind speed of 60 kt or greater whose wind speed is 20 kt faster than any level on either side of it. Rules: 1) Nothing is coded here if ascent fails to reach 500 mb. 2) If no max wind group is observed above 500 mb, encode 77999. 3) You may encode a secondary maximum wind group if another meets the criteria. 4) Report wind shear (difference in vector wind) 3000 ft below and 3000 ft above layer as 4vbvbvava.

Let's look at a sample message and see if we can decipher the information (FMH #4 should be consulted for full decoding details).

The message below is the entire radiosonde coded message for a station...we will decode the complete upper wind code message later. Then we will look at it line-by-line to decode it.

 TTAA 67121 72214 99019 24003 36003 00187 23803 08511 92872 22205 18017
85605 18221 17516 70245 09861 15514 50595 06969 14501 40766 17363 18004
30975 32156 12002 25101 42356 30503 20248 54356 32514 15427 65156 35013 
10668 72556 04025 88113 73356 03024 77999 51515 10164 00051 10194 15515 17013=

 TTBB 67120 72214 00019 24003 11000 23803 22979 24603 33891 19412
44885 20630 55784 13816 66737 12257 77714 10457 88706 10462 99642
04661 11610 01250 22569 01756 33561 02519 44557 02756 55549 03160
66539 04345 77527 05356 88516 05763 99502 06763 11496 06771 22490
07562 33482 08173 44473 09362 55442 11772 66408 16370 77387 19361
88381 20356 99378 20557 11376 20564 22370 21156 33358 22759 44352
23567 55320 28167 66293 33544 77271 37557 88175 61756 99113 73356
11100 72556 31313 01102 81102=

 PPBB 67120 72214 90012 36003 15017 17517 90346 18517 18016 17015
90789 17012 17512 17013 91124 15014 15513 16512 916// 16507 9205/
14001 18004 9305/ 09501 29002 94039 32513 32013 01017 9504/ 02019
03024=

 TTCC 67125 72214 70881 66757 09520 50087 60358 08536 88999
77999=

 TTDD 6712/ 72214 11978 72556 22838 71156 33792 67157 44339
54163=

 PPDD 67120 72214 95579 04025 04525 08526 96247 09518 07020 07535
9705/ 09535 08535=

First, note the presence of "TT" and "PP" groups - TT is the symbolic form of the radiosonde coded message, PP is the symbolic form of the upper wind coded message. Part A of the Radiosonde Code (TTAA) contains mandatory level information from the surface to 100 hPa. We will decode it first, after viewing its symbolic form.

The symbolic form of the message in general is:

TTAA YYGGiD 99PoPoPo TTTDD dddff 00hhh TTTDD dddff 92hhh TTTDD dddff
PmPmhhh TTTDD dddff ... 10hhh TTTDD dddff

88PTPTPT TTTDD dddff 77PvPvPv 4vbvbvava 51515 {other stuff in 101 groups}

{date/time of ob group}

Line 1 decode:

TTAA 67121 72214 99019 24003 36003 00187 23803 08511 92872 22205 18017
YYGGiD = 67121; 67 is > 50 so day of month = YY-50 = 17 (data from the 17th).

GG=12 means that the sounding is a 12 Z (1200 UTC) sounding. iD=1 (whoopee!).

IIiii = 72214; WMO Block # is 72, which is US civilian mainland station, the particular station is 214, which is Tallahassee FL (TLH).

99019 is the surface pressure data; station pressure is 1019 mb.

24003 is the surface Temperature and dew point depression data, which are given to the nearest tenth of a degree C; TTT=240 so T=24.0 C, while the depression is 0.3 C, which makes Td = 24.0 - 0.3 = 23.7 C.

36003 is the wind group at the surface (actually 10 m winds), 360 degrees (N) at 3 kt.

The next grouping is for mandatory levels above the surface, the first of which will usually be 1000 mb. It is indicated by the indicator group 00.

00187 gives the 1000 mb height (hhh) as 187 geopotential meters MSL (above mean sea level).

23803 gives the temperature at 1000 mb as 23.8 C, and the depression is 0.3 C.

08511 gives the winds as 11 kt from 85 degrees (almost due east); wind directions are rounded to the nearest 5 degrees for all radiosonde observations.

92872 is for the next mandatory level, 925 mb. The height there is 872 m MSL.

22205 is for the 925 mb temperature of 22.2 C, and the depression of 0.5 C.

Line 2 decode:

85605 18221 17516 70245 09861 15514 50595 06969 14501 40766 17363 18004
Henceforth for part A, the indicator PmPm gives the next sequential mandatory level for which data follow. According to the list above, the next level is 850 mb. So therefore 85605 indicates an 850 mb height of 605 m? Surely it can't be smaller than 925 mb's height! Indeed, for 850 and 700 mb levels, heights are reported in m with the thousands place omitted! Since 850 is usually near 1.5 km, iall that is needed is a 1 in front to make the height 1605 m.

18221 indicates a temperature (at 850 mb) of 18.2 C and a depression of 2.1 C.

17516 indicates a wind of 175 degrees, at 16 kt.

70245 indicates a 700 mb height, but the 700 mb surface is normally found near 3 km, so what do we put in front of the 245? Here, you must place a 2 or 3, depending on which value will yield a number closer to 3 km. Exceptions may be made in very cold air or deep cold core lows on occasion, or for deep tropical cyclones, I suppose.

09861 indicates a temperature of 9.8 C, and for the first time we encounter DD values > 50; when DD &50, T - Td = DD-50; therefore the depression here is 11 C.

15514 indicates an 700 mb wind of 155 degrees at 14 kt.

50595 indicates the 500 mb height; this level is the level at which heights are first reported in dekameters (dam), or 10s of meters. 595 indicates 5950 m.

06969 indicates the 500 mb temperature, and note that TTT=069, which is odd (mathematically speaking!); this means that the air temperature is < 0 C, and therefore T=6.9 C. DD is also 69, which is 69-50 or 19 C (air getting dry now!).

14501 indicates a 500 mb wind of 145 degrees at 1 kt (we must be reaching the jet stream here!).

40766 17363 18004 gives a 400 mb height of 7660 m, T = 17.3 C, T-Td = 13 C, and winds are 180 degrees at 4 kt. This should be getting easy now!

Line 3 decode:

30975 32156 12002 25101 42356 30503 20248 54356 32514 15427 65156 35013
30975 32156 12002 - 300 mb height is 9750 m, T=-32.1 C, T-Td=6 C, and winds are 120 degrees at 2 kt.

25101 42356 30503 - 250 mb data, height is 11010 (adding the 1 for the ten-thousands place!) m, T = -42.3 C, T-Td=6 C, and winds are from 305 degrees at 3 kt.

20248 54356 32514 - 200 mb height is 12480 m, T=-54.3 C, T-Td=6 C, and winds are 325 degrees at 14 kt.

15427 65156 35013 - 150 mb height is 14270 m, T=-65.1 C, T-Td=6 C, and winds are 350 degrees at 13 kt.

Line 4 decode:

10668 72556 04025 88113 73356 03024 77999 51515 10164 00051 10194 15515
10668 72556 04025 - 100 mb height is 16680 m, T=-72.5 C, T-Td=6 C, and winds are from 40 degrees at 25 kt.

88113 73356 03024 - This is the tropopause information, where PTPTPT = 113 (mb), T = 73.3 C, T-Td=6 C (is this a stuck record?), and winds there are from 30 degrees at 24 kt. The tropopause, if found, is always a mandatory level. If not found, a group 88999 is encoded.

77999 indicates that there is no maximum wind group encoded.

51515 indicates that supplementary data groups are appended to this message: 10164 00051 indicates that the group is the lifted index group, and the LI is -0.1 C, since the digits are > 50, you subtract 50 and divide by 10 to get the LI in tenths of a degree C, but it is < 0; if the digits are < 50, you simply divide by 10 to get the LI in tenths of degree C.

10194 15515 17013 indicates the mean low level (surface to 5,000 and 5,000 to 10,000 ft, respectively) winds are 155 degrees at 15 kt, and 170 degrees at 13 kt, respectively.

If the groups 10151 or 10142, they indicate a mechanical or other difficulty in completing the flight.

Since there were no valid maximum wind level data, we provide an excerpt from another report (this and all examples are from 17 July 1996 at 1200 UTC):

 88163 62163 28548 77205 33109 43247 51515 26075 40711=

88163 62163 28578 - tropopause data - 163 mb, T=-62.1 C, T-Td=13 C, winds are 285 degrees at 78 kt.

77205 33109 43247 - max wind data - at 205 mb, winds are 331 (?) degrees at 9 kt (?). Since the direction is not divisible by 5, we figure out that a 1 has been added to indicate that the wind speed reported is in excess of 100 kt. So the wind report is 330 degrees at 109 kt! The wind shear data are for 32 kt less wind 3000 ft below and 47 kt less wind 3000 ft above the level. Note: the equals sign (=) is used as a record separator to indicate end of report.

As it turns out, the balloon does not magically disappear at 100 mb, rather, it keeps on going, usually up to about 100,000 ft or better. Mandatory levels above 100 mb (normally 70, 50, 30, 20, and 10 mb) are encoded in Part C of the code (TTCC); here we continue our example. Give it a try:

Part C of the Radiosonde Code:

TTCC 67125 72214 70881 66757 09520 50087 60358 08536 88999 77999=

Significant Levels

Any time the temperature and/or moisture profile indicates a substantial variation from the U. S. Standard Atmosphere (e.g. tropospheric lapse rate of 6.5 C/km) which cannot be accounted for by the mandatory levels, or a lapse rate of temperature or dew point is changing significantly, a significant level must be included in part B of the code (usually two are given, to define the top and bottom of the layer where things are changing). The surface and the tropopause are always significant, when observed, and a mandatory level may also appear in this part of the code occasionally. All groups are coded similarly to part A and each other and we will decode only the first line below and challenge you to complete it. Part D contains significant levels above 100 mb, Part B below 100 mb.

Symbolic form for Part B of the Radiosonde Code:

TTBB YYGG0 IIiii 00PPP TTTDD 11PPP TTTDD 22PPP TTTDD ... 99PPP TTTDD

11PPP TTTDD 22PPP TTTDD ... until done, then 31313 0hhmm 8hhmm

Let's decode TLH's Part B:

Line 1 decode:

 TTBB 67120 72214 00019 24003 11000 23803 22979 24603 33891 19412
67120 is just like before - day is 67-50 = 17; time is 12 Z; forget the 0!

72214 is station number (TLH)

00019 is station pressure (1019 mb) and 24003 is T and T-Td (24.0 and 0.3 C, respectively).

11000 23803 is for first significant level; this one also happens to be a mandator level, 1000 mb, which we decoded already. Note - no wind data in TTBB part of the code!

22979 24603 is for next one, at 979 mb, where T=24.6 C and depression is 0.3 C; this level is given because T is increasing with respect to height, indicating an inversion layer in the atmosphere.

33891 19412 is at 891 mb, where T is 19.4 C, and depression is 1.2 C; the rest of the levels are decoded exactly like this. Note (there sure are a lot of these notes!) - the 00 indicator is used only once, for the surface data; once you reach 99, you repeat indicators by going to 11, then 22, etc. Here is the remainder of the TLH report for part B:

44885 20630 55784 13816 66737 12257 77714 10457 88706 10462 99642
04661 11610 01250 22569 01756 33561 02519 44557 02756 55549 03160
66539 04345 77527 05356 88516 05763 99502 06763 11496 06771 22490
07562 33482 08173 44473 09362 55442 11772 66408 16370 77387 19361
88381 20356 99378 20557 11376 20564 22370 21156 33358 22759 44352
23567 55320 28167 66293 33544 77271 37557 88175 61756 99113 73356
11100 72556 31313 01102 81102=

The only new information is the 31313 01102 81102 groupings. 31313 indicates that supplemental data are included. 01102 indicates the time that the balloon is supposed to be released (0hhmm - check to see if still true!), and the 8hhmm group is for release time of balloon from the surface, in this case at 1102 UTC. This is quite common, release times for the radiosondes are typically as early as 1 hr to 45 minutes before the actual "observation" time.

Part D of the Radiosonde Code (try it!):

TTDD 6712/ 72214 11978 72556 22838 71156 33792 67157 44339 54163=

Note that in parts C and D, pressures are given in tenths of mb and may be reported all the way up to 1 mb. Typically, we can track radiosondes to 20 mb with ease.

The Upper Wind Code

The winds aloft are coded in a different way which is easy to discern. After station/date/time information is collected for the report, a series of 9xxxx groups are listed which are followed by wind observations. All reports are either fixed regional levels or significant wind levels, and the units are in ft above ground. The code looks like this:

PPBB YYGGa4 IIiii 9tuuu dddff dddff dddff

9tuuu dddff dddff dddff 9tuuu dddff dddff

...

where PPBB is the identifier for Part B of the upper wind code (data below 100 mb), YYGG is the date/time as before (add 50 if winds are in kt, as in the US), a4 is a digit to indicate the type of instrument (0 or 4 for radiosonde), IIiii is the WMO station number, and then things get interesting (that is, if you like codes!). The 9 is the indicator of a new group of data with height information to follow. The t is the tens digit of the next n wind levels, where levels are reported at certain heights in thousands of ft above ground. [Stay with me now] The u's are the units digits, and there may be up to 3 levels of wind information which follow any 9tuuu group. Let's look at the data below from the same Tallahassee sounding - look after the 72214 for the first 9tuuu group:

t=0; u=0,1,2: at 0 ft (sfc), winds are 360 deg. @ 3 kt; at 1000 ft, winds are 150 deg. @ 17 kt; at 2000 ft, winds are 175 deg. @ 17 kt; then another 9 group follows ...

 PPBB 67120 72214 90012 36003 15017 17517 90346 18517 18016 17015
90789 17012 17512 17013 91124 15014 15513 16512 916// 16507 9205/
14001 18004 9305/ 09501 29002 94039 32513 32013 01017 9504/ 02019 03024=
03024=

A complete list of decoded winds for this report is available here.

For levels above 100 mb, we have part D, indicated by the identifier PPDD. Here is the TLH observation:

PPDD 67120 72214 95579 04025 04525 08526 96247 09518 07020 07535
9705/ 09535 08535=

Data Access on the Departmental Computer Systems

Raw Data

Where are all of these data? Raw coded data from upper air sites may be found in the following directory on the metlab machines (for local users only!; nonlocal users may refer to our WWW-implementation of the Unidata weather program and select upper air coded data to view the same material):

/export/data/upperair

To access the data files which contain these data, type:

more /export/data/upperair/YYMMDDHH*

where YY is the year, MM is the month, DD is the day, and HH is the hour (either 00 or 12 for 0000 UTC or 1200 UTC data, respectively). This puts you into the "more" editor in Unix. You can search for the station you want by entering /IIiii. Repeat your search by pressing the n key. Finally, quit your search by pressing q.

Example: Let's get the 1200 UTC data for Tallahassee from July 17, 1996:

more /export/data/upperair/96071712*

The following screen appears:

metlab>>more /export/data/upperair/96071712*

761 
UJUW2 KAWN 171200 RTD100

TTAA  67101 72381 99929 19658 22012 00062 ///// ///// 92757 19457
24022 85488 19863 29029 70130 10070 25517 50588 02572 25519 40759
16969 26518 30969 31766 24518 25096 41764 23024 20243 53362 23033
15423 64361 23533 10665 69960 24014 88111 74359 26025 77999=

TTBB  67100 72381 00929 19658 11909 22862 22791 15265 33772 16066
44714 10665 55685 11073 66652 08473 77641 09474 88604 05873 99543
02272 11521 00072 22424 13970 33363 21569 44258 40165 55196 54562
31313 04402 80931 51515 10158 10164 00091 10194 27021 27024=

PPBB  67100 72381 90034 22012 25021 27524 90567 29029 28020 26519
9089/ 26519 27019 91124 24519 24521 25523 916// 25023 92035 25517
27018 26518 928// 26015 93056 25018 23024 23024 9437/ 24535 23532
95034 25027 26525 25518 955// 24015=

TTCC  67105 72381 70878 63761 14518 50086 59562 11521 88999 77999=

TTDD  6710/ 72381 11805 70960 22695 63561 33555 62761 44457 56162
55384 53963=

PPDD  67100 72381 956// 20013 96024 18513 14020 14520 968// 11019
97014 12023 12022 09518=


833 
USUS11 KAWN 171200 RTD100

TTAA  67101 72381 99929 19658 22012 00062 ///// ///// 92757 19457
24022 85488 19863 29029 70130 10070 25517 50588 02572 25519 40759
--More--(0%)

Now type /72214 and notice as soon as you type the solidus (fancy for slash), a Search: prompt appears in the lower left. The 72214 becomes the "search-string" and you get the results desired. Repeatedly pressing n finds each subsequent location for the string 72214. Choose your search strings carefully and note that 72214 might be a valid data group for a station other than Tallahassee.

Each part of the radiosonde and upper wind code (A-D, that is) is transmitted as part of its own message, therefore the entire coded upper-air message from an individual domestic station may be found in six separate messages (four for the radiosonde code and two for theupper wind code).

Decoded Data

Decoded data files are available for GEMPAK, Weather, and McIDAS. Please refer to in-house instructions for how to access the decoded data from these packages.

Paul Ruscher 11/12/97