See below for an overview of the classes in this module.
The MeasurementSet is where all data are ultimately to be found in AIPS++. Since, this is a collection of measurements (either actual or simulated), the term MeasurementSet seems appropriate. Often we use the abbreviation (and typedef) MS for MeasurementSet.
The MeasurementSets module handles storage of telescope data and access to it. The MeasurementSet is the class that gives access to the data.
A MeasurementSet (MS) is a Table with subtables stored as keywords. For each of these tables there is a separate class: the main table is MeasurementSet, the subtables are MSAntenna, MSArray, MSFeed, MSField, MSObsLog, MSObservation, MSSource, MSSpectralWindow, MSSysCal, MSWeather.
Each table has a number of predefined columns and keywords, a subset of which is required to be present. The column and keyword layout of each table is described in AIPS++ Note 191 and in a separate class which contains two enum definitions. The enum classes, e.g., MSMainEnums and MSAntennaEnums , just contain a PredefinedColumn (PDC) enum and a PredefinedKeyword (PDK) enum. These enum definitions are used as template arguments for the generic class MSTable<PDC,PDK> from which MeasurementSet and all the subtable classes are derived. Thus, e.g., the class MSAntenna is derived from MSTable<MSAntennaEnums::PredefinedColumns, MSAntennaEnums::PredefinedKeywords>.
The MSTable class provides a large number of common column and keyword helper functions. They are useful when creating a Table following the MeasurementSet conventions from scratch and assist in following the agreed upon column and keyword naming conventions.
MSTable in turn is derived from Table, thus all the MS table classes are Tables. Many operations on a MeasurementSet are Table operations. See the Tables module for a list of those operations.
The reason for this class hierarchy is to provide each of the table classes with a separate namespace for its column and keyword enums, so that e.g., they can all have a column named TIME, while sharing as much code as possible. The MSTable class forwards any substantial work to the MSTableImpl class which does the actual work, it is a purely implementation class with static functions not of interest to the user.
To simplify the access of columns, and catch type errors in the column declarations for column access objects (TableColumns) at compile time, there is a helper class for each (sub)table (e.g., MSFieldColumns). The helper class for the MeasurementSet, MSColumns gives access to the main table columns and the helper objects for all subtables. A read-only version of these classes is also provided (e.g., ROMSFieldColumns).
At present these classes are separate from the Table classes, mainly to ensure that the member functions are only called on valid, completely constructed MeasurementSet Tables. They also represent a large amount of 'state' in the form of TableColumn objects of which only a couple may actually be used.
Columns in the MeasurementSet and its subtables can have several keywords attached to describe the contents of the column. The UNIT keyword contains an ASCII string describing the unit of the values in the column. The unit member function (in MSTable) will return this unit string, it can be used to construct a Unit object for a particular column.
The MEASURE_TYPE keyword gives the AIPS++ Measure that applies to the column (if any). See the Measures module for a list of available Measures and their use.
The MEASURE_REFERENCE keyword gives (part of) the reference frame needed to interpret the values in a column. An example is J2000 for the POSITION column. A number of static functions in MeasurementSet are available to create a 'template' Measure for a column, which has the MEASURE_TYPE filled in. Currently the following functions exist: directionMeasure, positionMeasure, epochMeasure and frequencyMeasure. They return a Measure which can then be filled with a value from a particular row from the column to obtain, e.g., a proper MDirection Measure for the phase center.
Each of the MS classes has a member function referenceCopy which takes the name of a new Table and a list (Block) of column names to create a Table which references all columns in the original table, except for those listed. The listed columns are new columns which can be written to without affecting the original Table. The main use of this is for the synthesis package where corrected and model visibilities are stored as new DATA columns in an MS which references the raw MS for the other columns. Except for these special cases, the use of this function will be rare.
To accommodate both synthesis and single dish data efficiently, it was decided that a MeasurementSet can have a Complex DATA column, a float FLOAT_DATA column or both. If it has only a FLOAT_DATA column, the corresponding DATA column can be created with the makeComplexData() member function. In special cases, both columns could be present but filled for different rows, with an extra index defined indicating in which column to look (e.g., multi-feed single dish with cross correlations). The details of this last scheme are yet to be worked out. The table consistency checks (isValid()) do not require the presence of either column.
For ID columns, the rule is that a value of -1 indicates that there is no corresponding subtable in which to look up details. An example is the PULSAR_ID column, which should be set to -1 if the optional PULSAR subtable does not exist.
The rules for non integer unset values in MS tables have not settled down yet. For Floating point and Complex values the recommended practice is to set the values to the FITS and IEEE value NaN, with a bit pattern of all 1's. In much of the present filler code unused values are filled with 0 instead.
Upon destruction, the table and all subtables are checked to see that the MeasurementSet remains valid, i.e., all required columns are present. An exception is thrown if not all required columns are present Nevertheless, the table will be flushed to disk if it is writable - preserving its state.
While the class name, MeasurementSet, is descriptive, it is often too long for many common uses. The typedef MS is provided as a convenient shorthand for MeasurementSet. The example below uses this typedef.
This example illustrates creation and filling of the MeasurementSet.
// create the table descriptor TableDesc simpleDesc = MS::requiredTableDesc() // set up a new table SetupNewTable newTab("simpleTab", simpleDesc, Table::New); // create the MeasurementSet MeasurementSet simpleMS(newTab); // now we need to define all required subtables // the following call does this for us if we don't need to // specify details of Storage Managers or non-standard columns. simpleMS.createDummySubtables(Table::New); // fill MeasurementSet via its Table interface // For example, construct one of the column access objects. TableColumn feed(simpleMS, MS::columnName(MS::FEED1)); uInt rownr = 0; // add a row simpleMS.addRow(); // set the values in that row, e.g. the feed column feed.putScalar(rownr,1); // Access the position column in the ANTENNA subtable ArrayColumn<Double> antpos(simpleMS.antenna(), MSAntenna::columnName(MSAntenna::POSITION)); // Add a row to it and fill in the position simpleMS.antenna().addRow(); Array<Double> position(3); position(0)=1.; position(1)=2.; position(2)=3.; antpos.put(0,position); // . // For standard columns the above can be done more easily using // the MSColumns object. // Create the MSColumns MSColumns msc(simpleMS); // and fill in the position msc.antenna().position().put(0,position);
This example illustrates read only access to an existing MeasurementSet and creation of an MDirection Measure for the phase center.
// Create the MeasurementSet from an existing Table on disk MeasurementSet ms("myMS"); // Create the RO column access objects for main table and subtables ROMSColumns msc(ms); // show data from row 5 cout << msc.data()(5) << endl; // show phase center for row 3 in field table Vector<double> phaseCtr=msc.field().phaseCenter()(3); cout << phaseCtr<<endl; // now create a Measure for the phaseCenter MDirection phaseCenterMeasure = MS::directionMeasure(msc.field().phaseCenter()); // put the value from row 3 in the Measure and print it phaseCenterMeasure.set(MVPosition(phaseCtr)); cout <<"phase center:"<< phaseCenterMeasure<<endl;
The attempt is to define a single, extensible, Table format that will be able to cope with all, or at least most, radio telescope data. Having a single MeasurementSet should make it easier to combine data from different instruments. The format of the MeasurementSet, table with subtables, was chosen to be able to cope with items varying at different rates more efficiently than a 'flat' Table layout would allow.
Modules | |
| MeasurementSets_internal_classes | |
| Internal MeasurementSets classes and functions. | |
Classes | |
| class | casa::MeasurementSet |
| A Table intended to hold astronomical data (a set of Measurements). More... | |
| class | casa::MS1ToMS2Converter |
| Class to convert a MeasurementSet v1 to v2. More... | |
| class | casa::MSAntenna |
| A Table intended to hold a MeasurementSet ANTENNA table. More... | |
| class | casa::ROMSAntennaColumns |
| A class to provide easy read-only access to MSAntenna columns. More... | |
| class | casa::MSAntennaColumns |
| A class to provide easy read-write access to MSAntenna columns. More... | |
| class | casa::MSAntennaEnums |
| Enums for the MeasurementSet ANTENNA table. More... | |
| class | casa::MSAntennaIndex |
| Class to handle lookup or indexing into a MS ANTENNA subtable. More... | |
| class | casa::ROMSColumns |
| A class to provide easy read-only access to MeasurementSet columns. More... | |
| class | casa::MSColumns |
| A class to provide easy read-write access to MeasurementSet columns. More... | |
| class | casa::MSConcat |
| A class with functions for concatenating MeasurementSets. More... | |
| class | casa::ROMSDataDescColumns |
| A class to provide easy read-only access to MSDataDesc columns. More... | |
| class | casa::MSDataDescColumns |
| A class to provide easy read-write access to MSDataDescription columns. More... | |
| class | casa::MSDataDescriptionEnums |
| Enums for the MeasurementSet DATA_DESCRIPTION table. More... | |
| class | casa::MSDataDescIndex |
| Class to handle lookup or indexing into a MS DATA_DESC subtable. More... | |
| class | casa::MSDataDescription |
| A Table intended to hold a MeasurementSet DATADESCRIPTION table. More... | |
| class | casa::MSDerivedValues |
| MSDerivedValues calculates values derived from a MS. More... | |
| class | casa::MSDoppler |
| A Table intended to hold a MeasurementSet DOPPLER table. More... | |
| class | casa::ROMSDopplerColumns |
| A class to provide easy read-only access to MSDoppler columns. More... | |
| class | casa::MSDopplerColumns |
| A class to provide easy read-write access to MSDoppler columns. More... | |
| class | casa::MSDopplerEnums |
| Enums for the MeasurementSet DOPPLER table. More... | |
| class | casa::MSDopplerIndex |
| class | casa::MSDopplerUtil |
| A utility class for MS Doppler tracking information. More... | |
| class | casa::MSFeed |
| A Table intended to hold a MeasurementSet FEED table. More... | |
| class | casa::ROMSFeedColumns |
| A class to provide easy read-only access to MSFeed columns. More... | |
| class | casa::MSFeedColumns |
| A class to provide easy read-write access to MSFeed columns. More... | |
| class | casa::MSFeedEnums |
| Enums for the MeasurementSet FEED table. More... | |
| class | casa::MSFeedIndex |
| class | casa::MSField |
| A Table intended to hold a MeasurementSet FIELD table. More... | |
| class | casa::ROMSFieldColumns |
| A class to provide easy access to MSField columns. More... | |
| class | casa::MSFieldColumns |
| A class to provide easy read-write access to MSField columns. More... | |
| class | casa::MSFieldEnums |
| Enums for the MeasurementSet FIELD table. More... | |
| class | casa::MSFieldIndex |
| Class to handle lookup or indexing into a MS FIELD subtable. More... | |
| class | casa::MSFlagCmd |
| A Table intended to hold a MeasurementSet FLAG_CMD table. More... | |
| class | casa::ROMSFlagCmdColumns |
| A class to provide easy read-only access to MSFlagCmd columns. More... | |
| class | casa::MSFlagCmdColumns |
| A class to provide easy read-write access to MSFlagCmd columns. More... | |
| class | casa::MSFlagCmdEnums |
| Enums for the MeasurementSet FLAG_CMD table. More... | |
| class | casa::MSFlagger |
| MSFlagger specifies selections on a MeasurementSet. More... | |
| class | casa::ROMSFreqOffsetColumns |
| A class to provide easy read-only access to MSFreqOffset columns. More... | |
| class | casa::MSFreqOffsetColumns |
| A class to provide easy read-write access to MSFreqOffset columns. More... | |
| class | casa::MSFreqOffsetEnums |
| Enums for the MeasurementSet FREQ_OFFSET table. More... | |
| class | casa::MSFreqOffIndex |
| class | casa::MSFreqOffset |
| A Table intended to hold a MeasurementSet FREQ_OFFSET table. More... | |
| class | casa::MSHistory |
| A Table intended to hold a MeasurementSet OBSERVATIONLOG table. More... | |
| class | casa::ROMSHistoryColumns |
| A class to provide easy read-only access to MSHistory columns. More... | |
| class | casa::MSHistoryColumns |
| A class to provide easy read-write access to MSHistory columns. More... | |
| class | casa::MSHistoryEnums |
| Enums for the MeasurementSet HISTORY table. More... | |
| class | casa::MSInterval |
| Small helper class to specify an 'interval' comparison. More... | |
| class | casa::MSIter |
| An iterator class for MeasurementSets. More... | |
| class | casa::MSLister |
| List visibility records from a Measurement Set. More... | |
| class | casa::ROMSMainColumns |
| A class for easy read-only access to MeasurementSet main table columns. More... | |
| class | casa::MSMainColumns |
| A class for easy read-write access to MeasurementSet main table columns. More... | |
| class | casa::MSMainEnums |
| Enums for the MeasurementSet main table. More... | |
| class | casa::ROMSObservationColumns |
| A class to provide easy read-only access to MSObservation columns. More... | |
| class | casa::MSObservationColumns |
| A class to provide easy read-write access to MSObservation columns. More... | |
| class | casa::MSObservationEnums |
| Enums for the MeasurementSet OBSERVATION table. More... | |
| class | casa::MSObservation |
| A Table intended to hold a MeasurementSet OBSERVATION table. More... | |
| class | casa::MSObservationIndex |
| Class to handle lookup or indexing into an MS OBSERVATION subtable. More... | |
| class | casa::MSPointing |
| A Table intended to hold a MeasurementSet POINTING table. More... | |
| class | casa::ROMSPointingColumns |
| A class to provide easy read-only access to MSPointing columns. More... | |
| class | casa::MSPointingColumns |
| A class to provide easy read-write access to MSPointing columns. More... | |
| class | casa::MSPointingEnums |
| Enums for the MeasurementSet POINTING table. More... | |
| class | casa::MSPointingIndex |
| class | casa::MSPolarization |
| A Table intended to hold a MeasurementSet POLARIZATION table. More... | |
| class | casa::ROMSPolarizationColumns |
| A class to provide easy read-only access to MSPolarization columns. More... | |
| class | casa::MSPolarizationColumns |
| A class to provide easy read-write access to MSPolarization columns. More... | |
| class | casa::MSPolarizationEnums |
| Enums for the MeasurementSet POLARIZATION table. More... | |
| class | casa::MSPolarizationIndex |
| Class to handle lookup or indexing into an MS POLARIZATION subtable. More... | |
| class | casa::MSProcessor |
| A Table intended to hold a MeasurementSet PROCESSOR table. More... | |
| class | casa::ROMSProcessorColumns |
| A class to provide easy read-only access to MSProcessor columns. More... | |
| class | casa::MSProcessorColumns |
| A class to provide easy read-write access to MSProcessor columns. More... | |
| class | casa::MSProcessorEnums |
| Enums for the MeasurementSet PROCESSER table. More... | |
| class | casa::MSRange |
| MSRange determines ranges of values in a MeasurementSet. More... | |
| class | casa::MSSelection |
| MSSelection: Class to represent a selection on an MS. More... | |
| class | casa::MSSelectionError |
| class | casa::MSSelectionTimeError |
| ------------------------------------------------------------------- Error thrown by MSTimeXXXX classes. More... | |
| class | casa::MSSelectionAntennaError |
| ------------------------------------------------------------------- Error thrown by MSAntennaXXXX classes. More... | |
| class | casa::MSSelectionFieldError |
| Error thrown by MSFieldXXXX classes. More... | |
| class | casa::MSSelectionUvDistError |
| Error thrown by MSUvDistXXXX classes. More... | |
| class | casa::MSSelectionSpwError |
| ------------------------------------------------------------------- Error thrown by MSSpwXXXX classes. More... | |
| class | casa::MSSelectionScanError |
| ------------------------------------------------------------------- Error thrown by MSScanXXXX classes. More... | |
| class | casa::MSSelectionArrayError |
| ------------------------------------------------------------------- Error thrown by MSArrayXXXX classes. More... | |
| class | casa::MSSelectionKeywords |
| MSSelectionKeywords specifies selection keywords for the MeasurementSet. More... | |
| class | casa::MSSelector |
| MSSelector specifies selections on a MeasurementSet. More... | |
| class | casa::MSSelUtil< T > |
| Helper class for MSFlagger with templated static function. More... | |
| class | casa::MSSelUtil2< T > |
| Helper class for MSSelector/DOms with templated static functions. More... | |
| class | casa::MSSimulator |
| Create an empty MeasurementSet from observation and telescope descriptions. More... | |
| class | casa::MSSource |
| A Table intended to hold a MeasurementSet SOURCE table. More... | |
| class | casa::ROMSSourceColumns |
| A class to provide easy read-only access to MSSource columns. More... | |
| class | casa::MSSourceColumns |
| A class to provide easy read-write access to MSSource columns. More... | |
| class | casa::MSSourceEnums |
| Enums for the MeasurementSet SOURCE table. More... | |
| class | casa::MSSourceIndex |
| class | casa::MSSpectralWindow |
| A Table intended to hold a MeasurementSet SPECTRAL_WINDOW table. More... | |
| class | casa::MSSpwIndex |
| Class to handle lookup or indexing into a MS Data_Desc_ID and SpectralWindow subtables. More... | |
| class | casa::ROMSSpWindowColumns |
| A class to provide easy read-only access to MSASpectralWindow columns. More... | |
| class | casa::MSSpWindowColumns |
| A class to provide easy read-write access to MSSpectralWindow columns. More... | |
| class | casa::MSSpectralWindowEnums |
| Enums for the MeasurementSet SPECTRAL_WINDOW table. More... | |
| class | casa::MSSpWindowIndex |
| Class to handle lookup or indexing into a MS SPECTRAL_WINDOW subtable. More... | |
| class | casa::MSState |
| A Table intended to hold a MeasurementSet STATE table. More... | |
| class | casa::ROMSStateColumns |
| A class to provide easy read-only access to MSState columns. More... | |
| class | casa::MSStateColumns |
| A class to provide easy read-write access to MSState columns. More... | |
| class | casa::MSStateEnums |
| Enums for the MeasurementSet STATE table. More... | |
| class | casa::MSSummary |
| Provides and lists information about the header of an image. More... | |
| class | casa::MSSysCal |
| A Table intended to hold a MeasurementSet SYSCAL table. More... | |
| class | casa::ROMSSysCalColumns |
| A class to provide easy read-only access to MSSysCal columns. More... | |
| class | casa::MSSysCalColumns |
| A class to provide easy read-write access to MSSysCal columns. More... | |
| class | casa::MSSysCalEnums |
| Enums for the MeasurementSet SYSCAL table. More... | |
| class | casa::MSSysCalIndex |
| class | casa::MSTable< ColEnum, KeyEnum > |
| A Table intended to hold astronomical data. More... | |
| class | casa::MSTableIndex |
| class | casa::MSTileLayout |
| An helper class for deciding on tile shapes in MeasurementSets. More... | |
| class | casa::MSValidIds |
| class | casa::MSWeather |
| A Table intended to hold a MeasurementSet WEATHER table. More... | |
| class | casa::ROMSWeatherColumns |
| A class to provide easy read-only access to MSWeather columns. More... | |
| class | casa::MSWeatherColumns |
| A class to provide easy read-write access to MSWeather columns. More... | |
| class | casa::MSWeatherEnums |
| Enums for the MeasurementSet WEATHER table. More... | |
| class | casa::MSWeatherIndex |
| class | casa::NewMSSimulator |
| Create an empty MeasurementSet from observation and telescope descriptions. More... | |
| class | casa::StokesConverter |
| StokesConverter converts any set of polarizations into any other one. More... | |
1.5.1