casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
casacore::MeasMath Class Reference

Measure conversion aid routines. More...

#include <MeasMath.h>

Public Member Functions

 MeasMath ()
 Default constructor. More...
 
 ~MeasMath ()
 
void initFrame (MRBase &outref, MRBase &inref)
 Initialise the frame to be used. More...
 
void createPrecession ()
 Functions to create a particular conversion instance; to apply or deapply the instance. More...
 
void applyPrecession (MVPosition &in)
 
void deapplyPrecession (MVPosition &in)
 
void createPrecessionB1950 ()
 Precession for B1950 and in coordinates. More...
 
void applyPrecessionB1950 (MVPosition &in)
 
void deapplyPrecessionB1950 (MVPosition &in)
 
void createNutation ()
 Nutation for J2000 (IAU standard) and in coordinates. More...
 
void applyNutation (MVPosition &in)
 
void deapplyNutation (MVPosition &in)
 
void createNutationB1950 ()
 Nutation for B1950 and in coordinates. More...
 
void applyNutationB1950 (MVPosition &in)
 
void deapplyNutationB1950 (MVPosition &in)
 
void createPrecNutat ()
 Precession and Nutation for J2000 or B1950 and in coordinates. More...
 
void applyPrecNutat (MVPosition &in)
 
void deapplyPrecNutat (MVPosition &in)
 
void createPrecNutatB1950 ()
 
void applyPrecNutatB1950 (MVPosition &in, Bool doin=True)
 
void deapplyPrecNutatB1950 (MVPosition &in, Bool doin=True)
 
void createAberration ()
 Aberration for J2000 (IAU definition) and B1950 and in coordinates. More...
 
void applyAberration (MVPosition &in, Bool doin=True)
 
void deapplyAberration (MVPosition &in, Bool doin=True)
 
void createAberrationB1950 ()
 
void applyAberrationB1950 (MVPosition &in, Bool doin=True)
 
void deapplyAberrationB1950 (MVPosition &in, Bool doin=True)
 
void createSolarPos ()
 Solar bending for J2000 (IAU definition) and in coordinates. More...
 
void applySolarPos (MVPosition &in, Bool doin=True)
 
void deapplySolarPos (MVPosition &in, Bool doin=True)
 
void applyHADECtoITRF (MVPosition &in)
 Various conversions. More...
 
void deapplyHADECtoITRF (MVPosition &in)
 
void applyHADECtoAZEL (MVPosition &in)
 
void deapplyHADECtoAZEL (MVPosition &in)
 
void applyHADECtoAZELGEO (MVPosition &in)
 
void deapplyHADECtoAZELGEO (MVPosition &in)
 
void applyJ2000toB1950 (MVPosition &in, Double epo, Bool doin)
 
void deapplyJ2000toB1950 (MVPosition &in, Double epo, Bool doin)
 
void applyJ2000toB1950 (MVPosition &in, Bool doin=True)
 
void deapplyJ2000toB1950 (MVPosition &in, Bool doin=True)
 
void applyJ2000toB1950_VLA (MVPosition &in, Bool doin=True)
 
void deapplyJ2000toB1950_VLA (MVPosition &in, Bool doin=True)
 
void applyETerms (MVPosition &in, Bool doin=True, Double epo=2000.0)
 
void deapplyETerms (MVPosition &in, Bool doin=True, Double epo=2000.0)
 
void applyGALtoJ2000 (MVPosition &in)
 
void deapplyGALtoJ2000 (MVPosition &in)
 
void applyGALtoB1950 (MVPosition &in)
 
void deapplyGALtoB1950 (MVPosition &in)
 
void applyGALtoSUPERGAL (MVPosition &in)
 
void deapplyGALtoSUPERGAL (MVPosition &in)
 
void applyICRStoJ2000 (MVPosition &in)
 
void deapplyICRStoJ2000 (MVPosition &in)
 
void applyTOPOtoHADEC (MVPosition &in, Bool doin=True)
 
void deapplyTOPOtoHADEC (MVPosition &in, Bool doin=True)
 
void applyPolarMotion (MVPosition &in)
 
void deapplyPolarMotion (MVPosition &in)
 
void applyAZELtoAZELSW (MVPosition &in)
 
void applyECLIPtoJ2000 (MVPosition &in)
 
void deapplyECLIPtoJ2000 (MVPosition &in)
 
void applyMECLIPtoJMEAN (MVPosition &in)
 
void deapplyMECLIPtoJMEAN (MVPosition &in)
 
void applyTECLIPtoJTRUE (MVPosition &in)
 
void deapplyTECLIPtoJTRUE (MVPosition &in)
 
void applyAPPtoTOPO (MVPosition &in, const Double len, Bool doin=True)
 
void deapplyAPPtoTOPO (MVPosition &in, const Double len, Bool doin=True)
 
void getAPP (MVPosition &out)
 Transfer some information. More...
 
void getJ2000 (MVPosition &out)
 
void getB1950 (MVPosition &out)
 

Private Types

enum  FrameType {
  EPOCH,
  POSITION,
  DIRECTION,
  VELOCITY,
  N_FrameType
}
 Types of frame information groups. More...
 
enum  FrameInfo {
  TDB,
  LASTR,
  TT,
  UT1,
  LONG,
  LAT,
  RADIUS,
  LATGEO,
  J2000LONG,
  J2000LAT,
  B1950LONG,
  B1950LAT,
  APPLONG,
  APPLAT,
  N_FrameDInfo,
  J2000DIR,
  B1950DIR,
  APPDIR,
  N_FrameInfo,
  N_FrameMVDInfo
}
 Types of frame information. More...
 
typedef const Measure
*(MeasFrame::* 
FRFCT )() const
 To get frame group. More...
 
typedef Bool(MeasFrame::* FRDINFO )(Double &) const
 To get frame info. More...
 
typedef Bool(MeasFrame::* FRMVDINFO )(MVDirection &) const
 

Private Member Functions

 MeasMath (const MeasMath &other)
 Copy constructor (not implemented) More...
 
MeasMathoperator= (const MeasMath &other)
 Assignment (not implemented) More...
 
void getFrame (FrameType i)
 Get proper frame information. More...
 
Bool getInfo (FrameInfo i, Bool ret=False)
 Get information from the frame. More...
 
void rotateShift (MVPosition &in, const MVPosition &shft, const FrameInfo lng, const FrameInfo lat, Bool doin)
 Make a shift of coordinate into a rotation and apply it when doin is False. More...
 

Private Attributes

Bool inOK_p
 Data cached for fast calculations and workspace. More...
 
Bool outOK_p
 
Bool frameOK_p [N_FrameType]
 
MeasFrameinFrame_p
 
MeasFrameoutFrame_p
 
MeasFrameapplyFrame_p [N_FrameType]
 
MeasFramedeapplyFrame_p [N_FrameType]
 
SolarPosSOLPOSIAU
 Conversion information. More...
 
AberrationABERIAU
 
AberrationABERB1950
 
NutationNUTATIAU
 
NutationNUTATB1950
 
PrecessionPRECESIAU
 
PrecessionPRECESB1950
 
RotMatrix ROTMAT1
 Workspace. More...
 
MVPosition MVPOS1
 
MVPosition MVPOS2
 
MVPosition MVPOS3
 
MVPosition MVPOS4
 
Double g1
 
Double g2
 
Double g3
 
Double lengthE
 
Bool infoOK_p [N_FrameInfo]
 
Double info_p [N_FrameDInfo]
 
MVDirection infomvd_p [N_FrameMVDInfo]
 

Static Private Attributes

static uInt b1950_reg_p
 Aipsrc definition for B1950 epoch (in years) More...
 

Detailed Description

Measure conversion aid routines.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tMeasure

Prerequisite

Etymology

Measure and Mathematics

Synopsis

The conversion of measures like MDirection, MPosition etc have many conversion routines in common. This class combines all of these conversions, including data caches for re-use.

The class is always created by the default constructor. For each operation (like e.g. Precession application), it has three function:

Example

See MCDirection source for how to use the class.

Motivation

To re-use code for a specific measure conversion, and to ease the caching administration for each individual conversion.

To Do

Definition at line 96 of file MeasMath.h.

Member Typedef Documentation

typedef Bool(MeasFrame::* casacore::MeasMath::FRDINFO)(Double &) const
private

To get frame info.

Definition at line 251 of file MeasMath.h.

typedef const Measure*(MeasFrame::* casacore::MeasMath::FRFCT)() const
private

To get frame group.

Definition at line 248 of file MeasMath.h.

typedef Bool(MeasFrame::* casacore::MeasMath::FRMVDINFO)(MVDirection &) const
private

Definition at line 252 of file MeasMath.h.

Member Enumeration Documentation

Types of frame information.

Enumerator
TDB 
LASTR 
TT 
UT1 
LONG 
LAT 
RADIUS 
LATGEO 
J2000LONG 
J2000LAT 
B1950LONG 
B1950LAT 
APPLONG 
APPLAT 
N_FrameDInfo 
J2000DIR 
B1950DIR 
APPDIR 
N_FrameInfo 
N_FrameMVDInfo 

Definition at line 224 of file MeasMath.h.

Types of frame information groups.

Enumerator
EPOCH 
POSITION 
DIRECTION 
VELOCITY 
N_FrameType 

Definition at line 217 of file MeasMath.h.

Constructor & Destructor Documentation

casacore::MeasMath::MeasMath ( )

Default constructor.

casacore::MeasMath::~MeasMath ( )
casacore::MeasMath::MeasMath ( const MeasMath other)
private

Copy constructor (not implemented)

Member Function Documentation

void casacore::MeasMath::applyAberration ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::applyAberrationB1950 ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::applyAPPtoTOPO ( MVPosition in,
const Double  len,
Bool  doin = True 
)
void casacore::MeasMath::applyAZELtoAZELSW ( MVPosition in)
void casacore::MeasMath::applyECLIPtoJ2000 ( MVPosition in)
void casacore::MeasMath::applyETerms ( MVPosition in,
Bool  doin = True,
Double  epo = 2000.0 
)
void casacore::MeasMath::applyGALtoB1950 ( MVPosition in)
void casacore::MeasMath::applyGALtoJ2000 ( MVPosition in)
void casacore::MeasMath::applyGALtoSUPERGAL ( MVPosition in)
void casacore::MeasMath::applyHADECtoAZEL ( MVPosition in)
void casacore::MeasMath::applyHADECtoAZELGEO ( MVPosition in)
void casacore::MeasMath::applyHADECtoITRF ( MVPosition in)

Various conversions.

void casacore::MeasMath::applyICRStoJ2000 ( MVPosition in)
void casacore::MeasMath::applyJ2000toB1950 ( MVPosition in,
Double  epo,
Bool  doin 
)
void casacore::MeasMath::applyJ2000toB1950 ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::applyJ2000toB1950_VLA ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::applyMECLIPtoJMEAN ( MVPosition in)
void casacore::MeasMath::applyNutation ( MVPosition in)
void casacore::MeasMath::applyNutationB1950 ( MVPosition in)
void casacore::MeasMath::applyPolarMotion ( MVPosition in)
void casacore::MeasMath::applyPrecession ( MVPosition in)
void casacore::MeasMath::applyPrecessionB1950 ( MVPosition in)
void casacore::MeasMath::applyPrecNutat ( MVPosition in)
void casacore::MeasMath::applyPrecNutatB1950 ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::applySolarPos ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::applyTECLIPtoJTRUE ( MVPosition in)
void casacore::MeasMath::applyTOPOtoHADEC ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::createAberration ( )

Aberration for J2000 (IAU definition) and B1950 and in coordinates.

void casacore::MeasMath::createAberrationB1950 ( )
void casacore::MeasMath::createNutation ( )

Nutation for J2000 (IAU standard) and in coordinates.

void casacore::MeasMath::createNutationB1950 ( )

Nutation for B1950 and in coordinates.

void casacore::MeasMath::createPrecession ( )

Functions to create a particular conversion instance; to apply or deapply the instance.

Precession for J2000 (IAU definition) and in coordinates

void casacore::MeasMath::createPrecessionB1950 ( )

Precession for B1950 and in coordinates.

void casacore::MeasMath::createPrecNutat ( )

Precession and Nutation for J2000 or B1950 and in coordinates.

void casacore::MeasMath::createPrecNutatB1950 ( )
void casacore::MeasMath::createSolarPos ( )

Solar bending for J2000 (IAU definition) and in coordinates.

False if dependent on frame direction rather than input one.

void casacore::MeasMath::deapplyAberration ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::deapplyAberrationB1950 ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::deapplyAPPtoTOPO ( MVPosition in,
const Double  len,
Bool  doin = True 
)
void casacore::MeasMath::deapplyECLIPtoJ2000 ( MVPosition in)
void casacore::MeasMath::deapplyETerms ( MVPosition in,
Bool  doin = True,
Double  epo = 2000.0 
)
void casacore::MeasMath::deapplyGALtoB1950 ( MVPosition in)
void casacore::MeasMath::deapplyGALtoJ2000 ( MVPosition in)
void casacore::MeasMath::deapplyGALtoSUPERGAL ( MVPosition in)
void casacore::MeasMath::deapplyHADECtoAZEL ( MVPosition in)
void casacore::MeasMath::deapplyHADECtoAZELGEO ( MVPosition in)
void casacore::MeasMath::deapplyHADECtoITRF ( MVPosition in)
void casacore::MeasMath::deapplyICRStoJ2000 ( MVPosition in)
void casacore::MeasMath::deapplyJ2000toB1950 ( MVPosition in,
Double  epo,
Bool  doin 
)
void casacore::MeasMath::deapplyJ2000toB1950 ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::deapplyJ2000toB1950_VLA ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::deapplyMECLIPtoJMEAN ( MVPosition in)
void casacore::MeasMath::deapplyNutation ( MVPosition in)
void casacore::MeasMath::deapplyNutationB1950 ( MVPosition in)
void casacore::MeasMath::deapplyPolarMotion ( MVPosition in)
void casacore::MeasMath::deapplyPrecession ( MVPosition in)
void casacore::MeasMath::deapplyPrecessionB1950 ( MVPosition in)
void casacore::MeasMath::deapplyPrecNutat ( MVPosition in)
void casacore::MeasMath::deapplyPrecNutatB1950 ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::deapplySolarPos ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::deapplyTECLIPtoJTRUE ( MVPosition in)
void casacore::MeasMath::deapplyTOPOtoHADEC ( MVPosition in,
Bool  doin = True 
)
void casacore::MeasMath::getAPP ( MVPosition out)

Transfer some information.

void casacore::MeasMath::getB1950 ( MVPosition out)
void casacore::MeasMath::getFrame ( FrameType  i)
private

Get proper frame information.

Bool casacore::MeasMath::getInfo ( FrameInfo  i,
Bool  ret = False 
)
private

Get information from the frame.

Thrown Exceptions

  • AipsError if information not available; or False return if ret=True
void casacore::MeasMath::getJ2000 ( MVPosition out)
void casacore::MeasMath::initFrame ( MRBase outref,
MRBase inref 
)

Initialise the frame to be used.

The apply direction uses the inref if present; the deapply the outref if present, otherwise the other one.

MeasMath& casacore::MeasMath::operator= ( const MeasMath other)
private

Assignment (not implemented)

void casacore::MeasMath::rotateShift ( MVPosition in,
const MVPosition shft,
const FrameInfo  lng,
const FrameInfo  lat,
Bool  doin 
)
private

Make a shift of coordinate into a rotation and apply it when doin is False.

Else apply a shift. Given are the longitude and latitude codes of the direction to be used, and the shift to be applied in that system to the in coordinate.

Member Data Documentation

Aberration * casacore::MeasMath::ABERB1950
private

Definition at line 271 of file MeasMath.h.

Aberration* casacore::MeasMath::ABERIAU
private

Definition at line 271 of file MeasMath.h.

MeasFrame* casacore::MeasMath::applyFrame_p[N_FrameType]
private

Definition at line 265 of file MeasMath.h.

uInt casacore::MeasMath::b1950_reg_p
staticprivate

Aipsrc definition for B1950 epoch (in years)

Definition at line 285 of file MeasMath.h.

MeasFrame* casacore::MeasMath::deapplyFrame_p[N_FrameType]
private

Definition at line 266 of file MeasMath.h.

Bool casacore::MeasMath::frameOK_p[N_FrameType]
private

Definition at line 262 of file MeasMath.h.

Double casacore::MeasMath::g1
private

Definition at line 279 of file MeasMath.h.

Double casacore::MeasMath::g2
private

Definition at line 279 of file MeasMath.h.

Double casacore::MeasMath::g3
private

Definition at line 279 of file MeasMath.h.

Double casacore::MeasMath::info_p[N_FrameDInfo]
private

Definition at line 281 of file MeasMath.h.

MVDirection casacore::MeasMath::infomvd_p[N_FrameMVDInfo]
private

Definition at line 282 of file MeasMath.h.

Bool casacore::MeasMath::infoOK_p[N_FrameInfo]
private

Definition at line 280 of file MeasMath.h.

MeasFrame* casacore::MeasMath::inFrame_p
private

Definition at line 263 of file MeasMath.h.

Bool casacore::MeasMath::inOK_p
private

Data cached for fast calculations and workspace.

Frame information

Definition at line 260 of file MeasMath.h.

Double casacore::MeasMath::lengthE
private

Definition at line 279 of file MeasMath.h.

MVPosition casacore::MeasMath::MVPOS1
private

Definition at line 278 of file MeasMath.h.

MVPosition casacore::MeasMath::MVPOS2
private

Definition at line 278 of file MeasMath.h.

MVPosition casacore::MeasMath::MVPOS3
private

Definition at line 278 of file MeasMath.h.

MVPosition casacore::MeasMath::MVPOS4
private

Definition at line 278 of file MeasMath.h.

Nutation * casacore::MeasMath::NUTATB1950
private

Definition at line 272 of file MeasMath.h.

Nutation* casacore::MeasMath::NUTATIAU
private

Definition at line 272 of file MeasMath.h.

MeasFrame* casacore::MeasMath::outFrame_p
private

Definition at line 264 of file MeasMath.h.

Bool casacore::MeasMath::outOK_p
private

Definition at line 261 of file MeasMath.h.

Precession * casacore::MeasMath::PRECESB1950
private

Definition at line 273 of file MeasMath.h.

Precession* casacore::MeasMath::PRECESIAU
private

Definition at line 273 of file MeasMath.h.

RotMatrix casacore::MeasMath::ROTMAT1
private

Workspace.

Definition at line 277 of file MeasMath.h.

SolarPos* casacore::MeasMath::SOLPOSIAU
private

Conversion information.

Definition at line 270 of file MeasMath.h.


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