Again, consider the previous examples, where now there are different measured uncertainties associated with the longitudes and latitudes, where the uncertainties vary over each longitude band in the southern hemisphere (including the equator). In the northern hemisphere, the measured uncertainties vary with each longitude-latitude grid point.
The uncertainties in the southern hemisphere are specified in an array, U1, containing 72 values (uncertainties over longitude). The uncertainties in the northern hemisphere are specified in an array, U2, with the dimensions of (i.e., latitude, longitude). If the indices start numbering from 0, then we have the following auxiliary record fields:
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(2) . . . 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 first AUXSPEC ; record: longitude and latitude uncertainties in the ; southern hemisphere RECTYPE = long(80) ; first of two record groups RECSORT = long(0) ; there are two dimensions with uncertainties NUMREF = long(2) ; the uncertainties vary with longitude, therefore, ; AUXVAL.AVALS has one dimension NUMAPP = long(1) ; this covers the entire southern hemisphere START = long( [0, 0, 0, 0, 0] ) ENDIT = long( [-1, -1, 45, -1, -1] ) ; the uncertainties are floating-point numbers AUXFMT = long(67108864) ; the quantities are measured uncertainties AUXTYPE = long(262144) ; the units are in degrees UNITS = long(1745879298) ; 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) ; first of two record groups RECSORT = long(0) ; the uncertainties refer to longitude (the first index ; in the Level 1 dimensions) and latitude (the second ; index in the Level 1 dimensions) REFLEV = long( [1, 1] ) REFNDEX = long( [0, 1] ) ; the uncertainties vary over longitude (the first index ; in the Level 1 dimensions) APPLEV = long(1) APPNDEX = long(0)
write,log_file_unit, RECTYPE, RECSORT, REFLEV, REFNDEX $ , APPLEV, APPNDEX, reserved, reserved
; set up the auxiliary information in the AUXVAL record RECTYPE = long(82) ; first of two record groups RECSORT = long(0) AVALS = U1
write,log_file_unit, RECTYPE, RECSORT, AVALS
; set up the relevant elements for the second AUXSPEC ; record: longitude and latitude uncertainties in the ; northern hemisphere RECTYPE = long(80) ; second of two record groups RECSORT = long(10) ; there are two dimensions with uncertainties NUMREF = long(2) ; the uncertainties vary with longitude and latitude, ; therefore, AUXVAL.AVALS has two dimensions NUMAPP = long(2) ; this covers the entire northern hemisphere START = long( [0, 0, 46, 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 degrees UNITS = long(1745879298) ; 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) ; second of two record groups RECSORT = long(10) ; the uncertainties refer to longitude (the first index ; in the Level 1 dimensions) and latitude (the second ; index in the Level 1 dimensions) REFLEV = long(1, 1) REFNDEX = long(0, 1) ; the uncertainties vary over latitude (the second index ; in the Level 1 dimensions) and longitude (the first ; index in the Level 1 dimensions) APPLEV = long( [1, 1] ) APPNDEX = long( [1, 0] )
write,log_file_unit, RECTYPE, RECSORT, REFLEV, REFNDEX $ , APPLEV, APPNDEX, reserved, reserved
; set up the auxiliary information in the AUXVAL record RECTYPE = long(82) ; second of two record groups RECSORT = long(10) AVALS = U2
write,log_file_unit, RECTYPE, RECSORT, AVALS