SNDSKEWT -- Plots radiosonde temperature profiles and other sounding data
   SNDSKEWT  dataset  SELECT=  <optional keywords>
Parameters:
   dataset | ADDE dataset name and absolute position; specify as
             group/descriptor.position or alias.position; only
             positive integers or ALL (all positions) are valid
             for position (def=ALL for position), however there
             is no default for group/descriptor or alias, which
             must be specified.  Dataset schemas currently handled
             are RAOB, IRAB, GRET, IHGT, RSIG, and IRSG.
Keywords:
   SELect= 'param val1 val2; param val1,val2,val3'
            Values separated by a space denote a range of values (low to
            high). Values separated by commas denote a list of specific
            values.  Returned units are always defaulted, as they must
            be converted to uniform dimensions internally for processing
            into a self-consistent sounding.  Individual selection
            conditions inside the quotes are separated by a semi-colon.

            Entire select clause must be enclosed in single quotes so
            the command line parser treats it as a single token and will
            not break it into pieces before it is sent to the server.
            Semi-colons outside the quotes indicate the end of a command.

            Note that station, day, and time are now specified in the
            SELECT= parameters and are no longer positional parameters
            or keywords.  Defaults for day and time are whatever
            station, day, or time are first encountered in the specified
            dataset that match the SELECT= conditions.  Thus, if a
            particular day or time is desired, it must be specified,
            since the first day or time returned cannot be predicted.

            Example:
              SELECT= 'IDN 72645; TIME 0; DAY 97220'
              SELECT= 'IDN 72645; DAY 97220'
              SELECT= 'TIME 3 9; DAY 96037; IDN 72645'
              SELECT= 'TIME 0; LAT=40 43; LON=80 81'

            Every atmospheric level satisfying the SELECT= parameters
            will be returned by the server.  The client then groups the
            levels by STATION, DAY, and TIME and assembles them into
            a list of raw sounding data.  The first sounding in that list
            is edited, smoothed, and interpolated, using OPT=, before
            being returned for plotting.  Selecting on LAT and LON may
            require two passes through the data as shown below

              Example:
                 SELECT= 'TIME 12; LAT=45 50; LON=90 100'
                   (pick up station ID numbers from returned sounding list)

                 SELECT= 'TIME 12; IDN 72650'
                   (use a selected station ID number from the first
                    list of returned soundings for the final plot)
   ANAlysis = text gra  | control parcel analysis display in the current
                          text and graphics frames; specify YES in 'text'
                          to list all the values in the text frame; specify
                          YES in 'gra' to plot selected values in the
                          graphics frame, as well as the EL, LFC, and LCL
                          markers in the diagram; specify NO in either or
                          both positions to suppress the output.
                          (def=NO YES displays output in the graphics
                           frame but not in the text frame)
   CENter = YES  | Forces profile to center of plot within a default
                   temperature range chosen to keep dry adiabats
                   approximately orthogonal to isotherms. (def=NO)
                   This option should be used with single profiles
                   only.  If overlaying two different plots with
                   OLAY=YES, or specifying PRANGE and TRANGE, automatic
                   centering is impossible because the problem is
                   overconstrained.
                   Use the PRANGE, TRANGE, and EXACT keywords to manually
                   scale and position the vertical profile if the program
                   provided centering is inadequate, or to maintain
                   constant limits and scaling when comparing two plots
                   using the overlay (OLAY=YES) option.
   COLor = t  td  w  m  s  g  pa  ax | Sets color levels for plotting
           t    | Color level of Temperature Profile      (def = level 3)
           td   | Color level of Dewpoint Profile         (def = level 3)
           w    | Color level of Wind Barbs / staffs      (def = level 3)
           m    | Color level of Constant Mixing Ratio    (def = level 4)
           s    | Color level of Saturated (wet) Adiabats (def = level 1)
           g    | Color level of Base Graph: p, T, theta  (def = level 8)
           pa   | Color level of Parcel Analysis Labels   (def = level 1)
           ax   | Color level of P and T axes and labels  (def = level 7)
                    (To list the colors displayed for a given level
                     or to change those colors, use the GU command)
           NOTE: For the overlay option "OLAY=YES", the default is
                 to replace all of the level 3 output with level 2.
   DEPth = pressure_interval  | depth of boundary layer (0-400 mb)
                                used in the parcel analysis (def=100 mb)
   EXAct = NO      | Program adjusts temperature limits and plot geometry
                      within the PRANGE and TRANGE selected by user to
                      fill the available square 400 x 400 pixel screen
                      space in the plot
           CROP    | Program accepts both pressure and temperature limits
                      selected by user, but crops plot vertically or
                      horizontally to preserve proper aspect ratio and
                      adiabat-isotherm orthogonality (def)
                      (parts of the screen may be left blank)
           CURsor  | Replots, in enlarged form, at least that portion
                      of the diagran lying within the limits outlined by
                      the cursor.  The cursor must be set to the desired
                      size using the "CUR lines elements" command and
                      be positioned over the user selected part of the
                      plotted sounding in the graphics frame when this
                      command is started.
           YES     | For users who wish to completely control the
                      plot geometry and override the default scaling
                      (this can severely distort the plot's aspect ratio,
                       so isotherms and adiabats are no longer orthogonal,
                       but will accept user limits as specified in PRANGE
                       and TRANGE, rather than making parameter adjustments
                       or cropping the image to preserve the plot geometry)
   GRAphics = frame   | Graphics frame number for plotting (def=current)
   GWIdth = t g d g c   | Sets graphics line parameters in the plot
          t     | Width of temperature profile (def=2)
             (all the following defaults are the same as set by the GD
              command, and once input to SNDSKEWT, will remain permanently
              set until they are again changed by GD or SNDSKEWT)
          g     | Width of base graph lines
          d     | Length of dashes in dewpoint, adiabats, mix ratio
          g     | Length of gaps in dewpoint, adiabats, mix ratio
          c     | Color Level of gaps in dewpoint, adiabats, mix ratio
   LEVels = ALL         | Draw all the levels, if they exist, after the
                             parcel analysis is done (def)
            NO/NONE     | Do not draw LFC, LCL, EL on graph
            lev1  lev2  | draw only any one or two of LFC, LCL, EL
                          (handy when levels overlap or only one is needed)
   MIX = YES     | Draws saturation mixing ratio lines (default)
         NO      | Omit saturation mixing ratio lines
   NOMesg = 0    | Provides information about server operation, returned
                   soundings, and station ID and parcel analysis (def)
            1    | Minimal text output for use in macros
   OLAy = YES    | Overlay existing plot; draw a second sounding for
                      comparison (def overlay color level = 2)
          NO     | Do not overlay existing plot; draw a new plot (def)
   OPT = 0    | Mandatory levels with parcel analysis - no interpolation
         1    | Significant temperature and mandatory levels; no parcel
                analysis
         3    | Mandatory, significant temperature and significant wind
                levels; recomputes heights; computes wind pressure;
                no parcel analysis
         5    | Significant temperature and mandatory levels; interpolates
                wind at significant temperature levels; no parcel analysis
         7    | Mandatory, significant temperature and significant wind
                levels; recomputes heights; fully interpolates for missing
                data; computes parcel analysis (def)
   OUTl = NO  | Plot sounding as usual
          YES | Draw base graph only without sounding
   PARameters = temp    dewpoint  pressure  height  station_id_number
                day     time      lat       lon     level
                speed   direction
                  (tells sounding server to override its default
                   parameter names from the mandatory dataset's schema
                   in favor of these twelve or less user defined
                   parameter names, which must have the same dimensions
                   and scale factors as the names they replace, e.g.
                   substituting GT and GTD for T and TD in the
                   GRET schema: "PAR=GT GTD")
                Use of the keyword FORM=PARAM will tell you what
                parameter names are available in the dataset.
                Unset positions for this keyword are ignored, and the
                server's default parameter names will be used instead.
   PRAnge = min  | Minimum pressure at top of diagram, rounds to nearest
                   5 mb, limits are 5-800mb.  (def=100)
            max  | Maximum pressure at bottom of diagram (def=1050)
   REStore = NO    | Use command line parameters to select a sounding (def)
             YES   | Restore the previous Skew-T plot for the currently
                     displayed frame from the graphics save file
                       (default when EXACT=CURSOR option is used)
   TRAnge = min max   | Approximate Celsius temperature range shown
                        diagonally on the diagram from upper left to
                        lower right (def=-90 40)
                         NOTE: Modifying the temperature range may change
                               the proportions of the diagram so area is
                               no longer proportional to energy! Choose
                               values which center the profile in the
                               frame and always try to keep dry adiabats
                               orthogonal to isotherms.  You are generally
                               better off to let the program choose the
                               temperature range for you, unless you have
                               a particularly shaped profile requiring
                               exact limits.  If you must have a certain
                               temperature range, you can also use the
                               EXACT=CROP option which preserves the
                               aspect ratio but may not completely fill
                               the available screen area.
   SIG = NO           | Do not search any related significant datasets
                           to add to the mandatory data records returned
         YES          | (def: searches any SIG files identified in
                                                         VPROF datasets)
         sig_dataset  | Must specify sig dataset if mand_dataset is
                           POINT type instead of VPROF
   UNIts = pressure  speed  | Display units for pressure axis and wind
                              (default is UNIT=MB KTS)
           MB    | Plots pressure in millibars on the left axis (def)
                    (requires only a pressure field in raw data)
           M     | Plots sfc & standard pressures in meters on the left axis
                    (done only for initial profile, not OLAY, and
                     requires height/altitude field in raw data)
           FT    | Plots sfc & standard pressures in feet on the left axis
                    (done only for initial profile, not OLAY, and
                     requires height/altitude field in raw data)
           FPS   | Feet per second
           KPH   | Kilometers per hour
           MPH   | Miles per hour
           MPS   | Meters per second
           KTS   | Knots
   WINd = type  magnification  spacing  | Type, size, and spacing
                                            of wind indicators
          type  | STAFF (def) or BARB (def for KTS only)
                    (NOTE: Barbs are "decluttered", while staffs show
                           every wind measurement in the sounding and
                           only the staff labels are decluttered)
          magnification | Default is 1.0 (autoscaled by program)
          spacing | Minimum declutter spacing in vertical pixels between
                    the wind barbs (def=12).  Note that staffs are not
                    decluttered, although their labels are
Remarks:
   Note that only the first returned sounding is plotted.  It is
   necessary to choose the select conditions carefully enough to be
   very specific as to station, day, and time.  Since each dataset
   file may contain thousands of records, you may get too many
   records if you don't narrow the search criteria enough with the
   SELECT= keyword.

   The use of the COLOR= and GWID= keywords, as well as the GU, GD and
   FONT commands allows for a great deal of customization of output.
   It should be remembered that GD and FONT will permanently change
   default line or text characteristics and colors, and therefore if they
   were incorrectly set prior to starting SNDSKEWT, could return errors
   if SNDSKEWT cannot work with the current defaults.  You must then
   first specify a correct default value using the proper keyword or
   command and then rerun SNDSKEWT.

   Any altitudes in meters or feet (UNIT=) plotted on the left axis
   refer to the first sounding only, not the overlay (OLAY=YES).
   Vertical coordinates are always log P, even though labelled in
   feet or meters for any particular sounding.  Clearly, the conversion
   from pressure to height in feet or meters is always location dependent.

   The Skew T - log P diagram represents an attempt to make the
   isotherm-adiabat angles close to 90-degrees.  The isotherms are
   straight parallel lines from lower left to upper right, and the
   adiabats curve from lower right to upper left.  Lines of constant
   mixing ratio almost parallel the isotherms.  At the default scales,
   the area on the plot is proportional to energy and changes in
   slope of the sounding are very easily apparent.  This is one of
   the most important values of the Skew-T plot.

   Use of PRANGE and TRANGE to change the limits of the plot will also
   modify the scaling in one or more dimensions.  The default scaling
   is specifically chosen to fit within the screen with nearly correct
   angles and areas on the plot, and limits bounding most places on
   Earth, from the hottest tropics and deserts to the driest arctic
   tropopause.  Changing the scales to distort the plot may be useful
   to obtain better temperature or pressure resolution, but would negate
   the other significant values of a Skew-T plot.  For obtaining more
   quantitative detail, we suggest using the SNDLIST or SNDALTIM commands
   to display numerical quantities in text form.

   The Skew-T plot is now saved in a separate graphics file and can be
   quickly restored to the frame it was last plotted on by using the
   RESTORE=YES keyword instead of a SELECT= clause and subsequent time
   consuming sounding server access.  This also permits users to quickly
   select a portion of the displayed diagram for magnification using
   the EXACT= keyword options.
----------
