MSPointingColumns.h

Classes

ROMSPointingColumns -- A class to provide easy read-only access to MSPointing columns (full description)
MSPointingColumns -- A class to provide easy read-write access to MSPointing columns (full description)

class ROMSPointingColumns

Interface

Public Members
ROMSPointingColumns(const MSPointing& msPointing)
~ROMSPointingColumns()
const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numPoly() const
const ROScalarColumn<Double>& timeOrigin() const
const ROScalarQuantColumn<Double>& timeOriginQuant() const
const ROScalarMeasColumn<MEpoch>& timeOriginMeas() const
const ROArrayColumn<Double>& direction() const
const ROArrayMeasColumn<MDirection>& directionMeasCol() const
const ROArrayColumn<Double>& target() const
const ROArrayMeasColumn<MDirection>& targetMeasCol()const
const ROScalarColumn<Bool>& tracking() const
const ROArrayColumn<Double>& pointingOffset() const
const ROArrayMeasColumn<MDirection>& pointingOffsetMeasCol() const
const ROArrayColumn<Double>& sourceOffset() const
const ROArrayMeasColumn<MDirection>& sourceOffsetMeasCol() const
const ROArrayColumn<Double>& encoder() const
const ROScalarMeasColumn<MDirection>& encoderMeas() const
const ROScalarColumn<Int>& pointingModelId() const
const ROScalarColumn<Bool>& onSource() const
const ROScalarColumn<Bool>& overTheTop() const
MDirection directionMeas(Int row, Double time = 0) const
MDirection targetMeas(Int row, Double time = 0) const
MDirection pointingOffsetMeas(Int row, Double time = 0) const
MDirection sourceOffsetMeas(Int row, Double time = 0) const
Int pointingIndex(Int antenna, Double time) const
uInt nrow() const
Protected Members
ROMSPointingColumns()
void attach(const MSPointing& msPointing)
Private Members
ROMSPointingColumns(const ROMSPointingColumns&)
ROMSPointingColumns& operator=(const ROMSPointingColumns&)
void attachOptionalCols(const MSPointing& msPointing)

Description

Review Status

Reviewed By:
Bob Garwood
Date Reviewed:
1997/02/01

Prerequisite

Etymology

ROMSPointingColumns stands for Read-Only MeasurementSet Pointing Table columns.

Synopsis

This class provides read-only access to the columns in the MSPointing Table. It does the declaration of all the Scalar and ArrayColumns with the correct types, so the application programmer doesn't have to worry about getting those right. There is an access function for every predefined column. Access to non-predefined columns will still have to be done with explicit declarations. See ROMSColumns for an example.

Motivation

See MSColumns for the motivation.

Member Description

ROMSPointingColumns(const MSPointing& msPointing)

Create a columns object that accesses the data in the specified Table

~ROMSPointingColumns()

The destructor does nothing special

const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numPoly() const
const ROScalarColumn<Double>& timeOrigin() const
const ROScalarQuantColumn<Double>& timeOriginQuant() const
const ROScalarMeasColumn<MEpoch>& timeOriginMeas() const
const ROArrayColumn<Double>& direction() const
const ROArrayMeasColumn<MDirection>& directionMeasCol() const
const ROArrayColumn<Double>& target() const
const ROArrayMeasColumn<MDirection>& targetMeasCol()const
const ROScalarColumn<Bool>& tracking() const

Access to required columns

const ROArrayColumn<Double>& pointingOffset() const
const ROArrayMeasColumn<MDirection>& pointingOffsetMeasCol() const
const ROArrayColumn<Double>& sourceOffset() const
const ROArrayMeasColumn<MDirection>& sourceOffsetMeasCol() const
const ROArrayColumn<Double>& encoder() const
const ROScalarMeasColumn<MDirection>& encoderMeas() const
const ROScalarColumn<Int>& pointingModelId() const
const ROScalarColumn<Bool>& onSource() const
const ROScalarColumn<Bool>& overTheTop() const

Access to optional columns

MDirection directionMeas(Int row, Double time = 0) const
MDirection targetMeas(Int row, Double time = 0) const
MDirection pointingOffsetMeas(Int row, Double time = 0) const
MDirection sourceOffsetMeas(Int row, Double time = 0) const

Access to interpolated directions, the default time of zero will return the 0th order element of the polynomial.

Int pointingIndex(Int antenna, Double time) const

return the first matching row index for this time and antenna, returns -1 if no match was found

uInt nrow() const

Convenience function that returns the number of rows in any of the columns

ROMSPointingColumns()

void attach(const MSPointing& msPointing)

ROMSPointingColumns(const ROMSPointingColumns&)

ROMSPointingColumns& operator=(const ROMSPointingColumns&)

void attachOptionalCols(const MSPointing& msPointing)


class MSPointingColumns: public ROMSPointingColumns

Interface

Public Members
MSPointingColumns(MSPointing& msPointing)
~MSPointingColumns()
ScalarColumn<Int>& antennaId()
ScalarColumn<Double>& time()
ScalarMeasColumn<MEpoch>& timeMeas()
ScalarQuantColumn<Double>& timeQuant()
ScalarColumn<Double>& interval()
ScalarQuantColumn<Double>& intervalQuant()
ScalarColumn<String>& name()
ScalarColumn<Int>& numPoly()
ScalarColumn<Double>& timeOrigin()
ScalarQuantColumn<Double>& timeOriginQuant()
ScalarMeasColumn<MEpoch>& timeOriginMeas()
ArrayColumn<Double>& direction()
ArrayMeasColumn<MDirection>& directionMeasCol()
ArrayColumn<Double>& target()
ArrayMeasColumn<MDirection>& targetMeasCol()
ScalarColumn<Bool>& tracking()
ArrayColumn<Double>& pointingOffset()
ArrayMeasColumn<MDirection>& pointingOffsetMeasCol()
ArrayColumn<Double>& sourceOffset()
ArrayMeasColumn<MDirection>& sourceOffsetMeasCol()
ArrayColumn<Double>& encoder()
ScalarMeasColumn<MDirection>& encoderMeas()
ScalarColumn<Int>& pointingModelId()
ScalarColumn<Bool>& onSource()
ScalarColumn<Bool>& overTheTop()
const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numPoly() const
const ROScalarColumn<Double>& timeOrigin() const
const ROScalarQuantColumn<Double>& timeOriginQuant() const
const ROScalarMeasColumn<MEpoch>& timeOriginMeas() const
const ROArrayColumn<Double>& direction() const
const ROArrayMeasColumn<MDirection>& directionMeasCol() const
const ROArrayColumn<Double>& target() const
const ROArrayMeasColumn<MDirection>& targetMeasCol()const
const ROScalarColumn<Bool>& tracking() const
const ROArrayColumn<Double>& pointingOffset() const
const ROArrayMeasColumn<MDirection>& pointingOffsetMeasCol() const
const ROArrayColumn<Double>& sourceOffset() const
const ROArrayMeasColumn<MDirection>& sourceOffsetMeasCol() const
const ROArrayColumn<Double>& encoder() const
const ROScalarMeasColumn<MDirection>& encoderMeas() const
const ROScalarColumn<Int>& pointingModelId() const
const ROScalarColumn<Bool>& onSource() const
const ROScalarColumn<Bool>& overTheTop() const
void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True)
void setDirectionRef(MDirection::Types ref)
void setEncoderDirectionRef(MDirection::Types ref)
Protected Members
MSPointingColumns()
void attach(MSPointing& msPointing)
Private Members
MSPointingColumns(const MSPointingColumns&)
MSPointingColumns& operator=(const MSPointingColumns&)
void attachOptionalCols(MSPointing& msPointing)

Description

Review Status

Reviewed By:
Bob Garwood
Date Reviewed:
1997/02/01

Prerequisite

Etymology

MSPointingColumns stands for MeasurementSet Pointing Table columns.

Synopsis

This class provides access to the columns in the MSPointing Table, it does the declaration of all the Scalar and ArrayColumns with the correct types, so the application programmer doesn't have to worry about getting those right. There is an access function for every predefined column. Access to non-predefined columns will still have to be done with explicit declarations. See MSColumns for an example.

Motivation

See MSColumns for the motivation.

Member Description

MSPointingColumns(MSPointing& msPointing)

Construct from the supplied Table

~MSPointingColumns()

The destructor does nothing special

ScalarColumn<Int>& antennaId()
ScalarColumn<Double>& time()
ScalarMeasColumn<MEpoch>& timeMeas()
ScalarQuantColumn<Double>& timeQuant()
ScalarColumn<Double>& interval()
ScalarQuantColumn<Double>& intervalQuant()
ScalarColumn<String>& name()
ScalarColumn<Int>& numPoly()
ScalarColumn<Double>& timeOrigin()
ScalarQuantColumn<Double>& timeOriginQuant()
ScalarMeasColumn<MEpoch>& timeOriginMeas()
ArrayColumn<Double>& direction()
ArrayMeasColumn<MDirection>& directionMeasCol()
ArrayColumn<Double>& target()
ArrayMeasColumn<MDirection>& targetMeasCol()
ScalarColumn<Bool>& tracking()

Read-write access to required columns

Note that the direction measures with a stored polynomial have Col() added to their name. They are better accessed via the functions that have the same name, without the Col suffix, that will do the interpolation for you. These functions are in the ROMSPointingColumns class.

ArrayColumn<Double>& pointingOffset()
ArrayMeasColumn<MDirection>& pointingOffsetMeasCol()
ArrayColumn<Double>& sourceOffset()
ArrayMeasColumn<MDirection>& sourceOffsetMeasCol()
ArrayColumn<Double>& encoder()
ScalarMeasColumn<MDirection>& encoderMeas()
ScalarColumn<Int>& pointingModelId()
ScalarColumn<Bool>& onSource()
ScalarColumn<Bool>& overTheTop()

Read-write access to optional columns

Note that the direction measures with a stored polynomial have Col() added to their name. They are better accessed via the functions that have the same name, without the Col suffix, that will do the interpolation for you. These functions are in the ROMSPointingColumns class.

const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numPoly() const
const ROScalarColumn<Double>& timeOrigin() const
const ROScalarQuantColumn<Double>& timeOriginQuant() const
const ROScalarMeasColumn<MEpoch>& timeOriginMeas() const
const ROArrayColumn<Double>& direction() const
const ROArrayMeasColumn<MDirection>& directionMeasCol() const
const ROArrayColumn<Double>& target() const
const ROArrayMeasColumn<MDirection>& targetMeasCol()const
const ROScalarColumn<Bool>& tracking() const

Read-only access to required columns

const ROArrayColumn<Double>& pointingOffset() const
const ROArrayMeasColumn<MDirection>& pointingOffsetMeasCol() const
const ROArrayColumn<Double>& sourceOffset() const
const ROArrayMeasColumn<MDirection>& sourceOffsetMeasCol() const
const ROArrayColumn<Double>& encoder() const
const ROScalarMeasColumn<MDirection>& encoderMeas() const
const ROScalarColumn<Int>& pointingModelId() const
const ROScalarColumn<Bool>& onSource() const
const ROScalarColumn<Bool>& overTheTop() const

Access to optional columns

void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True)

set the epoch reference type for the TIME & TIME_ORIGIN column.

Tip In principle this function can only be used if the table is empty, otherwise already written values may thereafter have an incorrect reference, offset, or unit. However, it is possible that part of the table gets written before these values are known. In that case the reference, offset, or units can be set by using a False tableMustBeEmpty argument.

void setDirectionRef(MDirection::Types ref)

set the direction reference type for the DIRECTION, TARGET & and, if defined, the SOURCE_OFFSET & POINTING_OFFSET columns. This can only be done when the table has no rows. Trying to do so at other times will throw an exception. Note the optional ENCODERE column must be done separately as the MSv2 definition allows this column to have a different frame.

void setEncoderDirectionRef(MDirection::Types ref)

set the irection reference type for the ENCODER column (if it is defined). This can only be done when the table has no rows. Trying to do so at other times will throw an exception.

MSPointingColumns()

void attach(MSPointing& msPointing)

MSPointingColumns(const MSPointingColumns&)

MSPointingColumns& operator=(const MSPointingColumns&)

void attachOptionalCols(MSPointing& msPointing)