CIAO extends the concept of type 1 and type 2 PHA files to general
tables. A type 1 file of size N is a simple table consisting
of scalar columns each with N rows.
A type 2 file of size N x M is a table with M rows in which each column
is either scalar or an array of size N. Each row of the type 2 file
corresponds to a whole type 1 file, and `dmtype2split' performs this mapping.
The mapping consists of turning each array column entry from `sideways'
to `vertical', so that an array of 4096 values becomes a column with
4096 rows. Scalar columns map to keywords in the output file.
Each of the rows in the type 2 file
specified by either the "rows" parameter (whose use is currently
being 'deprecated') or the datamodel filter syntax (i.e.
infile="filname.fits[#row=N:M,P:Q,..]"), is copied
to a type 1 file. The rows are specified in a comma- and
colon-delimited list.
Each output file has the basic header keywords and subspace copied
from the input. If the input file is a pha file, keywords required
by the OGIP format are also written; otherwise, generic keywords are written. For each scalar
column in the input, the coordinate keyword information is written,
and the datatype, value, and unit are written as a keyword.
For each input column that is an array, a column is created from the
datatype, value, and unit; the row of input data is read and written
to the output column.
The rows can be specified in the comma- and colon-delimited list in
any order
(e.g., "1:4,6,9:12" or "6,1:4,9:12" or "1:4,9:12,6", etc ).
A colon-delimited interval is inclusive (e.g., "2:5" means rows 2,
3, 4, 5). If the number of
rows specified does not equal the number of output files specified,
the program exits with an error message.
If no rows are specified, rows 1,2,...,n are
written, where n is the number of output files in the outfile stack.