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.