next up previous contents
Next: Example 5. Nonauthoritative Dimension Up: Dimensional Levels Previous: Example 3. Tensor (Wind   Contents


Example 4. Unusual Data Object (Ozonesondes)

Consider a data object consisting of balloon-borne observations of ozone concentrations at varying pressure levels over a set of 2000 stations on 365 days. We consider two different methods of specifying these data:

In the first case, we will define a complex data object (an ``ozonesonde data vector'') consisting of a single Level 0 dimension with two components: ozone concentration and pressure. The station identifier we will treat as a Level 1 dimension, and the Level 2 dimension is time. The data will be written out in the order (station ID, ozonesonde data component, time). In this case, the data object dimensional record fields will be as follows (indices start at 1):

OBJDESC.
NDIM0 = 1
NDIM1 = 1
NDIM2 = 1
NDIM3 = 0
DIMSPEC0.
INDEX = 2
GPTNUM = 2
DIMSPEC1.
INDEX = 1
DESNUM = 1
DIMSPEC2.
INDEX = 3
GPTNUM = 365
DESCRIP0.
DATFMT = (single precision floating-point, single precision floating-point)
VARTYPE = (ozone concentration, pressure)
UNITS = (ppmv, mb)
DESCRIP1.
DEXSORT = 1
NDEX = 1
RECSORT = 0
START = 1
END = -1
GPTNUM = 2000
DUPNUM = 0
DESSUP = 0
DESFMT = long integer
DESTYPE = station identifier
UNITS = no units
STORG = 0
DESCVAL.
DLEVEL = 1
LEVEL = 1
DINDEX = 0
DEXSORT = 1
NDEX = 1
RECSORT = 0
AVALS = (list of 2000 station identifiers)
DESCRIP2.
NDEX = 1
DUPNUM = 0
DESSUP = 0
DESFMT = long integer
DESTYPE = time
UNITS = day of year
STORG = 1
DESCVAL.
DLEVEL = 2
LEVEL = 2
DINDEX = 0
DEXSORT = 1
NDEX = 1
RECSORT = 0
AVALS = (1, 1)

Alternatively, we can treat pressure as a Level 1 dimension. The first 6 months of data contain ozonesondes at the same 18 pressure levels, while the last 6 months contain the data at 15 levels, different from the set in the early period. The data array is written in the order (station identifier, pressure, time). Note that the ozone data are now simple scalars. The data dimensional record fields will be as follows (indices start at 1):

OBJDESC.
NDIM0 = 1
NDIM1 = 2
NDIM2 = 1
NDIM3 = 0
DIMSPEC0.
INDEX = -1
GPTNUM = 1
DIMSPEC1.
INDEX = (1, 2)
DESNUM = (1, 2)
DIMSPEC2.
INDEX = 3
GPTNUM = 365
DESCRIP0.
DATFMT = single precision floating-point
VARTYPE = ozone concentration
UNITS = ppmv
DESCRIP1.
DEXSORT = 1
NDEX = 1
RECSORT = 0
START = 1
END = -1
GPTNUM = 2000
DUPNUM = 0
DESSUP = 0
DESFMT = long integer
DESTYPE = station identifier
UNITS = no units
STORG = 0
DESCVAL.
DLEVEL = 1
LEVEL = 1
DINDEX = 0
DEXSORT = 1
NDEX = 1
RECSORT = 0
AVALS = (list of 2000 station identifiers)
DESCRIP1.
DEXSORT = 65538
NDEX = 2
RECSORT = 1
START = 1
END = 181
GPTNUM = 18
DUPNUM = 0
DESSUP = 0
DESFMT = single precision floating-point
DESTYPE = pressure
UNITS = mb
STORG = 0
DESCVAL.
DLEVEL = 1
LEVEL = 1
DINDEX = 0
DEXSORT = 65538
NDEX = 2
RECSORT = 1
AVALS = (list of 18 pressure levels)
DESCRIP1.
DEXSORT = 655362
NDEX = 2
RECSORT = 10
START = 182
END = -1
GPTNUM = 15
DUPNUM = 0
DESSUP = 0
DESFMT = single precision floating-point
DESTYPE = pressure
UNITS = mb
STORG = 0
DESCVAL.
DLEVEL = 1
LEVEL = 1
DINDEX = 0
DEXSORT = 655362
NDEX = 2
RECSORT = 10
AVALS = (list of 15 pressure levels)
DESCRIP2.
NDEX = 1
DUPNUM = 0
DESSUP = 0
DESFMT = long integer
DESTYPE = time
UNITS = day of year
STORG = 1
DESCVAL.
DLEVEL = 2
LEVEL = 2
DINDEX = 0
DEXSORT = 1
NDEX = 1
RECSORT = 0
AVALS = (1, 1)


next up previous contents
Next: Example 5. Nonauthoritative Dimension Up: Dimensional Levels Previous: Example 3. Tensor (Wind   Contents
Eric Nash 2003-09-25