If TabOK is set to a non-zero positive integer, these methods will recognise and convert axes described by the -TAB algorithm, as follows:
The astWrite
method will generate headers that use the -TAB algorithm (if
possible) if no other known FITS-WCS algorithm can be used to
describe the supplied FrameSet. This will result in a table of
coordinate values and index vectors being stored in the FitsChan.
After the write operation, the calling application should check to
see if such a table has been stored in the FitsChan. If so, the
table should be retrived from the FitsChan using the
astGetTables
method, and the data (and headers) within it copied into a new
FITS binary table extension. See
astGetTables
for more information. The FitsChan uses a FitsTable object to store
the table data and headers. This FitsTable will contain the required
columns and headers as described by FITS-WCS paper III - the
coordinates array will be in a column named "COORDS", and the index
vector(s) will be in columns named "INDEXi
" (where
i
is the index
of the corresponding FITS WCS axis). Note, index vectors are only
created if required. The EXTNAME value will be set to the value of the
AST__TABEXTNAME constant (currently "WCS-TAB"). The EXTVER header
will be set to the positive integer value assigned to the TabOK
attribute. No value will be stored for the EXTLEVEL header, and should
therefore be considered to default to 1.
The astRead method will generate a FrameSet from headers that use the -TAB algorithm so long as the necessary FITS binary tables are made available. There are two ways to do this: firstly, if the application knows which FITS binary tables will be needed, then it can create a Fitstable describing each such table and store it in the FitsChan (using method astPutTables or astPutTable) before invoking the astRead method. Secondly, if the application does not know which FITS binary tables will be needed by astRead, then it can register a call-back function with the FitsChan using method astTableSource. This call-back function will be called from within astRead if and when a -TAB header is encountered. When called, its arguments will give the name, version and level of the FITS extension containing a required table. The call-back function should read this table from an external FITS file, and create a corresponding FitsTable which it should then return to astRead. Note, currently astRead can only handle -TAB headers that describe 1-dimensional (i.e. separable) axes.
AST A Library for Handling World Coordinate Systems in Astronomy