29 #ifndef MEASURES_MEASTABLE_H
30 #define MEASURES_MEASTABLE_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/measures/Measures/MeasJPL.h>
35 #include <casacore/measures/Measures/MeasTableMul.h>
36 #include <casacore/measures/Measures/MeasData.h>
37 #include <casacore/measures/Measures/MPosition.h>
38 #include <casacore/measures/Measures/MDirection.h>
39 #include <casacore/measures/Measures/MFrequency.h>
40 #include <casacore/scimath/Functionals/Polynomial.h>
454 const Double coeff[3][6]);
456 const Double coeff[3][6]);
570 static std::vector<Vector<Double> >
dIGRF;
Referenced counted pointer for constant data.
Class calculating the B1950 aberration multipliers.
Class calculating the standard aberration multipliers.
Class calculating the XY earth position multipliers.
Class calculating the Z earth position multipliers.
Class calculating the XY solar position multipliers.
Class calculating the Z solar position multipliers.
Class calculating the B1950 nutation multipliers.
Class calculating the J2000A nutation multipliers.
Class calculating the J2000B nutation multipliers.
Class calculating the standard nutation multipliers.
static const Double * mulAber1950Arg(uInt which)
static const Vector< Double > & velocityLSRK(uInt which)
LSR (kinematical) velocity conversion: 0 gives J2000; 1 gives B1950.
static std::vector< Polynomial< Double > > calcPosArgDeriv()
static Polynomial< Double > calcGMST0()
static Double sprime00(Double tt)
s' (IAU2000) in rad (approximate value)
static const Double * mulAberSunArg(uInt which)
static void initSources()
Source list positions.
static std::vector< Polynomial< Double > > calcPosArg()
Calculate Earth and Sun position data.
static std::once_flag theirPlanetaryInitOnceFlag
Planetary table data.
static std::vector< Vector< Double > > calcVelocityLSR()
static const Polynomial< Double > & aber1950ArgDeriv(uInt which)
static void initIGRF()
Initialise list of IGRF data Called using theirIGRFInitOnce.
static Double ERA00(Double ut1)
Earth Rotation Angle (IAU2000) in rad.
static Vector< MDirection > srcPos
static CountedPtr< Matrix< Double > > mulAber(Double time, Double epsilon)
Generate the 'which' vector of the aberration series multipliers at T, measured in Julian centuries s...
static const RotMatrix & posToRect()
Get the rotation matrix to change position from ecliptic to rectangular for Soma et al.
static Double WGS84(uInt which)
Position related routines.
static const Vector< Double > & velocityLSR(uInt which)
LSR (dynamical, IAU definition).
static void doInitObservatories()
static const Polynomial< Double > & fundArg(uInt which)
Nutation related data.
static const Double * mulPosEarthXYArg(uInt which)
Generate the which' vector of the position series arguments.
static std::vector< Vector< Double > > calcMulEarthAber()
static Euler polarMotion(Double ut)
Polar motion related routines.
static Vector< Double > IGRF(Double t)
Earth magnetic field (IGRF) data Get the harmonic terms for specified time (mjd)
static RotMatrix calcICRSToJ2000()
static Double dTDB(Double tai)
TCB-TDB (in s) for MJD tai TAI.
static std::vector< Polynomial< Double > > calcAberArg()
Calculate aberration data.
static std::vector< Vector< Double > > calcVelocityLSRK()
Calculate velocity data.
static Bool Line(MFrequency &obs, const String &nam)
Get frequency of line name (False if not present)
static void calcPrecesCoef(Double T, Polynomial< Double > result[3], const Double coeff[3][6])
The calcNNN() functions are helpers to initialize function scope static variables in the NNN() caller...
static MeasTableMulPosEarthXY theirMulPosEarthXY
static Bool AntennaResponsesPath(String &antRespPath, const String &nam)
Get absolute path to AntennaResponses table of observatory nam.
static std::vector< Vector< Double > > calcAberETerm()
static const Polynomial< Double > & posArgDeriv(uInt which)
Precomputed derivative of PosArg.
static Double GMUT0(Double gmst1)
UT1 at GMSD gmst1 GMST1.
static void calcPlanetaryConstants(Double cn[MeasTable::N_JPLconst])
static CountedPtr< Matrix< Double > > mulSC2000B(Double time, Double epsilon)
static CountedPtr< Matrix< Double > > mulSC1950(Double time, Double epsilon)
static const Double * mulArg2000A(uInt which)
static RotMatrix frameBias00()
Get the frame bias matrix for IAU2000 model.
static Vector< String > srcNams
static void calcPlanetary(MeasJPL::Files *fil)
Calculate planetary data.
static Vector< Double > Planetary(MeasTable::Types which, Double T)
Planetary (JPL DE) related data.
static Vector< String > lineNams
static std::vector< Polynomial< Double > > calcAberArgDeriv()
static Bool Source(MDirection &obs, const String &nam)
Get position of source nam (False if not present)
static Double precRate00(const uInt which)
Precession related data.
static Double dUT1(Double utc)
UT1-UTC (in s) for MJD tai TAI.
static const Vector< Double > & mulSunAber(uInt which)
static const RotMatrix & ICRSToJ2000()
Get the rotation matrix from ICRS to J2000/FK5.
static void doInitSources()
static std::vector< Polynomial< Double > > calcPlanArg00(const Double coeff[8][2])
static const Vector< Double > & velocityCMB(uInt which)
Velocity of Local Group wrt bary center (F.Ghigo): 308km/s towards l,b = 105,-7.
static std::vector< Vector< Double > > calcMulSunAber()
static const Vector< String > & Lines()
Get list of all frequencies.
static Statics_dUTC calc_dUTC()
static CountedPtr< Matrix< Double > > mulPosSunXY(Double time, Double epsilon)
static void precessionCoef2000(Polynomial< Double > result[3])
Generate the precession polynomials for IAU2000 system.
static const Polynomial< Double > & fundArg1950(uInt which)
static std::vector< Polynomial< Double > > calcFundArg(const Double coeff[6][4])
Calculate fundArg.
static Vector< MFrequency > linePos
static CountedPtr< Matrix< Double > > mulPosSunZ(Double time, Double epsilon)
static Double UTtoST(Double ut1)
Ratio UT1/MST at MJD ut1 UT1.
static MeasTableMulAber theirMulAber
static Bool useIAU2000A()
If IAU2000 model, do we use the high precision 2000A model? Note that an Aipsrc::reRead() is not refl...
static const Double * mulSCEqEqCT2000(uInt which)
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series multipli...
static std::once_flag theirObsInitOnceFlag
Observatories table data.
static Double Planetary(MeasTable::JPLconst what)
Get the JPL DE constant indicated.
static const Double * mulPosSunXYArg(uInt which)
static Double dUTC(Double utc)
Time related routines Note: WARNING given if correction not obtainable
static CountedPtr< Matrix< Double > > mulAber1950(Double time, Double epsilon)
static CountedPtr< Matrix< Double > > mulSC(Double time, Double epsilon)
Generate the which' vector of the nutation series multipliers at T, measured in Julian centuries sinc...
static void initLines()
Rest frequencies.
static const Vector< Double > & velocityLSRGal(uInt which)
Velocity of LSR with respect to galactic centre.
static const Double * mulPlanSC2000A(uInt which)
static Vector< String > obsNams
static const Polynomial< Double > & posArg(uInt which)
Earth and Sun position related data.
static const Double * mulPosSunZArg(uInt which)
static const Vector< Double > & velocityLGROUP(uInt which)
Velocity of CMB wrt bary center (F.Ghigo): 369.5km/s towards l,b = 264.4,48.4.
static const Double * mulArg2000B(uInt which)
static const Polynomial< Double > & fundArg2000(uInt which)
static MeasTableMulPosSunXY theirMulPosSunXY
static Double diurnalAber(Double radius, Double T)
Diurnal aberration factor.
static std::once_flag theirSrcInitOnceFlag
Sources table data.
static Double GMST00(Double ut1, Double tt)
GMST (IAU2000) including the ERA (IAU2000 Earth Rotation Angle) in rad.
MeasTable & operator=(const MeasTable &other)
Copy assign, NOT defined.
static Polynomial< Double > calcERA00()
static Vector< String > antResponsesPath
static std::vector< Vector< Double > > coefIGRF
static const Double * mulPosEarthZArg(uInt which)
static void precessionCoef1950(Double T, Polynomial< Double > result[3])
Generate the precession polynomials for 1950 system for a fixed Epoch T in the area specified.
static const Vector< String > & Observatories()
Get list of all observatories.
static Polynomial< Double > calcGMUT0()
static std::once_flag theirLinesInitOnceFlag
Spectral line table data.
static CountedPtr< Matrix< Double > > mulPosEarthZ(Double time, Double epsilon)
static MeasTableMulPosSunZ theirMulPosSunZ
static Double dTCG(Double tai)
TCG-TT (in s) for MJD tai TAI.
static void initObservatories()
Observatory positions.
static Polynomial< Double > calcUTtoST()
static const Double * mulArg1950(uInt which)
static std::vector< Vector< Double > > dIGRF
static Double dTDT(Double ut1)
TDB-TDT (in s) for MJD ut1 UT1.
static std::vector< Vector< Double > > calcVelocityLSRGal()
static Bool Observatory(MPosition &obs, const String &nam)
Get position of observatory nam (False if not present)
static const Polynomial< Double > & aberArgDeriv(uInt which)
static Double dTAI(Double tai=0.0)
TDT-TAI (in s) for MJD tai TAI.
static MeasTableMulPosEarthZ theirMulPosEarthZ
static void precessionCoef(Double T, Polynomial< Double > result[3])
Generate the precession calculation polynomials for a fixed Epoch T in the result area specified.
static std::once_flag theirIGRFInitOnceFlag
IGRF data.
static MeasTableMulSC2000A theirMulSC2000A
static std::once_flag theirPlanetaryConstantsInitOnceFlag
static MeasTableMulAber1950 theirMulAber1950
Types
Types to be used in different calls.
@ BARYSOLAR
Solar system barycentre.
@ BARYEARTH
Earth-Moon system barycentre.
@ MERCURY
Planetary information.
@ N_Types
Number of types.
static const Double * mulPlanArg2000A(uInt which)
static const Polynomial< Double > & planetaryArg2000(uInt which)
Get the planetary arguments (L, L', F, D, Om, Me, Ve, E, Ma, Ju Sa, Ur, Ne, pre)
static const Double * mulAberEarthArg(uInt which)
static RotMatrix calcRectToPos()
Calculate some of the rotation matrices for coordinate conversion.
static MeasTableMulSC theirMulSC
Multipliers for nutation, etc.
static const Vector< Double > & AberETerm(uInt which)
Get the E-terms of Aberration correction (0 for position, 1 for velocity)
static const Vector< String > & Sources()
Get list of all sources.
static const Vector< Double > & mulEarthAber(uInt which)
static CountedPtr< Matrix< Double > > mulSC2000A(Double time, Double epsilon)
static std::vector< Polynomial< Double > > calcAber1950Arg()
static Vector< MPosition > obsPos
static CountedPtr< Matrix< Double > > mulPosEarthXY(Double time, Double epsilon)
Generate the which' vector of the position series multipliers at T, measured in Julian centuries sinc...
static Bool useIAU2000()
Selection related data.
static void calcPrecesCoef2000(Polynomial< Double > result[3], const Double coeff[3][6])
static MeasTableMulSC1950 theirMulSC1950
static std::vector< Vector< Double > > calcVelocityLGROUP()
static void doInitLines()
static const Polynomial< Double > & aberArg(uInt which)
Aberration related data.
static Double GMST0(Double ut1)
GMST1 at MJD ut1 UT1.
static std::vector< Polynomial< Double > > calcFundArg00(const Double coeff[6][5])
static const Polynomial< Double > & aber1950Arg(uInt which)
static std::vector< Polynomial< Double > > calcAber1950ArgDeriv()
static MeasTableMulSC2000B theirMulSC2000B
static const RotMatrix & galToSupergal()
Get the rotation matrix from galactic to supergalactic.
static const Double * mulArgEqEqCT2000(uInt which)
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series argument...
static const Double * mulArg(uInt which)
Generate the which' vector of the nutation series arguments.
static const Double * mulAberArg(uInt which)
Generate the 'which' vector of the aberration series arguments.
static Polynomial< Double > calcGMST00()
static std::vector< Vector< Double > > calcVelocityCMB()
static const RotMatrix & rectToPos()
Get the rotation matrix to change position from rectangular to ecliptic for Soma et al.
static Double dPsiEps(uInt which, Double T)
Get nutation angles corrections for UTC T in rad.
JPLconst
Codes for JPL constants: order should be same as in MeasJPL, length less than or equal.
@ RADS
Solar radius in AU.
@ GMS
Solar mass (GM0)/c2 in AU.
@ CAU
Light velocity used in AU/d.
String: the storage and methods of handling collections of characters.
this file contains all the compiler specific defines
TableExprNode time(const TableExprNode &node)
bool Bool
Define the standard types used by Casacore.
Calculate time related conversion data.