Demodulated data files are much more complicated as they have to contain a full description of the state of SCUBA for each observation. Here is an example trace (the map of 3C279 used in the example):
% hdstrace apr8_dem_0059
STRUCT < >
MORE <EXT> {structure}
FIGARO <FIGARO_EXT> {structure}
{structure is empty}
SCUCD <SCUCD_ST> {structure}
JIGL_X(64) <_REAL> 5.3457,0,-5.3457,-8.033999,
... 0,-5.3457,-8.033999,-2.6883,2.6883
JIGL_Y(64) <_REAL> 12.36,12.36,12.36,10.815,10.815,
... -9.27,-10.815,-10.815,-10.815
DEC1 <_REAL> 0
DEC2 <_REAL> 0
LST_STRT(2,4,3,1) <_DOUBLE> 3.23079147492436,3.2322998582771,
... 3.26511400298336,3.26350802081885
RA1 <_REAL> 0
RA2 <_REAL> 0
SCUBA <SCUBA_ST> {structure}
BOL_CALB(16,9) <_REAL> 0.858,0.9311,0.9499,1.002,0.9585,
... 1.213,0.928,1.304,1,1,1,1,1,1,0
BOL_DU3(16,9) <_REAL> 57.08,45.9,36.15,24.64,14.55,3.62,
... -15.78,9.047,-54.65,0,0,0,0,0,0
BOL_DU4(16,9) <_REAL> -28.14,-35.91,-41.46,-49.62,
... 63.89,77.76,71.16,0,0,0,0,0,0
BOL_QUAL(16,9) <_INTEGER> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
... 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1
BOL_TYPE(16,9) <_CHAR*20> 'SHORT','SHORT','SHORT','SHORT',
... 'P...','P1350_DC','P1100_DC','BAD'
BOL_ADC(128) <_INTEGER> 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
... 8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9
BOL_CHAN(128) <_INTEGER> 1,2,3,4,5,6,7,8,9,10,11,12,13,14,
... 12,13,14,15,16,1,2,3,4,5,6,7,8,9
FLAT_ADC <_INTEGER> 0
FLAT_CHN <_INTEGER> 0
FLAT_IND <_INTEGER> 0
PHOT_BB <_INTEGER> 0
DEM_PNTR(2,4,3,1) <_INTEGER> 1,17,49,33,65,81,113,97,129,145,
... 257,273,305,289,321,337,369,353
ISTART(62,2,4,3,1) <_INTEGER> 20,19,18,18,18,18,18,15,14,13,
... 14,13,14,16,22,23,31,41,0,0,0,0
NPIX(62,2,4,3,1) <_INTEGER> 2,5,12,13,28,29,29,32,33,34,34,35,
... 37,36,34,32,30,24,23,14,3,0,0,0,0
POINTER(62,2,4,3,1) <_INTEGER> 2,4,9,21,34,62,91,120,152,185,
... 52804,52807,52807,52807,52807
FITS(164) <_CHAR*80> 'ACCEPT = 'not used' / ac...'
... 'WAVE_5 = ...','END'
DATA_ARRAY(5,128,384) <_REAL> 0.011504,0.000014,0.029308,0.000015,0,
... 0.006727,0.000003,0.022551,0.000003,0
... 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1
End of Trace.
From this we can see that there is a 3 dimensional data array and 4 NDF extensions. Each will be described in turn:
The data array contains three dimensions. The first dimension is a vector of
size 5 and relates to the chop data, the chop error, the calibrator data the
calibrator error and the quality respectively. The second dimension is the
bolometers and the third is the number of measurements (ie number of jiggle
positions
number of integrations
2 (number of nods)). These
data can be displayed to examine each component in turn (for example checking
whether the OFF position contains a source) by using NDF sections.
The FIGARO extension is not used by the SURF package.
The SCUCD extension contains information on the position of the telescope for each sample along with the local sidereal time of each sample.
The SCUBA extension contains the flatfield information (position of the bolometers, sub-intrument of bolometers, quality of bolometers and A-to-D card). There are also arrays to aid in the location of each jiggle in the data array (DEM_PNTR).
The FITS Extension is described in the next appendix.
In addition a new extension is created by the SURF package itself. This extension (called REDS for historical reasons) contains beam weights for chopping, and pointing corrections. In general this extension is created for PHOTOMetry observations and by the change_pointing task.
A more detailed description of the file format can be found in Starlink System Note 72.
SURF -- SCUBA User Reduction Facility