`Disclaimer``: This essay has no official sanction and does not
represent anyone's opinion other than mine; it certainly is not
attributable to any organization or anyone within my organization
other than me. Its original incarnation was several years ago, in a
galaxy far, far away.`

`Summary``: As many of you may not know the details of the NWS
algorithm for computing the winds, I am going to supply a brief
summary of the method and its history. Then I'm going to show how
absurd it is to be doing wind computations in this superannuated way
at the current time. In the process, I will describe a simple method
for processing winds that takes advantage of the current system for
saving the information needed to compute the winds. Finally, my
proposed method will be applied to a wind profile from the Norman,
Oklahoma sounding site and compared to the NWS method. I'll let you
be the judge of the results. Comments are welcomed via e-mail at
cdoswell@earthlink.net.`

`Click on the small versions of the figures to
see full-sized versions.`

Basically, the wind information in NWS soundings is found by tracking the sonde via a radiotheodolite. The radiotheodolite is a system for tracking the balloon's radio signal. This is in principle the same process used in doing "pilot balloon" (or "pibal") observations - an observation system that was dropped by the NWS sometime in the late 1960s or early 1970s. An optical theodolite (used for manual balloon tracking during pibal is sort of like a surveyor's transit; by keeping the balloon centered in the cross hairs of the theodolite, the azimuth and elevation angles to the balloon are tracked and recorded at regular intervals. A radiotheodolite does all this automatically, printing out and recording azimuth and elevation angles.

A little elementary geometry:

says that if you've obtained azimuth and elevation angles, this is
not enough information to fix the position of the sonde (or pibal) in
3-d space. In order to do so, you need either the height of the sonde
(or pibal) or the slant range. For a pilot balloon, it is assumed
that each balloon rises at the same rate and its height at intervals
is simply entered from a table. Of course, with *two*
theodolites tracking the balloon and recording azimuths and
elevations simultaneously, it's possible to dispense with this
assumption. Proof of that is left to the reader, if a proof is
required by that reader.

For the rawinsonde, the height computed from the hypsometric calculations is used to determine the heights of pressure levels, as described in standard textbooks. If a rawinsonde is equipped with a "transponder," it is possible to determine the slant range by the elapsed time it takes to send a radio signal to the sonde and for the sonde to return a signal to the tracking system, thereby eliminating the need for the assumptions used in hypsometry.

Now, let the x-coordinate be the eastward-pointing axis on Fig. 1, and the y-coordinate with the northward pointing axis. Further assume the "ordinary" rawinsonde case (no transponder) so that the "knowns" are the two angles and the height, H. In order to determine the wind, the horizontal position as a function of time must be known. The slant range, R, is found from H by

and then the distance to the horizontal projection point of the balloon, r, is simply

Knowing r, the x-y coordinates of the balloon are given by

Obviously, then, the speed of the balloon's horizontal movement (assumed to be equal to the wind, so that the balloon is stationary with respect to the air at any level) is given by the time derivative of its (x-y) coordinates:

noting that

Using these equations and the measured time changes in sonde height, azimuth, and elevation, we can obtain the (x,y) component velocities of the wind. These can be converted to speed, S, and direction, D, of the wind by

This is all abstract to this point. How are these things actually done in the NWS? Consider the "track" of the sonde on the surface

This shows locations plotted at regular intervals in time along the track, so the speed is associated with the distance traveled during that time and the direction is along the line between points. As seen in the figure, there is reason to suspect a certain amount of "noise" in the data, due to various sources of uncertainty in the measurements. Hence, it would be reasonable to smooth the data somewhat.

Back in the old days, position information was recorded every minute (60 seconds, in case anyone has totally lost their memory) and the smoothing method basically consisted over doing 2-minute overlapping "averages" by the method shown:

This process resulted in winds at one-minute intervals that represented a sort of "average" over a two-minute period; these became known as the "minute winds" in NWS jargon.

From the "minute winds" in a rawinsonde an interpolation procedure
(the nature of which is poorly-documented and certainly not known to
me) gave winds at "standard" levels, typically one or two such height
levels referenced to the ground (hence, "AGL," standing for "above
ground level) and then reverting to heights above mean sea level
(MSL), first at 1000-foot intervals, then at 2000-foot intervals, and
finally at 5000 foot intervals. So a sounding at a station with a
height of 3300 feet above mean sea level might report at some
"1^{st} standard level AGL" (the exact procedure for
selecting this 1^{st} standard level is not known to me) like
3500 ft (MSL), then at 4000, 6000, 7000, 8000, 9000, 12 000, 14 000,
16 000, 20 000, 25 000 ... foot levels MSL. These winds would appear
in the "PPBB" section of the sounding report. The reason 5000, 10
000, 18 000, ... foot levels are missing is because those winds are
assumed to be similar to the reported winds (also interpolated from
the "minute winds") at 850 mb, 700 mb, 500 mb, ...; i.e., the
mandatory pressure levels that appear in the "TTAA" part of the
sounding report.

This procedure was implemented when soundings were worked up totally by hand. The wind information was plotted by hand on a plotting board that resembled Fig. 2 and some special devices enabled a technician to extract the "minute winds" directly from that plot. There were various table look-up and slide rule-type devices used in the workup of the sounding, and a comparable procedure was used for pibals.

Note that there are details in this discussion that have been omitted. The procedure for the "averaging" to obtain the "minute winds" changes somewhat, depending on what heights are involved, and so on. These details are not considered to be very important in what follows.

During the conversion to the automated radiotheodolite (ART)
procedure (done via a computer) for working up a sounding, the
foregoing procedure was simply encoded verbatim into the program that
works up the sounding. This "freezing" of a procedure during a phase
of automation is typical of the NWS approach to automation. Among the
changes instituted, however, was the *recording* of data at
6-second intervals during the sounding. Thus, there was ten times the
information available in any given sounding compared to the previous
1-min information; specifically, ten times the frequency of reporting
azimuth and elevation angles (as well as sonde heights), the
information used in working up the winds.

Rather than changing the wind computational procedure to reflect this new wealth of information, the NWS chose to retain the procedure described above! However, there has been one minor concession in the calculation: consider

showing the time series of 6-second observations. The 6-sec
interval data points either side of the 1-min values are used to
compute *average* position information at the 1-min interval
points to be used in the standard method. Hence, the "new" scheme
only ignores 70% of the 6-sec data. This seems rather wasteful, but
it could have been worse; they might have ignored 90% of the 6-sec
data!

As already noted, this choice is a reflection of the "this is the
way we've always done things" philosophy that seems to drive most of
the automation process. It seemed to me that a whole array of
smoothing techniques could be applied to the 6-sec data that would
not have been sensible with 1-min interval recording. Therefore, I
was interested in seeing what might happen if a scheme were devised
for wind processing that used **all** the 6-sec wind information,
but filtered the position data before computing the winds. Therefore,
I secured a 6-sec interval data set from a sounding (Ascent 1302) at
Norman Oklahoma (on 1200 UTC, 17 September 1991) to use as a test,
provided to me by the staff at the NWS Forecast Office before the
6-sec data were lost.*

*

Once I had the data, I chose to use a running Gaussian time filter, with relative weights defined by

where n is the number of 6-sec data points either side of the current point (n=0 at the current point) and l is the shaping parameter, set equal to 6.0. Since the radiotheodolite has a searching pattern to maintain a track on the balloon, the pointing information recorded has a high frequency cycle imposed on it that is attributable to the searching algorithm. Moreover, there is some noise inherent in the measurements that should be filtered out. This relative weights using this filter are shown in

A cut-off value of n=12 is used, somewhat arbitrarily, as a point beyond which the weighting has become negligible. At n=13, the relative weight is down from a value of 1.0 at n=0 to a value of 0.00915, which is less than 1% of the central value. The actual weight used during the analysis is the relative weight divided by the sum of the weights (~10.6), to avoid adding a bias to the filtered field. A Gaussian filter has a Gaussian response function; Gaussian filters form the basis of a lot of meteorological data analysis (see, e.g., Caracena et al. 1984). The choice of a Gaussian filter function is more by convenience than by any compelling advantage of Gaussian smoothers over many other possible choices.

In order to deal with the beginning of the time series, the input data to the filter are simply artificially reflected about time t=0 back to 12 time intervals less than t=0, and the filter is applied to the artificially extended time series. Note that (x,y) values are computed from the height and angle data first, and the filter is applied to the (x,y) position data that will be used in the wind computations according to the analysis in section 1. Since the test data were not analyzed through the full depth of the sounding, the time series of observations was extended forward to 12 points beyond the last analyzed time.

Note that the complex trigonometric analysis done in section 1 is not necessary to compute the winds once (x,y) coordinate positions are obtained at 6-sec intervals. To find the (u,v) wind components, only simple time differencing is necessary. I used a simple backward differencing scheme described by

This process means that *all* of the 6-sec data are used and
winds can be obtained at the same interval as the data collection:
6-sec winds. For comparison, the current NWS algorithm was used with
the same data (unsmoothed) and in the next section a comparison of
the results will be shown.

To illustrate the nature of the position data, a plot of the (x,y) coordinates is shown in

with the smoothed position data superimposed on the raw data. To the resolution of the plot, there is little discernible difference, so the smoothing has only a very small effect on the inferred surface projection of the sonde trajectory. Obviously, this is an indication that things are going rather well. The greatest changes attributable to the smoothing are early in the flight.

Next, consider the time series plot of the wind components in

As shown by the superimposed points based on the current NWS
algorithm, the 6-sec winds are quite compatible with those produced
by the current NWS scheme, but show much more detail. One point is
noted on the figure where the NWS scheme seems to have been
victimized by some sort of noise near one of the "one-minute" points
that the 12-sec smoothing was unable to handle. Thus, the 6-sec winds
are actually *smoother* than the current method can provide. I
think it's obvious that a lot of the detail in the winds has been
lost. Naturally, to what extent this detail is credible is another
issue, not to be explored here.

This is even more apparent in the vertical wind profile plot of the winds

By using only a small fraction of the data, virtually all of the
peaks and valleys in the wind profile have been truncated. Recall
that the winds provided in the WMO-encoded sounding transmitted
routinely (i.e., data in the "TTAA-PPBB" format) are determined by
interpolation to "standard" levels from the "one minute" winds,
*probably* by a simple linear interpolation scheme (no
documentation of the process is available to me). Thus, **the wind
profile determined by using the transmitted wind data is a
second generation product that would be even more inferior in terms
of detail than what this plot shows**.

An interesting viewpoint is provided by comparing hodographs

Whereas it might be quite difficult to discern the behavior of the hodograph from the "one minute" winds, the 6-sec winds are both smooth and detailed. Imagine the loss of structure associated with the interpolation to "standard" levels!

What I've done with this exercise, in my opinion, is the following:

- shown that winds computed from the 6-sec data can be compatible with the winds derived from the old NWS scheme that creates 1-min winds,
- shown that smoothing the (x,y) position data with a filter provides resultant winds that are: (a) not as prone to noise problems as the NWS method, and (b) characterized by more useful detail than the NWS method,
- throwing away 70% of the observations is a waste of valuable information.

I invite readers of this diatribe to offer comments, criticisms, and suggestions.

NOTE: when and if the winds are computed using GPS systems, this whole essay becomes obsolete.