casacore
Loading...
Searching...
No Matches
MeasurementSet.h
Go to the documentation of this file.
1//# MeasurementSet.h: A Table to hold astronomical data (a set of Measurements)
2//# Copyright (C) 1996,1997,1999,2000,2001,2003
3//# Associated Universities, Inc. Washington DC, USA.
4//#
5//# This library is free software; you can redistribute it and/or modify it
6//# under the terms of the GNU Library General Public License as published by
7//# the Free Software Foundation; either version 2 of the License, or (at your
8//# option) any later version.
9//#
10//# This library is distributed in the hope that it will be useful, but WITHOUT
11//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13//# License for more details.
14//#
15//# You should have received a copy of the GNU Library General Public License
16//# along with this library; if not, write to the Free Software Foundation,
17//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18//#
19//# Correspondence concerning AIPS++ should be addressed as follows:
20//# Internet email: casa-feedback@nrao.edu.
21//# Postal address: AIPS++ Project Office
22//# National Radio Astronomy Observatory
23//# 520 Edgemont Road
24//# Charlottesville, VA 22903-2475 USA
25
26#ifndef MS_MEASUREMENTSET_H
27#define MS_MEASUREMENTSET_H
28
29#include <casacore/casa/aips.h>
30#include <casacore/ms/MeasurementSets/MSTable.h>
31#include <casacore/ms/MeasurementSets/MSMainEnums.h>
32#include <casacore/ms/MeasurementSets/MSAntenna.h>
33#include <casacore/ms/MeasurementSets/MSDataDescription.h>
34#include <casacore/ms/MeasurementSets/MSDoppler.h>
35#include <casacore/ms/MeasurementSets/MSFeed.h>
36#include <casacore/ms/MeasurementSets/MSField.h>
37#include <casacore/ms/MeasurementSets/MSFlagCmd.h>
38#include <casacore/ms/MeasurementSets/MSFreqOffset.h>
39#include <casacore/ms/MeasurementSets/MSHistory.h>
40#include <casacore/ms/MeasurementSets/MSObservation.h>
41#include <casacore/ms/MeasurementSets/MSPointing.h>
42#include <casacore/ms/MeasurementSets/MSPolarization.h>
43#include <casacore/ms/MeasurementSets/MSProcessor.h>
44#include <casacore/ms/MeasurementSets/MSSource.h>
45#include <casacore/ms/MeasurementSets/MSSpectralWindow.h>
46#include <casacore/ms/MeasurementSets/MSState.h>
47#include <casacore/ms/MeasurementSets/MSSysCal.h>
48#include <casacore/ms/MeasurementSets/MSWeather.h>
49#include <set>
50
51
52namespace casacore { //# NAMESPACE CASACORE - BEGIN
53
54class MrsEligibility { // Memory Resident Subtable (Mrs) Eligibility (no pun intended)
55
56public:
57
59
60 friend MrsEligibility operator- (const MrsEligibility & a, SubtableId subtableId);
61 friend MrsEligibility operator+ (const MrsEligibility & a, SubtableId subtableId);
64
65 // Returns true if the specified subtable is in the set of subtables
66 // eligible for memory residency.
67 Bool isEligible (SubtableId subtableId) const;
68
69 // Factory methods to create MrsEligibility sets. The two functions with
70 // parameter packs used to be variable argument functions. Because of this,
71 // it used to be required to use the id MSMainEnums::UNDEFINED_KEYWORD as the
72 // last parameter.
73 // Now that the functions use parameter packs, this is no longer required,
74 // and a value of UNDEFINED_KEYWORD is ignored.
78
79 template <typename... SubtableIds>
80 static MrsEligibility eligibleSubtables (SubtableIds... subtableIds) {
81 MrsEligibility eligible;
82 for(const SubtableId subtableId : {subtableIds...}) {
83 // This function was converted from variable argument functions
84 // to using a parameter pack. Because of this, callers specify 'UNDEFINED_KEYWORD'
85 // as the last parameter, which can just be ignored.
86 if (subtableId != MSMainEnums::UNDEFINED_KEYWORD){
87 ThrowIf (! isSubtable (subtableId), "Invalid subtable ID: " + String::toString (subtableId));
88 eligible.eligible_p.insert(subtableId);
89 }
90 }
91 return eligible;
92 }
93
94 template <typename... SubtableIds>
95 static MrsEligibility allButTheseSubtables (SubtableIds... subtableIds) {
96 MrsEligibility ineligible;
97 for(const SubtableId subtableId : {subtableIds...}) {
98 // This function was converted from variable argument functions
99 // to using a parameter pack. Because of this, callers specify 'UNDEFINED_KEYWORD'
100 // as the last parameter, which can just be ignored.
101 if (subtableId != MSMainEnums::UNDEFINED_KEYWORD) {
102 ThrowIf (! isSubtable (subtableId), "Invalid subtable ID: " + String::toString (subtableId));
103 ineligible.eligible_p.insert (subtableId);
104 }
105 }
106
107 // Get the set of all subtables and then subtract off the
108 // caller specified columns. Return the result
109 MrsEligibility eligible;
110 set_difference (allSubtables_p.eligible_p.begin(), allSubtables_p.eligible_p.end(),
111 ineligible.eligible_p.begin(), ineligible.eligible_p.end(),
112 inserter (eligible.eligible_p, eligible.eligible_p.begin()));
113 return eligible;
114 }
115
116private:
117
118 typedef std::set<MSMainEnums::PredefinedKeywords> Eligible;
119
121
123
124 static Bool isSubtable (SubtableId subtableId);
125};
126
127// Creates a new MrsEligibilitySet by adding or removing the specified subtable or
128// the specified set of subtables.
133
134//# Forward Declarations, more could be if they weren't part of the
135//# static classes
136class SetupNewTable;
137template <class T> class Block;
138class MDirection;
139class MEpoch;
140class MFrequency;
141class MPosition;
142class Record;
143
144//# forward declared so that the following typedef is up-front
145class MeasurementSet;
146
147// MeasurementSet is too cumbersome for a number of common uses,
148// so we give a typedef here.
150
151// <summary>
152// A Table intended to hold astronomical data (a set of Measurements).
153// </summary>
154
155// <use visibility=export>
156
157// <reviewed reviewer="Bob Garwood" date="1997/02/01" tests="tMeasurementSet.cc" demos="">
158
159// <prerequisite>
160// <li> <linkto module="Tables:description">Tables</linkto> module
161// <li> <linkto class="MSTable">MSTable</linkto>
162// </prerequisite>
163//
164// <etymology>
165// The MeasurementSet is where all data are ultimately to be found
166// in Casacore. Since, this is a collection of
167// measurements (either actual or simulated), the term MeasurementSet
168// seems appropriate.
169// </etymology>
170//
171// <synopsis>
172// A MeasurementSet is a Table. Most operations on a MeasurementSet are
173// Table operations. See the <linkto module="Tables:description">Tables</linkto>
174// module for a list of those operations. The member functions provided by this
175// class are primarily convenience functions to help users follow the
176// agreed upon column and keyword naming conventions. They are useful when
177// creating a Table following the MeasurementSet conventions from
178// scratch as well as when creating the column objects to access those
179// columns.
180//
181// The standard way of accessing
182// table columns is through Strings. Mistakes in typing the column
183// name will not be caught at compile time (and may not be caught at
184// run time). We have therefore decided to use an enumeration
185// to specify columns so that many mistakes will be caught at compile
186// time. This requires functions to map to and from this enumeration
187// to the strings that are ultimately used.
188//
189// Upon destruction, the table is checked to see that the
190// MeasurementSet remains valid, i.e., all required columns are present
191// An exception is thrown if not all required columns are present
192// Nevertheless, the table will be flushed to disk if it is writable -
193// preserving its state.
194//
195// A MeasurementSet has a number of required subtables. These are stored
196// as keywords in the Table. Access to these subtables is provided via
197// member functions (e.g. antenna() for the ANTENNA table). All subtables
198// have associated MeasurementSet-like classes defined for them (MSAntenna
199// for the ANTENNA table) which provide analogous column and keyword mapping
200// as provided here.
201//
202// While the class name, MeasurementSet, is descriptive, it is often
203// too long for many common uses. The typedef MS is provided as
204// a convenient shorthand for MeasurementSet. The example below uses this
205// typedef.
206//
207// Due to the inheritance scheme, it was necessary to separate the enumerations
208// used by MeasurementSet into a separate class,
209// <linkto class=MSMainEnums>MSMainEnums</linkto>.
210//
211// </synopsis>
212//
213// <example>
214// This example illustrates a simple use of the MeasurementSet class.
215// <srcblock>
216// // create the table descriptor
217// TableDesc simpleDesc = MS::requiredTableDesc();
218// // set up a new table
219// SetupNewTable newTab("simpleTab", simpleDesc, Table::New);
220// // create the MeasurementSet
221// MeasurementSet simpleMS(newTab);
222// // now we need to define all required subtables
223// // the following call does this for us if we don't need to
224// // specify details of Storage Managers for columns.
225// simpleMS.createDefaultSubtables(Table::New);
226// // fill MeasurementSet via its Table interface
227// // For example, construct one of the columns
228// TableColumn feed(simpleMS, MS::columnName(MS::FEED1));
229// rownr_t rownr = 0;
230// // add a row
231// simpleMS.addRow();
232// // set the values in that row, e.g. the feed column
233// feed.putScalar(rownr,1);
234// // Access a subtable
235// ArrayColumn<Double> antpos(simpleMS.antenna(),
236// MSAntenna::columnName(MSAntenna::POSITION));
237// simpleMS.antenna().addRow();
238// Array<Double> position(3);
239// position(0)=1.; position(1)=2.; position(2)=3.;
240// antpos.put(0,position);
241// // etc.
242// </srcblock>
243//
244// </example>
245//
246// <motivation>
247// The Table module is more than adequate as a container of data.
248// However, in order for applications to be useful with data from
249// different sources, some conventions need to be adopted in the use
250// of Tables to store data. The MeasurementSet is
251// where those conventions are defined and, to some extent, enforced.
252//
253// There are a number of reasons why MeasurementSet is more
254// than just a Table.
255// <ul>
256// <li> To provide one location where the column and keyword names, data
257// types, and table comment strings are found.
258// <li> To provide one location where the required table descriptor for
259// the MeasurementSet is found.
260// <li> To provide a means of verifying the validity of a MeasurementSet
261// at construction and destruction.
262// <li> To allow application programmers to catch name or data type
263// mistakes at compile time rather than at run time.
264// </ul>
265//
266// </motivation>
267//
268// <todo asof="1996/2/22">
269// <li> referenceCopy() should be more flexible with the storage managers used
270// for the columns which are not merely references.
271// <li> When ForwardColumnEngine is fixed so that it can deal with
272// tables already in the cache, modify the test program. It may also
273// be necessary to modify referenceCopy().
274// </todo>
275
276class MeasurementSet : public MSTable<MSMainEnums>,
277 public MSMainEnums
278{
279
280public:
281 // This constructs an empty MeasurementSet, only useful to assign to
282 // (it is not a valid MS yet).
284
285 // These constructors mirror the Table ones with additional checking
286 // on validity (verifying that the MS will have the required columns
287 // and keywords)
288 // An exception is thrown if the constructed Table is not a valid MS
289 // <thrown>
290 // <li> AipsError
291 // </thrown>
292 // <group name=tableLikeConstructors>
293
297
299 bool doNotLockSubtables, TableOption = Table::Old);
300 // Allows keeping subtables unlocked/read-locked independent of lock
301 // mode of main table.
302
303 MeasurementSet (const String &tableName, const String &tableDescName,
305 MeasurementSet (const String &tableName, const String &tableDescName,
308 Bool initialize = False);
310 rownr_t nrrow = 0, Bool initialize = False);
311 MeasurementSet (const Table &table, const MeasurementSet * otherMs = NULL);
312
313#ifdef HAVE_MPI
314 MeasurementSet (MPI_Comm comm, SetupNewTable &newTab, rownr_t nrrow = 0,
315 Bool initialize = False);
316 MeasurementSet (MPI_Comm comm, SetupNewTable &newTab, const TableLock& lockOptions,
317 rownr_t nrrow = 0, Bool initialize = False);
318#endif // HAVE_MPI
319
321 // </group>
322
323 // As with tables, the destructor writes the table if necessary.
324 // Additional checking is done here to verify that all required
325 // columns are still present.
326 // If it is NOT valid, it will write the table and then throw an exception.
327 // <thrown>
328 // <li> AipsError
329 // </thrown>
331
332 // Assignment operator, reference semantics
334
335 // Make a special copy of this MS which references all columns from
336 // this MS except those mentioned; those are empty and writable.
337 // Each forwarded column has the same writable status as the underlying
338 // column. The mentioned columns all use the AipsIO storage manager.
339 // The main use of this is for the synthesis package where corrected and
340 // model visibilities are stored as new DATA columns in an MS which
341 // references the raw MS for the other columns. Except for these special
342 // cases, the use of this function will be rare.
344 const Block<String>& writableColumns) const;
345
346 // Converts the MS to make the specified set of subtables memory resident.
347 void
349
350 // Return the name of each of the subtables. This should be used by the
351 // filler to create the subtables in the correct location.
352 // <group>
370 // </group>
371
372 // Access functions for the subtables, using the MS-like interface for each
373 // <group>
377 MSFeed& feed() {return feed_p;}
378 MSField& field() {return field_p;}
388 MSState& state() {return state_p;}
391 const MSAntenna& antenna() const {return antenna_p;}
393 const MSDoppler& doppler() const {return doppler_p;}
394 const MSFeed& feed() const {return feed_p;}
395 const MSField& field() const {return field_p;}
396 const MSFlagCmd& flagCmd() const {return flagCmd_p;}
397 const MSFreqOffset& freqOffset() const {return freqOffset_p;}
398 const MSHistory& history() const {return history_p;}
399 const MSObservation& observation() const {return observation_p;}
400 const MSPointing& pointing() const {return pointing_p;}
402 const MSProcessor& processor() const {return processor_p;}
403 const MSSource& source() const {return source_p;}
405 const MSState& state() const {return state_p;}
406 const MSSysCal& sysCal() const {return sysCal_p;}
407 const MSWeather& weather() const {return weather_p;}
408 // </group>
409
411
412 // Initialize the references to the subtables. You need to call
413 // this only if you assign new subtables to the table keywords.
414 // This also checks for validity of the table and its subtables.
415 // Set clear to True to clear the subtable references (used in assignment)
416 void initRefs(Bool clear=False);
417
418 // Create default subtables: fills the required subtable keywords with
419 // tables of the correct type, mainly for testing and as an example of
420 // how to do this for specific fillers. In practice these tables will
421 // often have more things specified, like dimensions of arrays and
422 // storage managers for the various columns.
424#ifdef HAVE_MPI
426#endif // HAVE_MPI
427
428 // Initialize the statics appropriately. This does not need to be
429 // called by users, it is called by the implementation class
430 // MSTableImpl.
432
433 // Create DATA column from existing FLOAT_DATA column. Noop if DATA already
434 // exists or neither exists (returns False in that case).
436
437 // Validate Measure references - check that all Measure columns have their
438 // reference value set, report the ones that don't.
440
441 // Flush all the tables and subtables associated with this
442 // MeasurementSet. This function calls the Table::flush() function on the
443 // main table and all the standard subtables including optional
444 // subtables. See the Table class for a description of the sync argument.
445 void flush(Bool sync=False);
446
447 // Return a record of the indices that the msselection selection selected
448 Record msseltoindex(const String& spw="", const String& field="",
449 const String& baseline="", const String& time="",
450 const String& scan="", const String& uvrange="",
451 const String& observation="", const String& poln="",
452 const String& taql="");
453
454protected:
455
456
457 // Clears all of the subtable components of this object (i.e., set to
458 // value of subtable's default constructor).
460
461 // Assigns one subtable to another if the original subtable (otherSubtable)
462 // is not null and is also memory resident
463 void copySubtable (const Table & otherSubtable, Table & subTable);
464
465 // Copies (assigns) all of the non-null subtables from the other MS into this one.
466 void copySubtables (const MeasurementSet & other);
467
468 // Returns true if the named subtable is eligible for memory residency.
469 Bool isEligibleForMemoryResidency (const String & subtableName) const;
470
471 // Opens all of the eligible subtables in memory resident form
473
474 // The top level name for MRS related CASARC settings
476 {
477 return "MemoryResidentSubtables";
478 }
479
480private:
481
482 // temporary function to add the CATEGORY keyword to the FLAG_CATEGORY
483 // column if it isn't there yet. 2000/08/22
484 // remove this and the calls next MS update
485 void addCat();
486
487 // check that the MS is the latest version (2.0)
489
490 // Creates subtables using an explicit MPI communicator (if MPI support
491 // is enabled)
492 template<typename T>
494
495 // Opens a single subtable as memory resident (if permitted).
496 template <typename Subtable>
497 void
498 openMrSubtable (Subtable & subtable, const String & subtableName);
499
500 // Opens a single subtable if not present in MS object but defined in on-disk MS
501 template <typename Subtable>
502 void
503 openSubtable (Subtable & subtable, const String & subtableName, Bool useLock);
504
505 // keep references to the subtables
518 MSSource source_p; //optional
521 MSSysCal sysCal_p; //optional
523
524 bool doNotLockSubtables_p; // used to prevent subtable locking to allow parallel interprocess sharing
525 int mrsDebugLevel_p; // logging level currently enabled
526 Bool hasBeenDestroyed_p; // required by the need to throw an exception in the destructor
528 Bool memoryResidentSubtables_p; // true if memory resident subtables are enabled
529 MrsEligibility mrsEligibility_p; // subtables which can be made memory resident
530
531};
532
533
534} //# NAMESPACE CASACORE - END
535
536#endif
#define ThrowIf(c, m)
Throw an AipsError exception if the condition is true.
Definition Error.h:87
simple 1-D array
Definition Block.h:198
Enums for the MeasurementSet main table.
Definition MSMainEnums.h:59
PredefinedKeywords
Keywords with a predefined meaning.
@ UNDEFINED_KEYWORD
"True" keywords are defined.
void openSubtable(Subtable &subtable, const String &subtableName, Bool useLock)
Opens a single subtable if not present in MS object but defined in on-disk MS.
MSAntenna & antenna()
Access functions for the subtables, using the MS-like interface for each.
void createDefaultSubtables(MPI_Comm comm, Table::TableOption option=Table::Scratch)
MeasurementSet(const Table &table, const MeasurementSet *otherMs=NULL)
const MSFreqOffset & freqOffset() const
String fieldTableName() const
MSObservation & observation()
void copySubtables(const MeasurementSet &other)
Copies (assigns) all of the non-null subtables from the other MS into this one.
MrsEligibility getMrsEligibility() const
const MSObservation & observation() const
String stateTableName() const
MSFreqOffset & freqOffset()
const MSAntenna & antenna() const
String freqOffsetTableName() const
String processorTableName() const
const MSSource & source() const
MeasurementSet(const String &tableName, const String &tableDescName, TableOption=Table::Old)
Allows keeping subtables unlocked/read-locked independent of lock mode of main table.
const MSWeather & weather() const
void copySubtable(const Table &otherSubtable, Table &subTable)
Assigns one subtable to another if the original subtable (otherSubtable) is not null and is also memo...
Bool isEligibleForMemoryResidency(const String &subtableName) const
Returns true if the named subtable is eligible for memory residency.
MSDataDescription dataDesc_p
MeasurementSet(const String &tableName, const TableLock &lockOptions, TableOption=Table::Old)
const MSSpectralWindow & spectralWindow() const
const MSSysCal & sysCal() const
const MSHistory & history() const
MeasurementSet()
This constructs an empty MeasurementSet, only useful to assign to (it is not a valid MS yet).
Record msseltoindex(const String &spw="", const String &field="", const String &baseline="", const String &time="", const String &scan="", const String &uvrange="", const String &observation="", const String &poln="", const String &taql="")
Return a record of the indices that the msselection selection selected.
MeasurementSet(MPI_Comm comm, SetupNewTable &newTab, const TableLock &lockOptions, rownr_t nrrow=0, Bool initialize=False)
const MSState & state() const
MSAntenna antenna_p
keep references to the subtables
const MSField & field() const
void createDefaultSubtables(Table::TableOption option=Table::Scratch)
Create default subtables: fills the required subtable keywords with tables of the correct type,...
String flagCmdTableName() const
String spectralWindowTableName() const
String dopplerTableName() const
String historyTableName() const
String feedTableName() const
MSSpectralWindow & spectralWindow()
MeasurementSet(SetupNewTable &newTab, rownr_t nrrow=0, Bool initialize=False)
String sysCalTableName() const
void setMemoryResidentSubtables(const MrsEligibility &mrsEligibility)
Converts the MS to make the specified set of subtables memory resident.
const MSFeed & feed() const
MeasurementSet(const String &tableName, const String &tableDescName, const TableLock &lockOptions, TableOption=Table::Old)
virtual ~MeasurementSet()
As with tables, the destructor writes the table if necessary.
void flush(Bool sync=False)
Flush all the tables and subtables associated with this MeasurementSet.
const MSDataDescription & dataDescription() const
String sourceTableName() const
void openMrSubtables()
Opens all of the eligible subtables in memory resident form.
void createDefaultSubtables_impl(Table::TableOption option, T comm)
Creates subtables using an explicit MPI communicator (if MPI support is enabled).
void openMrSubtable(Subtable &subtable, const String &subtableName)
Opens a single subtable as memory resident (if permitted).
void initRefs(Bool clear=False)
Initialize the references to the subtables.
MSPolarization polarization_p
MSSpectralWindow spectralWindow_p
String observationTableName() const
String dataDescriptionTableName() const
MeasurementSet(const String &tableName, TableOption=Table::Old)
These constructors mirror the Table ones with additional checking on validity (verifying that the MS ...
Bool validateMeasureRefs()
Validate Measure references - check that all Measure columns have their reference value set,...
MeasurementSet(SetupNewTable &newTab, const TableLock &lockOptions, rownr_t nrrow=0, Bool initialize=False)
static String getMrsAipsRcBase()
The top level name for MRS related CASARC settings.
Bool makeComplexData()
Create DATA column from existing FLOAT_DATA column.
const MSFlagCmd & flagCmd() const
static MSTableMaps initMaps()
Initialize the statics appropriately.
String weatherTableName() const
String antennaTableName() const
Return the name of each of the subtables.
void addCat()
temporary function to add the CATEGORY keyword to the FLAG_CATEGORY column if it isn't there yet.
String polarizationTableName() const
MeasurementSet(MPI_Comm comm, SetupNewTable &newTab, rownr_t nrrow=0, Bool initialize=False)
MeasurementSet & operator=(const MeasurementSet &)
Assignment operator, reference semantics.
const MSProcessor & processor() const
const MSPolarization & polarization() const
MeasurementSet(const MeasurementSet &other)
void checkVersion()
check that the MS is the latest version (2.0)
MrsEligibility mrsEligibility_p
MSDataDescription & dataDescription()
const MSPointing & pointing() const
MeasurementSet referenceCopy(const String &newTableName, const Block< String > &writableColumns) const
Make a special copy of this MS which references all columns from this MS except those mentioned; thos...
void clearSubtables()
Clears all of the subtable components of this object (i.e., set to value of subtable's default constr...
MSPolarization & polarization()
String pointingTableName() const
MeasurementSet(const String &tableName, const TableLock &lockOptions, bool doNotLockSubtables, TableOption=Table::Old)
const MSDoppler & doppler() const
std::set< MSMainEnums::PredefinedKeywords > Eligible
Bool isEligible(SubtableId subtableId) const
Returns true if the specified subtable is in the set of subtables eligible for memory residency.
static MrsEligibility noneEligible()
static Bool isSubtable(SubtableId subtableId)
friend MrsEligibility operator-(const MrsEligibility &a, SubtableId subtableId)
Creates a new MrsEligibilitySet by adding or removing the specified subtable or the specified set of ...
static MrsEligibility defaultEligible()
static const MrsEligibility allSubtables_p
friend MrsEligibility operator+(const MrsEligibility &a, SubtableId subtableId)
static MrsEligibility allEligible()
Factory methods to create MrsEligibility sets.
static MrsEligibility allButTheseSubtables(SubtableIds... subtableIds)
MSMainEnums::PredefinedKeywords SubtableId
static MrsEligibility eligibleSubtables(SubtableIds... subtableIds)
Create a new table - define shapes, data managers, etc.
String: the storage and methods of handling collections of characters.
Definition String.h:223
static String toString(const T &value)
Convert a value to a String.
Definition String.h:614
const TableLock & lockOptions() const
Get the locking options.
Definition Table.h:1126
const String & tableName() const
Get the table name.
Definition Table.h:1203
TableOption
Define the possible options how a table can be opened.
Definition Table.h:171
@ Scratch
new table, which gets marked for delete
Definition Table.h:179
@ Old
existing table
Definition Table.h:173
this file contains all the compiler specific defines
Definition mainpage.dox:28
const Bool False
Definition aipstype.h:42
TableExprNode time(const TableExprNode &node)
Definition ExprNode.h:1584
LatticeExprNode operator+(const LatticeExprNode &expr)
Global functions operating on a LatticeExprNode.
LatticeExprNode operator-(const LatticeExprNode &expr)
MeasurementSet MS
MeasurementSet is too cumbersome for a number of common uses, so we give a typedef here.
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44