Subject: Proposed TDESCnnn convention

From: thompson at stars.gsfc.nasa.gov (Bill Thompson)
Date: 1 Oct 91 15:37:52 GMT

"Dimension Label" Convention

This convention describes a way to assign labels to the dimensions of arrays in
a binary table.  The purpose of this convention is to provide a simple standard
for documenting the interrelationships between arrays in a binary table.  This
convention operates by assigning the keyword TDESCnnn to a column nnn which
contains an array with one or more dimensions.  This keyword would have the
format TDESCnnn='(label1,label2,...)' where label1, etc. are the dimension
labels.  There would be one dimension label for each fundamental dimension.
The labels are character strings of up to eight character strings.  The same
rules that apply to user defined keywords also apply to dimension labels.
Adherence to this convention is indicated by the presence of the keywords
TDESCnnn.

Optional documentation can be assigned to the dimension labels in one of two
ways.  The simplest way is to have a keyword with the same name as the
dimension label.  This keyword would take a character string value which would
describe the meaning of the dimension label.  A second approach would be to
have a separate FITS extension with the keyword EXTNAME='extname.labeln', where
extname is the value of EXTNAME in the current extension, and labeln is the
dimension label.  The structure of this associated extension is left up to the
user.  It is not required that the dimension label be documented with either of
these two schemes.

For instance, suppose that column 1 in a binary table contains a 100x100x50
array, where the first two dimensions represent spatial position in right
ascension and declination, and the third dimension represents time.  Column 2
contains an array which depends only on RA and DEC, and the third column
contains an array depending only on time.  The binary tables extension header
could then contain the following entries:

        TFORM1  = '500000I'             /  16 bit integers
        TDIM1   = '(100,100,50)'        /  Dimensions
        TDESC1  = '(RA,DEC,TIME)'       /  Dimension labels
        TFORM2  = '10000I '             /  16 bit integers
        TDIM2   = '(100,100)'           /  Dimensions
        TDESC2  = '(RA,DEC)'            /  Dimension labels
        TFORM3  = '50I    '             /  16 bit integers
        TDESC3  = '(TIME) '             /  Dimension label
        RA      = 'Right Ascension in 1 arcsec inc.'    /  Meaning of RA
        DEC     = 'Declination in 1 arcsec increments'  /  Meaning of DEC
        TIME    = 'Time in 10 second increments'        /  Meaning of TIME