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.