Binary data is projected onto a multi-dimensional Cartesian coordinate system. (NOTE: data does not always have to regularized; sometimes it can be a simple set of unsorted traces.) DDS supports from one to nine axes. Each axis is identified by a unique name. The Dictionary which describes the binary data must define the number of dimensions and their names. It must also define the maximum size for each dimension. The first dimension varies most rapidly, like Fortran arrays.

The axes of an N-Dimensional cube is defined by the "axis=" Definition. The number of Tokens in the "axis" determines the number of dimensions in the N-Dimensional hypercube. Each axis is identified with it's corresponding Token name. Each axis name must be a unique string < 32 characters. The maximum number of dimensions that DDS can currently handle it nine. For example, a 5-dimension cube of data could be identified by:

axis= t h x y component

Axis Definitions are DDS Definitions associated with a specific axis. Each Definition ends in "." and the axis name. For example, the following defines a three dimensional dataset, each of the axes names and sizes.

axis= t  x  shot
size.t= 1000
size.x= 96
size.shot= 2500

Axis names should be consistent and meaningful. This requires the cooperation of end users (and applications!). Standard axis names include:

Axis Name(s)    Definition
-------------   ----------
t               time
x, y, z         space
w               frequency
kx, ky, kz      wave number transforms
T, px, py, pz   tau-p transforms
shot            shot domain (shot station number)
station         station domain (receiver station number)
channel         channel domain (recording channel number)
h, offset       offset domain (relative bin number)
cdp             common depth point number
component       multi component (polarization code)
property        general (Vp, Vs, Density, ... code)
?               unknown axis

The cube size must be defined for each axis, all of which must be greater than zero. In Fortran '90 terms, this describes the array shape and rank (number of dimensions). Each axis is identified by it's axis name. For example (assuming "axis= t x y"):

size.t= n1
size.x= n2
size.y= n3

Each axis has several standard attributes specified. Other attributes may be specific to certain DDS applications. Standard attributes include:

Name     Definition
-------  ------------------------------------------------
origin  float, coordinate of first sample
delta   float, non-zero signed increment between samples
units   strings < 32 characters, units associated with
         origin.axis(n) and delta.axis(n)
         time: sec, msec, usec
         space: feet, meters
         velocity: feet/sec, meters/sec
         frequency: hz, hertz
         unknown units: ?
sort     Trace Header field associated with sort indexing
         (used for padding dead traces; See Format Attributes)
step     step increment (typically used with Seisworks©)
base     step origin (typically used with Seisworks©)
grid     defines an irregular sampling grid (Can be used 
         with the "dense" format attribute to pad traces)

Line headers for standard seismic formats specify some axis parameters. None of them provide sufficient information to define three dimensions with nominal attributes. Standard formats are grossly inadequate for describing hypercubes with higher dimensions.

Output line headers are constructed from axis definitions. Information is inherently lost, because of header limitations. For USP files, some hypercube information can optionally be stored in the USP HLH (Historical Line Header) for later retrieval by DDS.

Input line header information is merged into axis definitions. Precedence is given to control parameters defined in the par file. This allows the end user to override an incorrect header value. If not specified, line header information is honored. If not available, the input history can provide a default.

"origin", "delta" and "units" of a time axis ("axis" name starting with "t") will normally be converted to seconds ("sec") when opening a dataset.