5 JCMTSTATE NDF Extension

The JCMTSTATE extension contains the timestep-specific data.

RTS_NUM

The RTS sequence number increments at each time step of the observation, beginning with RTS_NUM = 1 for the first time step. The total number of RTS steps is:

NSCAN ×NO_SCAN_PNTS (1)

(NSCAN (C3NSAMPLE), NO_SCAN_PNTS (C3MXP))

RTS_END

The GSD format files recorded one LST time for each time step, as well as a scan time. Assuming that the recorded LSTs represent the middle of the time step, the RTS_END can be calculated by adding half the length of the time step to the TCS_TAI of this step (see below for TCS_TAI calculation).

For rasters, the SCAN_TIME (C3SRT) is the entire time for one raster across the sky, so the RTS_END in this case is:

RTS_END = TCS_TAI + SCAN_TIME/ NO_SCAN_PNTS× 2 (2)

For grids, the RTS_END is simply:

RTSEND = TCSTAI + SCANTIME/2 (3)

(SCAN_TIME (C3SRT), NO_SCAN_PNTS (C3MXP))

RTS_TASKS

For each time step this defaults to ‘PTCS FE_X DAS’ where X is A, B, C, D or E depending on the frontend (see RECEPTORS in the ACSIS extension).

SMU_X, SMU_Y, SMU_Z

0.0 (default).

SMU_CHOP_PHASE

’M’ (default).

SMU_JIG_INDEX

Set to VAL__BADI (integer bad value).

SMU_AZ_JIG_X, SMU_AZ_JIG_Y, SMU_AZ_CHOP_X, SMU_AZ_CHOP_Y, SMU_TR_JIG_X, SMU_TR_JIG_Y, SMU_TR_CHOP_X, SMU_TR_CHOP_Y

0.0 (default).

TCS_TAI

The TCS_TAI records the TAI for each time step. The GSD format files record the starting LST time, as well as the LST time for each time step (assumed to be the LST at the middle of the time step). To calculate the TAI for each step, we first convert the starting LST to a TAI, then add the TAI time offset for each time step by converting the ’dLST’ (difference between the LST of this step and the starting LST) to a TAI offset.

To obtain the starting TAI, the following headers from the GSD file are used:

The LSTs for each time step are stored in the SCAN_TABLE1 (C12SCAN_TABLE_1) array.

For rasters, only the LST of the beginning of the scan is recorded in SCAN_TABLE1 (C12SCAN_TABLE_1). In this case, the ’dLST’ can be calculated from the LST of the beginning of the scan, the total time for the scan (SCAN_TIME (C3SRT)) and the number of points in the scan (NO_SCAN_PNTS (C3MXP)). This assumes that the time between each spectrum in the scan is equal (scanning at a constant velocity).

TCS_AIRMAS

The airmass at each time step is determined from the elevation (TCS_AZ_AC1) using Hardie’s (1962) polynomial fit to Bemporad’s data for the relative air mass in units of thickness at the zenith as tabulated by Schoenberg (1929).

TCS_AZ_ANG

The angle between PA=0 in the focal plane and PA=0 in AZEL defaults to 0.0 because all instruments are in the receiver cabin.

TCS_AZ_AC1/TCS_AZ_AC2

The actual coordinates in AZEL are determined from the CELL setup of the GSD input file and the WCS Frameset which maps CELL offsets to RA/Dec and Az/El offsets (see WCS NDF Extension).

TCS_AZ_DC1/TCS_AZ_DC2

The demand coordinates are assumed to be the same as the actual coordinates.

TCS_AZ_BC1/TCS_AZ_BC2

The base coordinates are calculated as are the TCS_AZ_AC1 and TCS_AZ_AC2 above, but with an XY cell offset corresponding to the centre of the grid of cells (0,0).

TCS_BEAM

‘M’ (default).

TCS_INDEX

The index into the observing area for grids is the offset into the MAP_TABLE (C14PHIST) of the current observation. For rasters, the index increments at the beginning of each scan, so the value of TCS_INDEX is the offset into the MAP_TABLE (C14PHIST) divided by the number of points per scan. TCS_INDEX begins counting at 1.

TCS_SOURCE

‘SCIENCE’ (default).

TCS_TR_SYS

The name of the tracking coordinate frame is identified by the GSD CENTRE_CODE (C4CECO)and translated into a string representation of the coordinate system as follows:

TCS_TR_ANG

The angle between the focal plane and PA=0 and PA=0 in the tracking coordinate frame is calculated as follows:

SQSZ = cos(PHI) × sin(HA) (4)
CQSZ = sin(PHI) × cos(DEC) cos(PHI) × sin(DEC) × cos(HA) (5)

If both SQSZ and CQSZ are equal to 0, then CQSZ is set to 1. Then,

TCSTRANG = arctan(SQSZ/CQSZ) (6)

TCS_TR_AC1/TCS_TR_AC2

The actual coordinates in RA/Dec are determined from the CELL setup of the GSD input file and the WCS Frameset which maps CELL offsets to RA/Dec and Az/El offsets (see WCS NDF Extension).

TCS_TR_DC1/TCS_TR_DC2

The demand coordinates are assumed to be the same as the actual coordinates.

TCS_TR_BC1/TCS_TR_BC2

The base coordinates are calculated as are the TCS_TR_AC1 and TCS_TR_AC2 above, but with an XY cell offset corresponding to the centre of the grid of cells (0,0).

JOS_DRCONTROL

0 (default).

ENVIRO_REL_HUM

The relative humidity is assumed to be equal to the value stored in HAMB (C5RH).

ENVIRO_PRESSURE

The relative humidity is assumed to be equal to the value stored in PAMB (C5PRS).

ENVIRO_AIR_TEMP

The air temperature is assumed to be equal to the value stored in TAMB (C5AT).

ACS_SOURCE_RO

’SPECTRUM_RESULT’ (default).

ACS_NO_PREV_REF, ACS_NO_NEXT_REF, ACS_NO_ONS

Set to VAL__BADI (integer bad value).

ACS_EXPOSURE

The on-source integration times for rasters is given by:

ACS_EXPOSURE = SCAN_TIME/NO_SCAN_PNTS (7)

(SCAN_TIME (C3SRT), NO_SCAN_PNTS (C3MXP))

For other observations, the INTGRN_TIME (C3INTT) array stores integration times for each time step.

ACS_OFFEXPOSURE

The off-source integration times for rasters is given by:

ACS_OFFEXPOSURE = ACS_EXPOSURE×NO_ SCAN_ PNTS (8)

(NO_SCAN_PNTS (C3MXP))

For other observations, the ACS_OFFEXPOSURE time is equal to the ACS_EXPOSURE time.

POL_ANG

Set to VAL__BADD (float bad value).

FE_LOFREQ

The frontend LO frequencies for each subband are stored in the BES_FE_NULO (C3BEFENULO) array.

FE_DOPPLER

The rest frequencies, LO frequencies and IF for each subband are stored in the BES_NUREST (C12RF), BES_FE_NULO (C3BEFENULO), and BES_TOT_IF (C3BETOTIF) arrays, respectively. From these, the frontend doppler correction can be calculated:

FE_DOPPLER = REST_FREQ/ LOFREQ + TOT_IF (9)