The Wallaby Ranch

Thermal Index Report Generator

by Kevin Ford


The Wallaby Ranch uses this tool to help predict soaring conditions.
Any questions on how to use it just email the ranch.

Date: Mon, 12 Aug 1996 13:04:20 -0500
From: soar@csrp.tamu.edu (Kevin Ford)
To: gloverdh@gate.net
Subject: Upper Air Data E-mail server information

                       Thermal Index Report Generator
                                   (ti)

                                    by
                                Kevin Ford

                              updated 6/19/96



    ====================  How to request reports  ==================== 

RAOB weather reports can be obtained by sending an e-mail message to

        soar@csrp.tamu.edu

Indicate the type of information you want in the subject line.  Currently,
the following subject lines are accepted:

INFO            request this file
SOURCE          request thermal index program source code (in C)
UPA12           request the latest 12Z RAOB data, in raw format
UPA00           request the latest 00Z RAOB data, in raw format
anything else   request a thermal index report

The text of the message contains various lines which indicate the specific
information required.  These lines may occur in any order.
The following line is required for all requests:

   ReturnAddress: you@your.address

This is the address that the requested information will be sent to.  If the
address contains any '!' characters, please precede them with a backslash
'\' character, or the script will not run properly.
Compuserve users make sure to change the comma to a period in your address.

Requests for RAOB data or thermal index reports must have the line:

   UpperStation: id

where id is the three or four letter identification of the sounding station.
Only one station may be listed in each request to the server.
A list of stations that the server recognizes is given later in this file.

Request for thermal index reports must, in addition, contain the next
line:

   MaxAltitude: maxalt

maxalt is the maximum altitude you want the thermal index
calculated to, in feet. *** Don't put in any commas.

To obtain the thermal index reports, one of the following lines must be
present:

   SurfaceStation: id

or

   ForecastHigh: num

Here id is the three or four letter identifier for the city that the forecast
high temperature is taken from.  A list of cities that are recognized by
the server is given later in this file.  num is the forecast high temperature
in Fahrenheit.  If both of the above lines appear, the line with
ForecastHigh will be used.  If neither line appears, or the forecast high for
the city listed is not available, you can still use the trigger temperature
column to evaluate the soaring outlook (see the examples below).


Example.  If I wanted a thermal index report for FWD (Fort Worth, TX)
using the forecast high from AUS (Austin), to 18,000 feet, the text of
the message would be

UpperStation: FWD
SurfaceStation: AUS
MaxAltitude: 18000
ReturnAddress: ford@math.utexas.edu

** NOTE ** 

The ids for the sounding station and surface forecast MUST be in uppercase.
Most everything else is case insensitive.

-- Errors --

If your mail bounces, the report never arrives, or you get a message like

      ti error: XXX data not found

this could mean several things:

 1) You specified your e-mail address incorrectly. 
 2) Your message is not in the proper format.  All of the keywords, like
    UpperStation must be spelled correctly, and be followed by a colon.
 3) The data you requested is simply not available at that time.  The
    upper air RAOB data is usually not available on the computer until one
    hour after the measurements were taken.  You can try again later, or
    try a different station.
 4) You have discovered a bug in my program.

For questions, comments or bug reports, send mail to me at

        ford@math.utexas.edu

*** Do not send anything except server requests to soar@csrp.tamu.edu. ***


====================  General Information  ==================== 

The thermal index reports consist of a tabular list of the sounding data,
plus the thermal index calculations depicted in tabular form and
graphically.  If run between 1200Z and 2359Z, the report will be based on the
12Z sounding data.  Otherwise it will be based on the 0Z data, using the
forecast high temperature for that day (if the line with SurfaceStation:
is used), or the actual high temperature listed in the line with
ForecastHigh: if this is used.

The raw RAOB data is provided for people who want to perform their own 
calculations and/or plotting with their own programs.  Instructions on
decoding these is provided later in this file.

--- Where the data comes from ---

Texas A&M University obtains weather data from the National Weather Service
via a service provided by Alden Electronics.  Twice a day, at
0Z and 12Z, at about 150 locations in North America, weather balloons
are sent up to gather data on temperature, pressure, dewpoint, wind
speed and wind direction.  The data is usually available on the computer
within an hour after the observation.  The 12Z sounding is particularly
useful in the United States for forecasting soaring conditions. 

--- When does the data arrive? ---

The 12Z data usually starts arriving about 1245Z, but it may be until 1330Z
before some station data arrives.  For unknown reasons, sometimes certain
station data won't arrive at all.

--- Why I wrote the program ---

I like to have some idea what the soaring conditions will be like, and
the upper air sounding is the most important piece of weather information
a soaring pilot can have.  And it's not available on DUAT of from FSS.
Sure, you can get the "Winds Aloft Forecast", but this is next to useless
because 1) it's based on upper air data that is 15-18 hours old, and
2) the lowest level that the temperature is forecast is 6000 MSL in the
Eastern U.S., which is usually higher than the thermals will go.
With the morning's sounding you get the actual temperatures
and winds aloft (at 1000 foot intervals) that existed 3-6 hours before
your flight.

--- What the thermal index is ---

The thermal index at a given altitude is the difference between the
actual air temperature and the temperature that a parcel of air would have
if it started at the surface and rose adiabatically (as it does in a
thermal) to that altitude.  Negative values mean that the air parcel is at
a higher temperature than the surrounding air, and therefore the air will
continue to rise.  The altitude for which the t.i. reaches zero can be
used as an approximation for the maximum height of thermals for the day.
The maximum altitude a sailplane may reach may be lower.  Some people use
the threshold t.i. value of -3 to estimate the highest they will be able 
to fly.  Due to continuous mixing in the atmosphere, the actual difference
between a rising air parcel and the surrounding air is usually not more
than .1 C, however.  Therefore the t.i. value is not very useful in determining
thermal strength.  The maximum height of convection is more important.


--- What good is the 0Z sounding data? ---

The 0Z sounding data can tell you much about the soaring conditions that
occurred that day.  The convection during the day mixes the atmosphere,
and so you will see the actual lapse rate very close to the dry adiabatic
lapse rate from the surface up to some altitude.  That altitude is either
cloudbase or the maximum thermal height.  This can be very useful for 
evaluating days you didn't fly, especially blue days.


====================  TI Program Output  ==================== 
--- Thermal Index reports ---

The following is a sample thermal index report:

Forecast high taken from DFW
   2-APR-1996 12 UTC  Soaring report from FWD upper air data.
   Forecast high: 77 F; estimated cloud base:12300 feet AGL.

                    === Raw Upper-Air Data ===
Feet MSL:    643   1511   2830   5000   6647   7022  10231  11190  13036  17692
Pres mb:     996    965    920    850    800    789    700    675    629    524
Temp C:      9.8   14.6   13.0   10.6    8.0    9.2    2.2    0.0   -2.3  -13.5
VirT C:     10.3   15.0   13.4   11.0    8.3    9.5    2.4    0.2   -2.1  -13.4
DewPt C:    -3.2   -6.4   -7.0   -9.4  -14.0  -13.8  -20.8  -23.0  -24.3  -33.5
Wdir@kts:               185 25 180 11               230 12                     

       === Interpolations (temps in deg. F, altitudes in feet MSL) ===
  MSL  *TI* Wdir@kts trig  VirT  2.2 degrees/division ("`": Dry Adiabatic)
-----  ---- -------- ---- . ---- -----------------------------------------
10000   5.3  230  12   92 | 37.2        `     :
 9500   4.9            91 | 39.2          `     :
 9000   4.5  215  10   90 | 41.2           `     :
 8500   4.1            90 | 43.2             `    :
 8000   3.8  195   8   89 | 45.2               `    :
 7500   3.4            88 | 47.2                 `   :
 7000   2.9  200   8   87 | 48.9                   `  :
 6500   0.5            83 | 47.3                    `:
 6000  -0.2  185   9   82 | 48.8                      :
 5500  -0.8            81 | 50.3                       :`
 5000  -1.5  180  11   80 | 51.8                        : `
 4500  -2.4            78 | 52.8                         :  `
 4000  -3.3  195  17   77 | 53.8                         :    `
 3500  -4.3            76 | 54.8                          :    `
 3000  -5.2  190  22   74 | 55.8                           :     `
 2500  -6.1            72 | 56.9                            :      `
 2000  -6.9  175  31   71 | 58.0                            :        `
 1500  -7.9            69 | 58.9                             :         `
 1000 -12.1  165  15   62 | 54.1                          /              `


   === Complete Upper Air Data ===

   P(mb)     H(ft)    Tv(C)    T(C)    DP(C)   wind dir  wind spd

    996.0      643     10.3      9.8     -3.2
    965.0     1511     15.0     14.6     -6.4
    920.0     2830     13.4     13.0     -7.0      185       25
    850.0     5000     11.0     10.6     -9.4      180       11
    800.0     6647      8.3      8.0    -14.0
    789.0     7022      9.5      9.2    -13.8
    700.0    10231      2.4      2.2    -20.8      230       12
    675.0    11190      0.2      0.0    -23.0
    629.0    13036     -2.1     -2.3    -24.3
    524.0    17692    -13.4    -13.5    -33.5
    500.0    18863    -13.0    -13.1    -33.1      225       13
    400.0    24292    -26.7    -26.7    -43.7      260       11
    300.0    30870    -43.5    -43.5    -57.5      270       18
    268.0    33321    -50.5    -50.5    -62.5
    250.0    34797    -53.9    -53.9    -65.9      285       14
    200.0    39400    -62.9    -62.9    -72.9      285       34
    161.0    43797    -61.5    -61.5    -71.5
    150.0    45249    -57.7    -57.7    -68.7      280       56

- - - - - - - - - - - - - - - - - - - - - - - - - - - - 
The header includes the date/time of the observations, the station used,
the forecast high temperature used in the t.i. calculations, and a
cloud base estimate.  The cloud base estimate is based entirely on the
dewpoint depression (temp minus d.p.), and thus represents the height
that clouds will form IF they form at all.  For the above report, it is
unlikely that cumulus clouds will form.

The first table is raw data for the lowest 10 levels reported.  VirtT
is the virtual temperature, and is explained below.

The next table shows the TI values, wind data and trigger temperature at
500 foot intervals.  The trigger temperature is the ground temperature
which will produce a TI value of -3 at that altitude.

The graph at right shows the temperatures aloft as well as a dry adiabat
line (` characters) starting at the surface forecast high temperature.
This particular graph shows that the inversion at about 6000 MSL will
effectively cap the thermals.

The last table is raw data: P = pressure in millibars, H = height in feet,
Tv = virtual temperature in degrees Celcius, T = temperature in degrees
Celcius, DP = dewpoint in degrees Celcius, wind direction in degrees,
wind speed in knots.

--- The Cloudbase Estimate ---

The cloudbase estimate is based on taking the average dewpoint in the lowest
500 meters (1600 feet) of the atmosphere as the surface dewpoint.
The cloud base (in thousands of feet) is then estimated as the dewpoint
depression (temperature minus dewpoint) in F divided by 4.4.

--- Virtual Temperature ---

The presence of water vapor in the air makes air less dense than dry air at
the same temperature and pressure, the difference depending on the mixing
ratio, or water to air ratio (by weight).  The virtual temperature is the
temperature a dry parcel of air would have at the same pressure and density.
Since the buoyancy of an air parcel depends entirely on the density, it
makes sense to calculate the thermal index based on the virtual temperature
rather than the actual temperature.  The difference, however, is usually
small, being less than 1 degree in dry conditions, and only 4 degrees
in extreme humidity (dewpoint >70 Fahrenheit).

====================  Reading raw RAOB data  ==================== 

The raw data that was used to produce the above report is listed below:
(actually this is not the "raw" data, but is a result of some pre-
processing.  The actual raw data is very similar, though).

FWD
00164 X X
92819 13070 18525
85525 10670 18011
70118 02273 23012
50575 13170 22513
40740 26767 26011
30941 43564 27018
25060 53962 28514
20200 62960 28534
15378 57761 28056
10629 64560 28041
88200 62960 28534
77999
 X X X X X X X X X X X X X X X X
996 09863
965 14671
800 08072
789 09273
675 00073
629 02372
524 13570
500 13170
268 50562
200 62960
161 61560
150 57761
100 64560
X
00 16004 01 16515 02 17531
03 19022 04 19517 05 18011
06 18509 07 20008 08 19508
09 21510
10 23012 12 21517 13 21019
14 22520 15 22519 16 22518
19 22512
20 22010 24 26012 25 26013
28 24511
30 26016 35 29014
46 28057
50 27547 53 27544

Most of it is easy to figure out by comparing it to the above report.
The data comes in three sections: mandatory levels (first group, before
the line of X's), significant levels (next group, before the line with the
single X), and wind levels.

Each mandatory level has three blocks of numbers, with an X meaning missing
data.  For example, the sequence

   70118 02273 23012

means at the 700 mb level, the altitude is 3118 meters, the temperature is
2.2 C, the dewpoint depression is 23 C, and the wind is 230 at 12 knots.
The 00 level is 1000 mb, and the altitudes are decoded differently
for each level.  My program doesn't use these, however, since they can
be easily calculated from the other data values.

Temperatures ending in an odd tenth are negative, and those ending in an
even tenth are positive.  The two digits comprising the dewpoint depression
(dpd) are decoded as follows: if code<=55 then dpd=code/10 else dpd=code-50.
e.g. the digits 42 mean a dpd of 4.2 C and the digits 62 mean a dpd of 12 C.
The final two levels, which start with 88 and 77, are the tropopause level
and maximum wind level, respectively.

The significant levels consist of two blocks of number each: e.g.

   965 14671

means at the 965 millibar level the temp is 14.6 C and the dpd is 21 C.
The last one is followed by an X.

The winds aloft section also consists of two blocks of numbers per level; e.g.

   09 21510

means at 9000 feet MSL the wind is 215 at 10 knots.  The 00 level is the
surface.
Also you will need the list of valid upper air and surface stations. The file is too big to put on one long page.