A pdf version of this note is available.
A MeasurementSet is an AIPS++ Table containing data from a telescope. Telescopes all record data in their own way, the MeasurementSet layout describes how these measurements are to be stored within the AIPS++ system. This document describes the predefined columns and keywords (including subtables) of the MeasurementSet (MS). The predefined items include required and optional ones. In addition to the predefined columns, MeasurementSets can contain instrument specific columns, keywords or subtables. These additional items would only be accessed from instrument specific code.
The MeasurementSet is coded as a series of related classes. Each subtable follows the same basic scheme as the MAIN table. The namespace in each table is separate. For each (sub)table there is a separate class which provides various conversion and inquiry functions for the columns and keywords and defines the required set of columns and keywords. The main MeasumentSet class provides access to the subtables via these classes. E.g., MeasurementSet has a member function antenna() which gives access to the ANTENNA subtable. More detailed documentation on these classes can be found in the on-line documentation (directory: code/trial/implement/MeasurementSet).
The definite descriptions of the MS tables are contained within the AIPS++ class documentation files in the MeasurementSet module. For each of the MeasurementSet tables there is a file (e.g. MSMainEnums.html, MSAntennaEnums.html) giving a description for the enum name (e.g., DATA, POSITION) used for a particular column or keyword. Examples on how to use these classes to write a filler for a particular instrument can be found by looking at existing fillers, e.g., uvfitsfiller.
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 |
CORRELATOR | Correlator setup | CORRELATOR_ID |
FEED | Feed characteristics | FEED_ID, ANTENNA_ID, ARRAY_ID, TIME, SPECTRAL_WINDOW_ID |
FIELD | Position etc for each pointing. | FIELD_ID |
FLAGGING_LOG | Log of flagging operations | ANTENNA_ID, ARRAY_ID, FEED_ID, SPECTRAL_WINDOW_ID, FIELD_ID, TIME, INTERVAL |
OBSERVATION | Observer, Schedule, etc | OBSERVATION_ID |
OBS_LOG | Log from on-line system | OBSERVATION_ID, TIME |
SOURCE | Positions, etc for each source | SOURCE_ID, SPECTRAL_WINDOW_ID, TIME |
SPECTRAL_WINDOW | Spectral window setups | SPECTRAL_WINDOW_ID |
SYSCAL | System calibration characteristics | FEED_ID, ANTENNA_ID, ARRAY_ID, TIME, SPECTRAL_WINDOW_ID |
WEATHER | Weather info for each antenna | ANTENNA_ID, ARRAY_ID, TIME |
Note that there are two types of subtables. For the first, simpler type, the key (ID) is the row number in the subtable. Examples are ARRAY, FIELD, SPECTRAL_WINDOW, OBSERVATION and CORRELATOR. For the second, the key is a collection of parameters, usually including TIME. Examples are ANTENNA, FEED, SOURCE, SYSCAL, WEATHER. We 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. We think this belongs in access routines independent of the MS.
Notes:
MAIN table: Coordinates, Data, pointers and Flags
| ||||
Name | Format | Units | Measure | Comments
|
Columns | ||||
Coordinate information
| ||||
ANTENNA1 | Int |
| First antenna |
|
ANTENNA2 | Int |
| Second antenna | |
EXPOSURE | Double | s |
| The effective integration time |
FEED1 | Int |
| Feed on ANTENNA1 | |
FEED2 | Int |
| Feed on ANTENNA2 |
|
INTERVAL | Double | s |
| Sampling interval |
PULSAR_BIN | Int |
| Pulsar bin number | |
SCAN_NUMBER | Int |
| Scan Number |
|
TIME | Double | s | EPOCH | Midpoint of the integration. |
TIME_EXTRA_PREC | Double | s |
| add to TIME for extra precision (optional) |
UVW | Double(3) | m | UVW | UVW coordinates |
Pointers into subtables
| ||||
ARRAY_ID | Int |
|
|
|
CORRELATOR_ID | Int |
|
| |
FIELD_ID | Int |
| ||
OBSERVATION_ID | Int |
|
| |
PULSAR_ID | Int |
| ||
SPECTRAL_WINDOW_ID | Int |
|
| |
Data | ||||
DATA | Complex(NUM_CORR, NUM_CHAN) |
| Complex visibility matrix (synthesis arrays, optional) |
|
FLOAT_DATA | Float(NUM_CORR, NUM_CHAN) |
| Float data matrix (single dish, optional) |
|
SIGMA | Float(NUM_CORR) |
| Estimated rms noise for single channel |
|
SIGMA_SPECTRUM | Float(NUM_CORR, NUM_CHAN) |
| Estimated rms noise (optional) |
|
WEIGHT | Float |
| Weight for whole data matrix |
|
WEIGHT_SPECTRUM | Float(NUM_CHAN) |
| Weight for each channel (optional) |
|
Flag information
| ||||
FLAG | Bool(NUM_CORR, NUM_CHAN) |
| The data flags |
|
FLAG_HISTORY | Bool (NUM_CORR, NUM_CHAN, NUM_HIS) |
| History of flags (optional) |
|
FLAG_ROW | Bool |
| The row flag |
|
Next we describe the various subtables. The columns are categorized into Keys, Data description, Data, and Flags.
ANTENNA: antenna characteristics | ||||
Name | Format | Units | Measure | Comments |
Columns
| ||||
Coordinate information
| ||||
ANTENNA_ID | Int |
| Key |
|
ARRAY_ID | Int |
| Key |
|
Pointers
| ||||
ORBIT_ID | Int |
| Orbit parameters |
|
PHASED_ARRAY_ID | Int |
| Phased array |
|
Data
| ||||
DISH_DIAMETER | Double | m |
| Diameter of dish |
MOUNT | String |
| Mount type:alt-az, equatorial, X-Y, orbiting, bizarre |
|
NAME | String |
| Antenna name |
|
OFFSET | Double(3) | m | POSITION | Axes offset of mount to FEED REFERENCE point |
POSITION | Double(3) | m | POSITION | Antenna X,Y,Z phase reference positions |
STATION | String |
| Station name |
|
ARRAY: Array characteristics
| ||||
Name | Format | Units | Measure | Comments
|
Data | ||||
NAME | String |
| Name of array (e.g. ’VLAA’, ’EVN’, ’VLBA-PT’). Informational only |
|
POSITION | Double(3) | m | POSITION | Array reference position (optional), same frame as antenna positions. |
FEED: Feed characteristics | ||||
Name | Format | Units | Measure | Comments |
Columns
| ||||
Keys
| ||||
ANTENNA_ID | Int |
| Antenna id |
|
ARRAY_ID | Int |
| Array id |
|
FEED_ID | Int |
| Feed id | |
INTERVAL | Double | s |
| Interval |
SPECTRAL_WINDOW_ID | Int |
| Spectral Window id |
|
TIME | Double | s | EPOCH | Midpoint of validity range of parameters |
Data description
| ||||
NUM_RECEPTORS | Int |
| # receptors on this feed |
|
Data
| ||||
BEAM_ID | Int |
| Beam model |
|
BEAM_OFFSET | Double(2, NUM_RECEPTORS) | rad | DIRECTION | Beam position offset (on sky but in antenna reference frame). |
PHASED_FEED_ID | Int |
| Phased feed | |
POLARIZATION_TYPE | String (NUM_RECEPTORS) |
| Type of polarization to which a given RECEPTOR responds. Probably R, L or X, Y. |
|
POL_RESPONSE | Complex (NUM_RECEPTORS, NUM_RECEPTORS) |
| D-matrix i.e. leakage between two receptors |
|
POSITION | Double(3) | m | POSITION | Position of feed relative to feed reference position for this antenna |
RECEPTOR_ANGLE | Double (NUM_RECEPTORS) | rad |
| The reference angle for polarization. Converts into Parallactic angle in the Sky domain. |
FIELD: Field positions for each source
| ||||
Name | Format | Units | Measure | Comments
|
Columns | ||||
Keys
| ||||
FIELD_ID | Int |
| Field Id |
|
Data
| ||||
CODE | String |
| Special characteristics of field |
|
DELAY_DIR | Double(2) | rad | DIRECTION | Direction of delay center. |
DELAY_DIR_RATE | Double(2) | rad/s |
| Rate of change of direction of delay direction |
NAME | String |
| Name of field |
|
PHASE_DIR | Double(2) | rad | DIRECTION | Phase center. |
PHASE_DIR_RATE | Double(2) | rad/s |
| Rate of change of direction of phase center. |
POINTING_DIR | Double(2) | rad | DIRECTION | Pointing center |
POINTING_DIR_RATE | Double(2) | rad/s |
| Rate of change of direction of pointing center. |
REFERENCE_DIR | Double(2) | rad | DIRECTION | Reference center |
REFERENCE_DIR_RATE | Double(2) | rad/s |
| Rate of change of direction of reference center. |
SOURCE_ID | Int |
| Index in Source table | |
TIME | Double | s | EPOCH | Time origin for the directions and rates |
OBSERVATION: Observation information | ||||
Name | Format | Units | Measure | Comments |
Columns
| ||||
Data | ||||
CORR_SCHEDULE | String(*) |
| Correlator script |
|
OBSERVER | String |
| Name of observer(s) |
|
OBS_SCHEDULE | String(*) |
| Project Schedule |
|
PROJECT | String |
| Project identification string. |
|
Flags
| ||||
OBS_LOG: Observation log information
| ||||
Name | Format | Units | Measure | Comments
|
Columns | ||||
Keys
| ||||
OBSERVATION_ID | Int |
| Points to OBSERVATION table |
|
TIME | Double | s | EPOCH | Timestamp for message |
Data
| ||||
MESSAGE | String |
| log message |
|
SOURCE: Source information | ||||
Name | Format | Units | Measure | Comments |
Columns
| ||||
Keys
| ||||
INTERVAL | Double | s |
| Interval |
SOURCE_ID | Int |
| Source id | |
SPECTRAL_WINDOW_ID | Int |
| Spectral Window id |
|
TIME | Double | s | EPOCH | Midpoint of time for which this set of parameters is accurate |
Data
| ||||
CALIBRATION_GROUP | Int |
| # grouping for calibration purpose |
|
CODE | String |
| Special characteristics of source, e.g. Bandpass calibrator |
|
DIRECTION | Double(2) | rad | DIRECTION | Direction (e.g. RA, DEC) |
NAME | String |
| Name of source as given during observations |
|
POSITION | Double(3) | m | POSITION | Position (e.g. for solar system objects) |
PROPER_MOTION | Double(2) | rad/s |
| Proper motion |
SYSVEL | Double | m/s | RADIAL VELOCITY | Systemic velocity at reference |
SPECTRAL_WINDOW: Spectral window setups
| ||||
Name | Format | Units | Measure | Comments
|
Columns | ||||
Data description columns
| ||||
CORR_TYPE | Int(NUM_CORR) |
| Polarization of correlation |
|
CORR_PRODUCT | Int(2, NUM_CORR) |
| (see below) |
|
IF_CONV_CHAIN | Int |
| The IF conversion chain |
|
NUM_CHAN | Int |
| # spectral channels |
|
NUM_CORR | Int |
| # correlations |
|
Data
| ||||
CHAN_FREQ | Double(NUM_CHAN) | Hz | FREQUENCY | Center frequencies for each channel in the data matrix. |
MOLECULE | String |
| Molecule observed (optional) |
|
REF_FREQUENCY | Double | Hz | FREQUENCY | The reference frequency. |
RESOLUTION | Double(NUM_CHAN) | Hz |
| The effective noise bandwidth of spectral channels |
TOTAL_BANDWIDTH | Double | Hz |
| total bandwidth for this window |
TRANSITION | String |
| Transition of molecule (optional) |
|
REST_FREQUENCY | Double | Hz | FREQUENCY | The rest frequency (spectral line) |
SYSCAL: System calibration
| ||||
Name | Format | Units | Measure | Comments
|
Columns | ||||
Keys
| ||||
ANTENNA_ID | Int |
| Antenna id |
|
ARRAY_ID | Int |
| Array id |
|
FEED_ID | Int |
| Feed id | |
INTERVAL | Double | s |
| Interval |
SPECTRAL_WINDOW_ID | Int |
| Spectral window id |
|
TIME | Double | s | EPOCH | Midpoint of time for which this set of parameters is accurate |
Data description
| ||||
NUM_RECEPTORS | Int |
| # receptors on this feed (1 or 2) |
|
Data
| ||||
PHASE_DIFF | Float | rad |
| Phase difference between receptor 2 and receptor 1 |
TCAL | Float (NUM_RECEPTORS) | K |
| Calibration temp |
TRX | Float (NUM_RECEPTORS) | K |
| Receiver temperature |
TSYS | Float (NUM_RECEPTORS) | K |
| System temp |
TCAL_SPECTRUM | Float (NUM_RECEPTORS, NUM_CHAN) | K |
| Calibration temp (optional) |
TRX_SPECTRUM | Float (NUM_RECEPTORS, NUM_CHAN) | K |
| Receiver temperature (optional) |
TSYS_SPECTRUM | Float (NUM_RECEPTORS, NUM_CHAN) | K |
| System temp (optional) |
Flags
| ||||
PHASE_DIFF_FLAG | Bool |
| Flag for PHASE_DIFF |
|
TCAL_FLAG | Bool |
| Flag for TCAL |
|
TRX_FLAG | Bool |
| Flag for TRX |
|
TSYS_FLAG | Bool |
| Flag for TSYS |
|
WEATHER: weather station information | ||||
Name | Format | Units | Measure | Comments |
Columns
| ||||
Keys
| ||||
ANTENNA_ID | Int |
| Antenna number |
|
ARRAY_ID | Int |
| Array id |
|
INTERVAL | Double | s |
| Interval over which data is relevant |
TIME | Double | s | EPOCH |
|
Data | ||||
H2O | Float |
| Average column density of water |
|
IONOS_ELECTRON | Float |
| Average column density of electrons |
|
PRESSURE | Float | Pa |
| Ambient atmospheric pressure |
REL_HUMIDITY | Float |
| Ambient relative humidity |
|
TEMPERATURE | Float | K |
| Ambient Air Temperature for an antenna |
WIND_DIRECTION | Float | rad |
| Average wind direction |
WIND_SPEED | Float | m/s |
| Average wind speed |