This routine calculates a new set of N statistically independent basis vectors (i.e. with a diagonal
covariance matrix) for the N bolometer time series, and calculates the projection of the bolometers
along this new basis. This
" Principal Component Analysis
" is useful for identifying time-correlated
noise signals. The ouput array of components contains the new basis vectors, normalized by their
RMS, though ordered by decreasing significance. The output amplitudes data cube gives the
amplitude of each component for each bolometer across the focal plane. Generally speaking the
component time series illustrate the time-varying shape of the correlated signals, and the
amplitudes show how strong they are, and which bolometers are affected.
Group of files to be used as bad bolometer masks. Each data file specified
with the IN parameter will be masked. The corresponding previous mask for a subarray
will be used. If there is no previous mask the closest following will be used. It is not an
error for no mask to match. A NULL parameter indicates no mask files to be supplied.
FLAT = _LOGICAL (Read)
If set ensure data are flatfielded. If not set do not scale
the data in any way (but convert to DOUBLE). [TRUE]
FLATMETH = _CHAR (Read)
Method to use to calculate the flatfield solution. Options are POLYNOMIAL and TABLE.
Polynomial fits a polynomial to the measured signal. Table uses an interpolation scheme
between the measurements to determine the power. [POLYNOMIAL]
The order of polynomial to use when choosing POLYNOMIAL method. 
FLATSNR = _DOUBLE (Read)
Signal-to-noise ratio threshold to use when filtering the
responsivity data to determine valid bolometers for the flatfield. [3.0]
If true the previous and following flatfield will be used to determine the
overall flatfield to apply to a sequence. If false only the previous flatfield will be used. A null
default will use both flatfields for data when we did not heater track at the end, and will use
a single flatfield when we did heater track. The parameter value is not sticky and will
revert to the default unless explicitly over-ridden. [!]
IN = NDF (Read)
Input files to be
uncompressed and flatfielded. Any darks provided will be subtracted prior to flatfielding.
MSG_FILTER = _CHAR (Read)
Control the verbosity of the application. Values can be
NONE (no messages), QUIET (minimal messages), NORMAL, VERBOSE, DEBUG or ALL.
OUTAMP = NDF (Write)
Amplitude data cube. The first two coordinates are
bolometer location, and the third enumerates component.
OUTAMPFILES = LITERAL
The name of text file to create, in which to put the names of all the output amplitude
NDFs created by this application (one per line). If a NULL (!) value is supplied no file is
OUTCOMP = NDF (Write)
Component vector data cubes (N components
M time slices). A cube is created so that it may be run through SC2FFT if desired.
OUTCOMPFILES = LITERAL (Write)
The name of text file to create, in which to put the names of
all the output component NDFs created by this application (one per line). If a NULL (!)
value is supplied no file is created. [!]
RESIST = GROUP (Read)
A group expression
containing the resistor settings for each bolometer. Usually specified as a text file using
" syntax. An
example can be found in $STARLINK_DIR/share/smurf/resist.cfg [$STARLINK_DIR/share/smurf/resist.cfg]
RESPMASK = _LOGICAL (Read)
If true, responsivity data will be used to mask bolometer data
when calculating the flatfield. [TRUE]
SMURF: SC2CLEAN, SC2FFT