FITSIO Home
Next: Celestial Coordinate System Subroutines
Up: FITS ASCII and Binary
Previous: Low-Level Table Access Subroutines
These subroutines put or get data values in the current ASCII or Binary table
extension. Automatic data type conversion is performed for numerical data
types (B,I,J,E,D) if the data type of the column (defined by the TFORM keyword)
differs from the data type of the calling subroutine. The data values are also
scaled by the TSCALn and TZEROn header values as they are being written to
or read from the FITS array. The fttscl subroutine MUST be used to define the
scaling parameters when writing data to the table or to override the default
scaling values given in the header
when reading from the table.
In the case of binary tables with vector elements, the 'felem'
parameter defines the starting pixel within the element vector. This
parameter is ignored with ASCII tables. Similarly, in the case of
binary tables the 'nelements' parameter specifies the total number of
vector values read or written (continuing on subsequent rows if
required) and not the number of table elements. Two sets of
subroutines are provided to get the column data which differ in the way
undefined pixels are handled. The first set of routines (FTGCV)
simply return an array of data elements in which undefined pixels are
set equal to a value specified by the user in the 'nullval' parameter.
An additional feature of these subroutines is that if the user sets
nullval = 0, then no checks for undefined pixels will be performed,
thus increasing the speed of the program. The second set of routines
(FTGCF) returns the data element array and in addition a logical array
of flags which defines whether the corresponding data pixel is undefined.
- 1
- Insert blank rows into an existing ASCII or binary table (in the CDU).
All the rows FOLLOWING row FROW are shifted down by NROWS rows. If
FROW = 0 then the blank rows are inserted at the beginning of the
table. This routine modifies the NAXIS2 keyword to reflect the new
number of rows in the table.
FTIROW(unit,frow,nrows, > status)
- 2
- Delete rows from an existing ASCII or binary table (in the CDU).
The NROWS number of rows are deleted, starting with row FROW, and
any remaining rows in the table are shifted up to fill in the space.
This routine modifies the NAXIS2 keyword to reflect the new number
of rows in the table. Note that the physical size of the FITS file will
not be reduced by this operation, and the empty FITS blocks if any
at the end of the file will be padded with zeros.
FTDROW(unit,frow,nrows, > status)
- 3
- Insert a blank column (or columns) into an existing ASCII or binary
table (in the CDU). COLNUM specifies the column number that the (first)
new column should occupy in the table. NCOLS specifies how many
columns are to be inserted. Any existing columns from this position and
higher are moved over to allow room for the new column(s).
The index number on all the following keywords will be incremented
if necessary to reflect the new position of the column(s) in the table:
TBCOLn, TFORMn, TTYPEn, TUNITn, TNULLn, TSCALn, TZEROn, TDISPn, TDIMn,
TLMINn, TLMAXn, TDMINn, TDMAXn, TCTYPn, TCRPXn, TCRVLn, TCDLTn, TCROTn,
and TCUNIn.
FTICOL(unit,colnum,ttype,tform, > status)
FTICLS(unit,colnum,ncols,ttype,tform, > status)
- 4
- Delete a column from an existing ASCII or binary table (in the CDU).
The index number of all the keywords listed above (for FTICOL) will be
decremented if necessary to reflect the new position of the column(s) in
the table. Those index keywords that refer to the deleted column will
also be deleted. Note that the physical size of the FITS file will
not be reduced by this operation, and the empty FITS blocks if any
at the end of the file will be padded with zeros.
FTDCOL(unit,colnum, > status)
- 5
- Put elements into an ASCII or binary table column (in the CDU).
(The SPP FSPCLS routine has an additional integer argument after
the VALUES character string which specifies the size of the 1st
dimension of this 2-D CHAR array).
FTPCL[SLBIJEDCM](unit,colnum,frow,felem,nelements,values, > status)
- 6
- Put elements into an ASCII or binary table column (in the CDU)
substituting the appropriate FITS null value for any elements that
are equal to NULLVAL. This family of routines must NOT be used to
write to variable length array columns. For ASCII TABLE extensions, the
null value defined by the previous call to FTSNUL will be substituted;
For integer FITS columns, in a binary table the null value
defined by the previous call to FTTNUL will be substituted;
For floating point FITS columns a special IEEE NaN (Not-a-Number)
value will be substituted.
FTPCN[BIJED](unit,colnum,frow,felem,nelements,values,nullval > status)
- 7
- Put bit values into a binary byte ('B') or bit ('X') table column (in the
CDU). LRAY is an array of logical values corresponding to the sequence of
bits to be written. If LRAY is true then the corresponding bit is
set to 1, otherwise the bit is set to 0. Note that in the case of
'X' columns, FITSIO will write to all 8 bits of each byte whether
they are formally valid or not. Thus if the column is defined as
'4X', and one calls FTPCLX with fbit=1 and nbit=8, then all 8 bits
will be written into the first byte (as opposed to writing the
first 4 bits into the first row and then the next 4 bits into the
next row), even though the last 4 bits of each byte are formally
not defined.
FTPCLX(unit,colnum,frow,fbit,nbit,lray, > status)
- 8
- Set table elements in a column as undefined
FTPCLU(unit,colnum,frow,felem,nelements, > status)
- 9
- Get elements from an ASCII or binary table column (in the CDU). These
routines return the values of the table column array elements. Undefined
array elements will be returned with a value = nullval, unless nullval = 0
(or = ' ' for ftgcvs) in which case no checking for undefined values will
be performed. The ANYF parameter is set to true if any of the returned
elements are undefined. (Note: the ftgcl routine simple gets an array
of logical data values without any checks for undefined values; use
the ftgcfl routine to check for undefined logical elements).
(The SPP FSGCVS routine has an additional integer argument after
the VALUES character string which specifies the size of the 1st
dimension of this 2-D CHAR array).
FTGCL(unit,colnum,frow,felem,nelements, > values,status)
FTGCV[SBIJEDCM](unit,colnum,frow,felem,nelements,nullval, >
values,anyf,status)
- 10
- Get elements and null flags from an ASCII or binary table column (in the
CHDU). These routines return the values of the table column array elements.
Any undefined array elements will have the corresponding flagvals element
set equal to .TRUE. The ANYF parameter is set to true if any of the
returned elements are undefined.
(The SPP FSGCFS routine has an additional integer argument after
the VALUES character string which specifies the size of the 1st
dimension of this 2-D CHAR array).
FTGCF[SLBIJEDCM](unit,colnum,frow,felem,nelements, >
values,flagvals,anyf,status)
- 11
- Get an arbitrary data subsection from an N-dimensional array
in a binary table vector column. Undefined pixels
in the array will be set equal to the value of 'nullval',
unless nullval=0 in which case no testing for undefined pixels will
be performed. The first and last rows in the table to be read
are specified by fpixels(naxis+1) and lpixels(naxis+1), and hence
are treated as the next higher dimension of the FITS N-dimensional
array. The INCS parameter specifies the sampling interval in
each dimension between the data elements that will be returned.
FTGSV[BIJED](unit,colnum,naxis,naxes,fpixels,lpixels,incs,nullval, >
array,anyf,status)
- 12
- Get an arbitrary data subsection from an N-dimensional array
in a binary table vector column. Any Undefined
pixels in the array will have the corresponding 'flagvals'
element set equal to .TRUE. The first and last rows in the table
to be read are specified by fpixels(naxis+1) and lpixels(naxis+1),
and hence are treated as the next higher dimension of the FITS
N-dimensional array. The INCS parameter specifies the sampling
interval in each dimension between the data elements that will be
returned.
FTGSF[BIJED](unit,colnum,naxis,naxes,fpixels,lpixels,incs, >
array,flagvals,anyf,status)
- 13
- Get bit values from a byte ('B') or bit (`X`) table column (in the
CDU). LRAY is an array of logical values corresponding to the
sequence of bits to be read. If LRAY is true then the
corresponding bit was set to 1, otherwise the bit was set to 0.
Note that in the case of 'X' columns, FITSIO will read all 8 bits
of each byte whether they are formally valid or not. Thus if the
column is defined as '4X', and one calls FTGCX with fbit=1 and
nbit=8, then all 8 bits will be read from the first byte (as
opposed to reading the first 4 bits from the first row and then the
first 4 bits from the next row), even though the last 4 bits of
each byte are formally not defined.
FTGCX(unit,colnum,frow,fbit,nbit, > lray,status)
- 14
- Read any consecutive set of bits from an 'X' or 'B' column and
interpret them as an unsigned n-bit integer. NBIT must be less than
or equal to 16 when calling FTGCXI, and less than or equal to 32 when
calling FTGCXJ; there is no limit on the value of NBIT for FTGCXD, but
the returned double precision value only has 48 bits of precision on
most 32-bit word machines. The NBITS bits are interpreted as an
unsigned integer unless NBITS = 16 (in FTGCXI) or 32 (in FTGCXJ) in which
case the string of bits are interpreted as 16-bit or 32-bit 2's
complement signed integers. If NROWS is greater than 1 then the
same set of bits will be read from sequential rows in the table
starting with row FROW. Note that the numbering convention
used here for the FBIT parameter adopts 1 for the first element of the
vector of bits; this is the Most Significant Bit of the integer value.
FTGCX[IJD](unit,colnum,frow,nrows,fbit,nbit, > array,status)
- 15
- Get the descriptor for a variable length column in a binary table.
The descriptor consists of 2 integer parameters: the number of elements
in the array and the starting offset relative to the start of the heap.
FTGDES(unit,colnum,rownum, > nelements,offset,status)
- 16
- Put the descriptor for a variable length column in a binary table.
This subroutine can be used in conjunction with FTGDES to enable
2 or more arrays to point to the same storage location to save
storage space if the arrays are identical.
FTPDES(unit,colnum,rownum,nelements,offset, > status)
FITSIO Home
Next: Celestial Coordinate System Subroutines
Up: FITS ASCII and Binary
Previous: Low-Level Table Access Subroutines