next up previous contents
Next: Example 2. Referring to Up: Auxiliary Information Previous: Auxiliary Information   Contents


Example 1. Referring to a Single Dimension, Applied to a Single Dimension

Consider that the pressure levels in the wind vector example have measured uncertainties of $[1000 \pm 7, 850 \pm 5, 700 \pm 5, 500 \pm 2,
250 \pm 1,100 \pm 1] mb$ for all wind components, horizontal locations, and times. If the indices start numbering from 0, then we have the following auxiliary record fields:

OBJDESC.
NAUX = 1
AUXSPEC.
RECSORT = 0
NUMREF = 1
NUMAPP = 1
START = (0, 0, 0, 0, 0)
END = (-1, -1, -1, -1, -1)
AUXFMT = single precision floating-point
AUXTYPE = measured uncertainty
UNITS = mb
NUMSUP = 0
AUXRANGE.
RECSORT = 0
REFLEV = 1
REFNDEX = 2
APPLEV = 1
APPNDEX = 2
AUXVAL.
RECSORT = 0
AVALS = (7., 5., 5., 2., 1., 1.)

In IDL, then, code to define the auxiliary information for this data object would look like this (using the basic structure as already given in Section 3.2.2):

    ; set up the relevant elements in the OBJDESC record
    RECTYPE = long(1)
    NDIM0 = long(1)
    NDIM1 = long(2)
    NDIM2 = long(2)
    NDIM3 = long(0)
    NAUX = long(1)
    .
    .
    .
    writeu,log_file_unit,   RECTYPE, vartype, reserved    $
    , NDIM0, NDIM1, NDIM2, NDIM3, reserved, isource       $
    , reserved, reserved, naudit, ninfo, ncomms, comcod   $
    , reserved, nbads, reserved, nprocs, reserved, npacks $
    , reserved, NAUX, cmpnum, reserved, reserved, reserved

    ; set up the dimensional information, bad data values,
    ; packing information, and processing information

    .
    .
    .

    ; set up the relevant elements for the AUXSPEC record
    RECTYPE = long(80)
    ; only one record group
    RECSORT = long(0)
    ; there is only one dimension with uncertainties: 
    ; pressure
    NUMREF = long(1)
    ; the uncertainties vary only with pressure, therefore, 
    ; AUXVAL.AVALS has one dimension
    NUMAPP = long(1)
    ; this covers the entire range of the data
    START = long( [0, 0, 0, 0, 0] )        
    ENDIT = long( [-1, -1, -1, -1, -1] )
    ; the uncertainties are floating-point numbers
    AUXFMT = long(67108864)
    ; the quantities are measured uncertainties
    AUXTYPE = long(262144)
    ; the units are in millibars
    UNITS = long(1081593921)
    ; there are no supplemental values
    NUMSUP = long(0)

    write,log_file_unit, RECTYPE, RECSORT, NUMREF, NUMAPP $
    , START, ENDIT, AUXFMT, AUXTYPE, UNITS, NUMSUP $
    , reserved, reserved

    ; set up the indices in the AUXRANGE record
    RECTYPE = long(81)
    ; only one record group
    RECSORT = long(0)
    ; the uncertainties refer to pressure (the third index
    ; in the Level 1 dimensions)
    REFLEV = long(1)
    REFNDEX = long(2)
    ; the uncertainties only vary over pressure (the 
    ; third index in the Level 1 dimensions)
    APPLEV = long(1)
    APPNDEX = long(2)

    write,log_file_unit, RECTYPE, RECSORT, REFLEV, REFNDEX $
    , APPLEV, APPNDEX, reserved, reserved

    ; set up the auxiliary information in the AUXVAL record
    RECTYPE = long(82)
    ; only one record group
    RECSORT = long(0)
    AVALS = (7., 5., 5., 2., 1., 1.)

    write,log_file_unit, RECTYPE, RECSORT, AVALS


next up previous contents
Next: Example 2. Referring to Up: Auxiliary Information Previous: Auxiliary Information   Contents
Eric Nash 2003-09-25