casacore
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::EpochEngine Class Reference

More...

#include <EpochEngine.h>

Public Member Functions

 EpochEngine ()
 
virtual ~EpochEngine ()
 
Bool sidFrac () const
 Tell if the fraction has to be used for sidereal times. More...
 
Array< DoublegetArrayDouble (const TableExprId &id)
 Get the values. More...
 
Array< MEpochgetEpochs (const TableExprId &id)
 Get the epochs. More...
 
void handleEpoch (std::vector< TENShPtr > &args, uInt &argnr)
 Handle the argument(s) giving the input epochs and reference type. More...
 
void setConverter (MEpoch::Types toType, Bool sidFrac)
 Set the MeasConvert object. More...
 
void setPositionEngine (PositionEngine &engine)
 Set the possible position engine. More...
 
- Public Member Functions inherited from casacore::MeasEngine< MEpoch >
 MeasEngine ()
 
virtual ~MeasEngine ()
 
M::Types refType () const
 Get the reference type. More...
 
Bool handleMeasType (const TENShPtr &operand, Bool doThrow)
 Handle a doppler reference type. More...
 
Record makeAttributes (typename M::Types refType, Int valueType=1) const
 Make the expression result attributes. More...
 
- Public Member Functions inherited from casacore::BaseEngine
 BaseEngine ()
 
virtual ~BaseEngine ()
 
void adaptForConstant (const IPosition &shapeConstant, uInt nvalues=0)
 Adapt the output shape and dimensionality for possible constant values. More...
 
void extendBase (const BaseEngine &, Bool removeFirstAxis=False)
 Extend the shape (if not empty) with the engine's shape. More...
 
const IPositionshape () const
 Get the output shape. More...
 
Int ndim () const
 Get the output dimensionality. More...
 
const Unitunit () const
 Get the unit of the function's result. More...
 
const UnitinUnit () const
 Get the unit of the expression. More...
 
Bool isConstant () const
 Tell if the expression is constant. More...
 

Private Member Functions

virtual String stripMeasType (const String &type)
 Strip a possible prefix from the epoch type. More...
 
virtual void handleValues (TableExprNode &operand, const TableExprId &id, Array< MEpoch > &epochs)
 Let a derive class handle the values. More...
 

Private Attributes

Bool itsSidFrac
 
MeasFrame itsFrame
 
MEpoch::Convert itsConverter
 
PositionEngineitsPositionEngine
 

Additional Inherited Members

- Protected Member Functions inherited from casacore::MeasEngine< MEpoch >
void handleMeasArray (const TENShPtr &operand)
 Handle the operand representing an array of Meas values. More...
 
void handleConstant (const TENShPtr &operand)
 Handle a constant Meas value. More...
 
- Protected Member Functions inherited from casacore::BaseEngine
virtual void deriveAttr (const Unit &unit, Int nval)
 Let a derived class derive its attributes. More...
 
virtual void setValueType (Int valueType)
 Let a derived class set its value type. More...
 
- Protected Attributes inherited from casacore::MeasEngine< MEpoch >
Array< MEpochitsConstants
 
M::Types itsRefType
 
ScalarMeasColumn< MEpochitsMeasScaCol
 
ArrayMeasColumn< MEpochitsMeasArrCol
 
- Protected Attributes inherited from casacore::BaseEngine
Bool itsIsConst
 
IPosition itsShape
 
Int itsNDim
 
Unit itsInUnit
 
Unit itsOutUnit
 
TableExprNode itsExprNode
 

Detailed Description

Engine for TaQL UDF Epoch conversions

Intended use:

Public interface

Review Status

Test programs:
tMeas

Prerequisite

Synopsis

EpochEngine defines Engines (user defined functions) that can be used in TaQL to convert Measures for epochs. In this way such derived values appear to be ordinary TaQL functions.

In TaQL these functions can be called like:

meas.epoch (toref, time, fromref)
meas.last (time, fromref, pos, posref)
For example,
meas.epoch ('UTC', 1e9 s, 'WGS84')
TableExprNode time(const TableExprNode &node)
Definition: ExprNode.h:1580

All functions have data type double and unit radian.

A epoch can also be a table column which usually knows its type. It can also be an expression (e.g. EPOCH[0,]) which also knows the type.

Motivation

It makes it possible to handle measures in TaQL.

Definition at line 90 of file EpochEngine.h.

Constructor & Destructor Documentation

◆ EpochEngine()

casacore::EpochEngine::EpochEngine ( )

◆ ~EpochEngine()

virtual casacore::EpochEngine::~EpochEngine ( )
virtual

Member Function Documentation

◆ getArrayDouble()

Array<Double> casacore::EpochEngine::getArrayDouble ( const TableExprId id)

Get the values.

◆ getEpochs()

Array<MEpoch> casacore::EpochEngine::getEpochs ( const TableExprId id)

Get the epochs.

◆ handleEpoch()

void casacore::EpochEngine::handleEpoch ( std::vector< TENShPtr > &  args,
uInt argnr 
)

Handle the argument(s) giving the input epochs and reference type.

The epoch can be a column in a table.

◆ handleValues()

virtual void casacore::EpochEngine::handleValues ( TableExprNode operand,
const TableExprId id,
Array< MEpoch > &  positions 
)
privatevirtual

Let a derive class handle the values.

Implements casacore::MeasEngine< MEpoch >.

◆ setConverter()

void casacore::EpochEngine::setConverter ( MEpoch::Types  toType,
Bool  sidFrac 
)

Set the MeasConvert object.

◆ setPositionEngine()

void casacore::EpochEngine::setPositionEngine ( PositionEngine engine)

Set the possible position engine.

It can be done only once.

◆ sidFrac()

Bool casacore::EpochEngine::sidFrac ( ) const
inline

Tell if the fraction has to be used for sidereal times.

Definition at line 98 of file EpochEngine.h.

References itsSidFrac.

◆ stripMeasType()

virtual String casacore::EpochEngine::stripMeasType ( const String type)
privatevirtual

Strip a possible prefix from the epoch type.

Reimplemented from casacore::BaseEngine.

Member Data Documentation

◆ itsConverter

MEpoch::Convert casacore::EpochEngine::itsConverter
private

Definition at line 129 of file EpochEngine.h.

◆ itsFrame

MeasFrame casacore::EpochEngine::itsFrame
private

Definition at line 128 of file EpochEngine.h.

◆ itsPositionEngine

PositionEngine* casacore::EpochEngine::itsPositionEngine
private

Definition at line 130 of file EpochEngine.h.

◆ itsSidFrac

Bool casacore::EpochEngine::itsSidFrac
private

Definition at line 127 of file EpochEngine.h.

Referenced by sidFrac().


The documentation for this class was generated from the following file: