Thermal Index Report Generator

(ti)

by
Kevin Ford

updated December 2022

How to request specific reports via WWW

A specific report can be requested by appending to the Web address a list of data variables; e.g.
 
http://www.soarforecast.com/ti.cgi?SUBJECT=TI&Upperstation=ILX&Surfacestation=KCMI&Forecasthigh=&MaxAltitude=10000
which requests a thermal index report from station ILX using forecast high temperature from KCMI and displaying data up to height 10000 MSL, with no use-entered hight temperature.

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 does the data come from?

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 did I write 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 is a thermal index?

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.

The Complete Report

The following is a sample complete 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   87 | 37.2        `     :
 9500   4.9            86 | 39.2          `     :
 9000   4.5  215  10   85 | 41.2           `     :
 8500   4.1            85 | 43.2             `    :
 8000   3.8  195   8   84 | 45.2               `    :
 7500   3.4            83 | 47.2                 `   :
 7000   2.9  200   8   82 | 48.9                   `  :
 6500   0.5            78 | 47.3                    `:
 6000  -0.2  185   9   77 | 48.8                      :
 5500  -0.8            76 | 50.3                       :`
 5000  -1.5  180  11   75 | 51.8                        : `
 4500  -2.4            73 | 52.8                         :  `
 4000  -3.3  195  17   72 | 53.8                         :    `
 3500  -4.3            71 | 54.8                          :    `
 3000  -5.2  190  22   69 | 55.8                           :     `
 2500  -6.1            67 | 56.9                            :      `
 2000  -6.9  175  31   66 | 58.0                            :        `
 1500  -7.9            64 | 58.9                             :         `
 1000 -12.1  165  15   57 | 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 for which the dry adiabat intercepts the temperature graph, i.e the temperature which will produce a TI value of zero 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).

Acknowledgement

Special thanks for help in setting up this server to John Kemp, Ken Bowman, Neil Smith, Gary Helmstetter, Mike Abernathy, and to Bill Dolson for hosting the website from 2002 to 2022.