There is a MAIN table containing a number of data columns and keys into various subtables. There is at most one of each subtable. The subtables are stored as keywords of the MS.
Subtables | ||
Table | Contents | Keys |
ANTENNA | Antenna characteristics | ANTENNA_ID, ARRAY_ID |
ARRAY | Array characteristics | ARRAY_ID |
FEED | Feed characteristics | FEED_ID, ANTENNA_ID, ARRAY_ID, TIME, FREQUENCY_ID |
SYSCAL | System calibration characteristics | FEED_ID, ANTENNA_ID, ARRAY_ID, TIME, FREQUENCY_ID |
FREQUENCY | Frequency setups | FREQUENCY_ID |
SOURCE | Positions, etc for each source | SOURCE_ID |
FIELD | Position etc for each pointing. | FIELD_ID, SOURCE_ID |
FLAG | Flagging history | ANTENNA_ID, ARRAY_ID, FEED_ID, FREQUENCY_ID, SOURCE_ID, FIELD_ID, TIME, INTERVAL |
OBSERVATION | Observer, Schedule, etc | OBSERVATION_ID |
CORRELATOR | Correlator setup | CORRELATOR_ID |
WEATHER | Weather info for each antenna | ANTENNA_ID, ARRAY_ID, TIME, FREQUENCY_ID |
OBSERVATION_LOG | Log from on-line system | TIME |
Note that there are two types of subtables. For the first, simpler type, the key (ID) is a row number. Examples are FREQUENCY, OBSERVATION and CORRELATOR. For the second, the key is a collection of parameters, usually including TIME. Examples are ANTENNA, FEED, WEATHER. I think the Calabretta interpolation test is a good one: CORRELATOR setups cannot be sensibly interpolated and thus a different ID is required for each setup. For the interpolable tables, one needs to decide what value is actually to be used. I think this belongs in access routines independent of the MS.
The namespace in each table is assumed to be separate.