A class to provide easy access to MSField columns. More...
#include <MSFieldColumns.h>
Public Member Functions | |
ROMSFieldColumns (const MSField &msField) | |
Construct from the supplied Table. | |
~ROMSFieldColumns () | |
The desctructor does nothing special. | |
const ROScalarColumn< String > & | code () const |
Read-only access to required columns. | |
const ROArrayColumn< Double > & | delayDir () const |
const ROArrayMeasColumn < MDirection > & | delayDirMeasCol () const |
const ROScalarColumn< Bool > & | flagRow () const |
const ROScalarColumn< String > & | name () const |
const ROScalarColumn< Int > & | numPoly () const |
const ROArrayColumn< Double > & | phaseDir () const |
const ROArrayMeasColumn < MDirection > & | phaseDirMeasCol () const |
const ROArrayColumn< Double > & | referenceDir () const |
const ROArrayMeasColumn < MDirection > & | referenceDirMeasCol () const |
const ROScalarColumn< Int > & | sourceId () const |
const ROScalarColumn< Double > & | time () const |
const ROScalarQuantColumn < Double > & | timeQuant () const |
const ROScalarMeasColumn < MEpoch > & | timeMeas () const |
const ROScalarColumn< Int > & | ephemerisId () const |
Read-only access to optional columns. | |
MDirection | delayDirMeas (Int row, Double time=0) const |
Access to interpolated directions from polynomials or ephemerides, the default time of zero will return the 0th order element of the polynomial. | |
MDirection | phaseDirMeas (Int row, Double time=0) const |
MDirection | referenceDirMeas (Int row, Double time=0) const |
MRadialVelocity | radVelMeas (Int row, Double time=0) const |
Quantity | rho (Int row, Double time=0) const |
Bool | needInterTime (Int row) const |
String | ephemPath (Int row) const |
uInt | nrow () const |
Convenience function that returns the number of rows in any of the columns. | |
Int | matchDirection (const MDirection &referenceDirection, const MDirection &delayDirection, const MDirection &phaseDirection, const Quantum< Double > &maxSeparation, Int tryRow=-1, Double time=0) |
returns the last row that has a reference direction, phase direction and delay direction that match, to within the specified angular separation, the supplied values. | |
void | updateMeasComets () |
Update the MeasComets objects belonging to this FIELD table. | |
Protected Member Functions | |
ROMSFieldColumns () | |
void | attach (const MSField &msField) |
Int | measCometIndex (int row) const |
MDirection | extractDirMeas (const MDirection &offsetDir, Int index, Double &interTime, MEpoch originEpoch) const |
Extract the direction Measure from the corresponding ephemeris using the nominal position as an offset. | |
void | getMJDs (Double &originMJD, Double &interMJD, const Double interTime, const MEpoch originEpoch) const |
Protected Attributes | |
String | measCometsPath_p |
Vector< MeasComet * > | measCometsV_p |
SimpleOrderedMap< Int, Int > | ephIdToMeasComet_p |
Private Member Functions | |
ROMSFieldColumns (const ROMSFieldColumns &) | |
ROMSFieldColumns & | operator= (const ROMSFieldColumns &) |
void | attachOptionalCols (const MSField &msField) |
Bool | matchReferenceDir (uInt row, const MVDirection &dirVal, const Double &sepInRad, MVDirection &mvdir, Double time=0) const |
Bool | matchDelayDir (uInt row, const MVDirection &dirVal, const Double &sepInRad, MVDirection &mvdir, Double time=0) const |
Bool | matchPhaseDir (uInt row, const MVDirection &dirVal, const Double &sepInRad, MVDirection &mvdir, Double time=0) const |
Private Attributes | |
ROScalarColumn< String > | name_p |
ROScalarColumn< String > | code_p |
ROScalarColumn< Double > | time_p |
ROScalarColumn< Int > | numPoly_p |
ROArrayColumn< Double > | delayDir_p |
ROArrayColumn< Double > | phaseDir_p |
ROArrayColumn< Double > | referenceDir_p |
ROScalarColumn< Int > | sourceId_p |
ROScalarColumn< Bool > | flagRow_p |
ROScalarColumn< Int > | ephemerisId_p |
ROScalarMeasColumn< MEpoch > | timeMeas_p |
ROArrayMeasColumn< MDirection > | delayDirMeas_p |
ROArrayMeasColumn< MDirection > | phaseDirMeas_p |
ROArrayMeasColumn< MDirection > | referenceDirMeas_p |
ROScalarQuantColumn< Double > | timeQuant_p |
A class to provide easy access to MSField columns.
Public interface
ROMSFieldColumns stands for Read-Only MeasurementSet Field Table columns.
This class provides read-only access to the columns in the MSField 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.
See MSColumns for the motivation.
Definition at line 86 of file MSFieldColumns.h.
casacore::ROMSFieldColumns::ROMSFieldColumns | ( | const MSField & | msField | ) |
Construct from the supplied Table.
casacore::ROMSFieldColumns::~ROMSFieldColumns | ( | ) |
The desctructor does nothing special.
casacore::ROMSFieldColumns::ROMSFieldColumns | ( | ) | [protected] |
casacore::ROMSFieldColumns::ROMSFieldColumns | ( | const ROMSFieldColumns & | ) | [private] |
void casacore::ROMSFieldColumns::attach | ( | const MSField & | msField | ) | [protected] |
void casacore::ROMSFieldColumns::attachOptionalCols | ( | const MSField & | msField | ) | [private] |
const ROScalarColumn<String>& casacore::ROMSFieldColumns::code | ( | ) | const [inline] |
Read-only access to required columns.
Reimplemented in casacore::MSFieldColumns.
Definition at line 97 of file MSFieldColumns.h.
References code_p.
const ROArrayColumn<Double>& casacore::ROMSFieldColumns::delayDir | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 98 of file MSFieldColumns.h.
References delayDir_p.
MDirection casacore::ROMSFieldColumns::delayDirMeas | ( | Int | row, | |
Double | time = 0 | |||
) | const |
Access to interpolated directions from polynomials or ephemerides, the default time of zero will return the 0th order element of the polynomial.
or, if there is an ephemeris, the position at the time origin of the ephemeris.
In addtion to the directions, if there is an ephemeris available, also the radial velocity and the distance rho can be accessed.
The method needInterTime returns True if there is a polynomial or ephemeris connected to this field table row, and an interpolation time value should be provided. The method ephemPath returns the absolute path to the ephemeris table connected to the field table row, an empty string if there is none.
const ROArrayMeasColumn<MDirection>& casacore::ROMSFieldColumns::delayDirMeasCol | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 99 of file MSFieldColumns.h.
References delayDirMeas_p.
const ROScalarColumn<Int>& casacore::ROMSFieldColumns::ephemerisId | ( | ) | const [inline] |
Read-only access to optional columns.
Reimplemented in casacore::MSFieldColumns.
Definition at line 118 of file MSFieldColumns.h.
References ephemerisId_p.
MDirection casacore::ROMSFieldColumns::extractDirMeas | ( | const MDirection & | offsetDir, | |
Int | index, | |||
Double & | interTime, | |||
MEpoch | originEpoch | |||
) | const [protected] |
const ROScalarColumn<Bool>& casacore::ROMSFieldColumns::flagRow | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 101 of file MSFieldColumns.h.
References flagRow_p.
void casacore::ROMSFieldColumns::getMJDs | ( | Double & | originMJD, | |
Double & | interMJD, | |||
const Double | interTime, | |||
const MEpoch | originEpoch | |||
) | const [protected] |
Bool casacore::ROMSFieldColumns::matchDelayDir | ( | uInt | row, | |
const MVDirection & | dirVal, | |||
const Double & | sepInRad, | |||
MVDirection & | mvdir, | |||
Double | time = 0 | |||
) | const [private] |
Int casacore::ROMSFieldColumns::matchDirection | ( | const MDirection & | referenceDirection, | |
const MDirection & | delayDirection, | |||
const MDirection & | phaseDirection, | |||
const Quantum< Double > & | maxSeparation, | |||
Int | tryRow = -1 , |
|||
Double | time = 0 | |||
) |
returns the last row that has a reference direction, phase direction and delay direction that match, to within the specified angular separation, the supplied values.
Only matches on rows where the direction is constant ie., NUM_POLY is 0 and where FLAG_ROW is False. Throws an exception (AipsError) if the reference frames do not match or if the separation does not have angular units (when compiled in debug mode). Returns -1 if no match could be found. If tryRow is positive, then that row is tested to see if it matches before any others are tested. Setting tryRow to a positive value greater than the table length will throw an exception (AipsError), when compiled in debug mode.
Bool casacore::ROMSFieldColumns::matchPhaseDir | ( | uInt | row, | |
const MVDirection & | dirVal, | |||
const Double & | sepInRad, | |||
MVDirection & | mvdir, | |||
Double | time = 0 | |||
) | const [private] |
Bool casacore::ROMSFieldColumns::matchReferenceDir | ( | uInt | row, | |
const MVDirection & | dirVal, | |||
const Double & | sepInRad, | |||
MVDirection & | mvdir, | |||
Double | time = 0 | |||
) | const [private] |
Int casacore::ROMSFieldColumns::measCometIndex | ( | int | row | ) | const [protected] |
const ROScalarColumn<String>& casacore::ROMSFieldColumns::name | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 102 of file MSFieldColumns.h.
References name_p.
uInt casacore::ROMSFieldColumns::nrow | ( | ) | const [inline] |
Convenience function that returns the number of rows in any of the columns.
Definition at line 145 of file MSFieldColumns.h.
References name_p.
const ROScalarColumn<Int>& casacore::ROMSFieldColumns::numPoly | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 103 of file MSFieldColumns.h.
References numPoly_p.
ROMSFieldColumns& casacore::ROMSFieldColumns::operator= | ( | const ROMSFieldColumns & | ) | [private] |
Reimplemented in casacore::MSFieldColumns.
const ROArrayColumn<Double>& casacore::ROMSFieldColumns::phaseDir | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 104 of file MSFieldColumns.h.
References phaseDir_p.
MDirection casacore::ROMSFieldColumns::phaseDirMeas | ( | Int | row, | |
Double | time = 0 | |||
) | const |
const ROArrayMeasColumn<MDirection>& casacore::ROMSFieldColumns::phaseDirMeasCol | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 105 of file MSFieldColumns.h.
References phaseDirMeas_p.
MRadialVelocity casacore::ROMSFieldColumns::radVelMeas | ( | Int | row, | |
Double | time = 0 | |||
) | const |
const ROArrayColumn<Double>& casacore::ROMSFieldColumns::referenceDir | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 107 of file MSFieldColumns.h.
References referenceDir_p.
MDirection casacore::ROMSFieldColumns::referenceDirMeas | ( | Int | row, | |
Double | time = 0 | |||
) | const |
const ROArrayMeasColumn<MDirection>& casacore::ROMSFieldColumns::referenceDirMeasCol | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 108 of file MSFieldColumns.h.
References referenceDirMeas_p.
const ROScalarColumn<Int>& casacore::ROMSFieldColumns::sourceId | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 110 of file MSFieldColumns.h.
References sourceId_p.
const ROScalarColumn<Double>& casacore::ROMSFieldColumns::time | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 111 of file MSFieldColumns.h.
References time_p.
const ROScalarMeasColumn<MEpoch>& casacore::ROMSFieldColumns::timeMeas | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 113 of file MSFieldColumns.h.
References timeMeas_p.
const ROScalarQuantColumn<Double>& casacore::ROMSFieldColumns::timeQuant | ( | ) | const [inline] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 112 of file MSFieldColumns.h.
References timeQuant_p.
void casacore::ROMSFieldColumns::updateMeasComets | ( | ) |
Update the MeasComets objects belonging to this FIELD table.
Needed when the entries in the EPHEMERIS_ID column have changed.
ROScalarColumn<String> casacore::ROMSFieldColumns::code_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 221 of file MSFieldColumns.h.
Referenced by code().
ROArrayColumn<Double> casacore::ROMSFieldColumns::delayDir_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 224 of file MSFieldColumns.h.
Referenced by delayDir().
ROArrayMeasColumn<MDirection> casacore::ROMSFieldColumns::delayDirMeas_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 234 of file MSFieldColumns.h.
Referenced by delayDirMeasCol().
ROScalarColumn<Int> casacore::ROMSFieldColumns::ephemerisId_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 230 of file MSFieldColumns.h.
Referenced by ephemerisId().
SimpleOrderedMap<Int, Int> casacore::ROMSFieldColumns::ephIdToMeasComet_p [protected] |
Definition at line 180 of file MSFieldColumns.h.
ROScalarColumn<Bool> casacore::ROMSFieldColumns::flagRow_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 228 of file MSFieldColumns.h.
Referenced by flagRow().
String casacore::ROMSFieldColumns::measCometsPath_p [protected] |
Definition at line 178 of file MSFieldColumns.h.
Vector<MeasComet*> casacore::ROMSFieldColumns::measCometsV_p [protected] |
Definition at line 179 of file MSFieldColumns.h.
ROScalarColumn<String> casacore::ROMSFieldColumns::name_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 220 of file MSFieldColumns.h.
ROScalarColumn<Int> casacore::ROMSFieldColumns::numPoly_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 223 of file MSFieldColumns.h.
Referenced by numPoly().
ROArrayColumn<Double> casacore::ROMSFieldColumns::phaseDir_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 225 of file MSFieldColumns.h.
Referenced by phaseDir().
ROArrayMeasColumn<MDirection> casacore::ROMSFieldColumns::phaseDirMeas_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 235 of file MSFieldColumns.h.
Referenced by phaseDirMeasCol().
ROArrayColumn<Double> casacore::ROMSFieldColumns::referenceDir_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 226 of file MSFieldColumns.h.
Referenced by referenceDir().
ROArrayMeasColumn<MDirection> casacore::ROMSFieldColumns::referenceDirMeas_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 236 of file MSFieldColumns.h.
Referenced by referenceDirMeasCol().
ROScalarColumn<Int> casacore::ROMSFieldColumns::sourceId_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 227 of file MSFieldColumns.h.
Referenced by sourceId().
ROScalarColumn<Double> casacore::ROMSFieldColumns::time_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 222 of file MSFieldColumns.h.
Referenced by time().
ROScalarMeasColumn<MEpoch> casacore::ROMSFieldColumns::timeMeas_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 233 of file MSFieldColumns.h.
Referenced by timeMeas().
ROScalarQuantColumn<Double> casacore::ROMSFieldColumns::timeQuant_p [private] |
Reimplemented in casacore::MSFieldColumns.
Definition at line 239 of file MSFieldColumns.h.
Referenced by timeQuant().