29 #ifndef MEASURES_MEASTABLE_H 30 #define MEASURES_MEASTABLE_H 33 #include <casacore/casa/aips.h> 34 #include <casacore/measures/Measures/MeasTableMul.h> 35 #include <casacore/measures/Measures/MeasData.h> 36 #include <casacore/measures/Measures/MPosition.h> 37 #include <casacore/measures/Measures/MDirection.h> 38 #include <casacore/measures/Measures/MFrequency.h> 39 #include <casacore/scimath/Functionals/Polynomial.h> 40 #include <casacore/casa/OS/Mutex.h> 444 const Double coeff[3][6]);
446 const Double coeff[3][6]);
452 const Double coeff[6][4]);
454 const Double coeff[6][5]);
457 const Double coeff[8][2]);
503 static std::vector<Vector<Double> >
dIGRF;
static MeasTableMulPosSunZ theirMulPosSunZ
static Double dTDT(Double ut1)
TDB-TDT (in s) for MJD ut1 UT1.
A Measure: astronomical direction.
static const Polynomial< Double > & fundArg1950(uInt which)
static void calcFundArg(volatile Bool &need, Polynomial< Double > result[6], const Double coeff[6][4])
Calculate fundArg.
static const Double * mulAber1950Arg(uInt which)
static const Vector< Double > & velocityLSRGal(uInt which)
Velocity of LSR with respect to galactic centre.
A Measure: position on Earth.
static Vector< MFrequency > linePos
static const Vector< Double > & velocityLSR(uInt which)
LSR (dynamical, IAU definition).
static const Double * mulAberArg(uInt which)
Generate the 'which' vector of the aberration series arguments.
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 Polynomial< Double > & posArgDeriv(uInt which)
Precomputed derivative of PosArg.
static const Polynomial< Double > & aber1950ArgDeriv(uInt which)
static const Polynomial< Double > & aberArgDeriv(uInt which)
static Vector< String > antResponsesPath
TableExprNode time(const TableExprNode &node)
static MeasTableMulPosSunXY theirMulPosSunXY
static const Vector< Double > & mulEarthAber(uInt which)
static const Double * mulPlanArg2000A(uInt which)
static MeasTableMulAber theirMulAber
static MutexedInit igrfMutexedInit
IGRF data.
static Vector< String > srcNams
static const Double * mulAberSunArg(uInt which)
static const RotMatrix & galToSupergal()
Get the rotation matrix from galactic to supergalactic.
static Double UTtoST(Double ut1)
Ratio UT1/MST at MJD ut1 UT1.
static const Polynomial< Double > & fundArg2000(uInt which)
Class calculating the B1950 aberration multipliers.
static Double WGS84(uInt which)
Position related routines.
Class calculating the B1950 nutation multipliers.
static CountedPtr< Matrix< Double > > mulAber1950(Double time, Double epsilon)
Class calculating the J2000B nutation multipliers.
static Double diurnalAber(Double radius, Double T)
Diurnal aberration factor.
static CountedPtr< Matrix< Double > > mulSC2000B(Double time, Double epsilon)
static void initObservatories()
Observatory positions.
static MeasTableMulSC2000B theirMulSC2000B
static const Polynomial< Double > & aber1950Arg(uInt which)
static const Polynomial< Double > & aberArg(uInt which)
Aberration related data.
static Bool AntennaResponsesPath(String &antRespPath, const String &nam)
Get absolute path to AntennaResponses table of observatory nam.
static void calcPlanArg00(volatile Bool &need, Polynomial< Double > result[14], const Double coeff[8][2])
Light velocity used in AU/d.
static void precessionCoef2000(Polynomial< Double > result[3])
Generate the precession polynomials for IAU2000 system.
static const Double * mulPosSunZArg(uInt which)
static void calcPrecesCoef2000(Polynomial< Double > result[3], const Double coeff[3][6])
static void doInitIGRF(void *)
Thread-safe initialization of global variables.
static const Vector< String > & Observatories()
Get list of all observatories.
static MeasTableMulSC theirMulSC
Multipliers for nutation, etc.
static Double ERA00(Double ut1)
Earth Rotation Angle (IAU2000) in rad.
static Euler polarMotion(Double ut)
Polar motion related routines.
static Bool useIAU2000A()
If IAU2000 model, do we use the high precision 2000A model?
static const Double * mulArgEqEqCT2000(uInt which)
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series argument...
static Double GMST00(Double ut1, Double tt)
GMST (IAU2000) including the ERA (IAU2000 Earth Rotation Angle) in rad.
Class calculating the XY earth position multipliers.
Class calculating the Z solar position multipliers.
A Measure: wave characteristics.
Types
Types to be used in different calls.
static uInt iau2000_reg
Aipsrc registration (for speed) of use of iau2000 and if so the 2000a version.
Class calculating the J2000A nutation multipliers.
static MeasTableMulAber1950 theirMulAber1950
static RotMatrix frameBias00()
Get the frame bias matrix for IAU2000 model.
Class calculating the XY solar position multipliers.
static Bool useIAU2000()
Selection related data.
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 const Double * mulArg2000A(uInt which)
static const RotMatrix & ICRSToJ2000()
Get the rotation matrix from ICRS to J2000/FK5.
Referenced counted pointer for constant data.
Solar mass (GM0)/c2 in AU.
static MeasTableMulPosEarthXY theirMulPosEarthXY
static const RotMatrix & rectToPos()
Get the rotation matrix to change position from rectangular to ecliptic for Soma et al...
static Double dUTC(Double utc)
Time related routines Note: WARNING given if correction not obtainable
static Vector< String > lineNams
static void initLines()
Rest frequencies.
static MutexedInit srcMutexedInit
Sources table data.
Class calculating the Z earth position multipliers.
static Double precRate00(const uInt which)
Precession related data.
static MutexedInit obsMutexedInit
Observatories table data.
static Double dPsiEps(uInt which, Double T)
Get nutation angles corrections for UTC T in rad.
static Bool Source(MDirection &obs, const String &nam)
Get position of source nam (False if not present)
static Double sprime00(Double tt)
s' (IAU2000) in rad (approximate value)
bool Bool
Define the standard types used by Casacore.
static void doInitLines(void *)
static CountedPtr< Matrix< Double > > mulPosEarthZ(Double time, Double epsilon)
static const Double * mulPosEarthZArg(uInt which)
static const Double * mulArg(uInt which)
Generate the which' vector of the nutation series arguments.
static const Double * mulPlanSC2000A(uInt which)
static Bool Observatory(MPosition &obs, const String &nam)
Get position of observatory nam (False if not present)
JPLconst
Codes for JPL constants: order should be same as in MeasJPL, length less than or equal.
static Vector< MDirection > srcPos
static CountedPtr< Matrix< Double > > mulSC1950(Double time, Double epsilon)
static Double dTDB(Double tai)
TCB-TDB (in s) for MJD tai TAI.
static const Vector< String > & Lines()
Get list of all frequencies.
static std::vector< Vector< Double > > coefIGRF
MeasTable provides Measure computing database data.
static const Double * mulArg1950(uInt which)
static Double dTAI(Double tai=0.0)
TDT-TAI (in s) for MJD tai TAI.
static void initIGRF()
Initialise list of IGRF data.
static const RotMatrix & posToRect()
Get the rotation matrix to change position from ecliptic to rectangular for Soma et al...
Wrapper around a pthreads mutex.
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 MutexedInit lineMutexedInit
Spectral line table data.
Class calculating the standard aberration multipliers.
static CountedPtr< Matrix< Double > > mulSC2000A(Double time, Double epsilon)
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 Vector< String > obsNams
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 MeasTableMulSC1950 theirMulSC1950
static CountedPtr< Matrix< Double > > mulPosSunXY(Double time, Double epsilon)
static const Double * mulSCEqEqCT2000(uInt which)
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series multipli...
static const Vector< Double > & velocityLSRK(uInt which)
LSR (kinematical) velocity conversion: 0 gives J2000; 1 gives B1950.
static const Polynomial< Double > & fundArg(uInt which)
Nutation related data.
static const Polynomial< Double > & posArg(uInt which)
Earth and Sun position related data.
static const Vector< Double > & AberETerm(uInt which)
Get the E-terms of Aberration correction (0 for position, 1 for velocity)
static const Double * mulAberEarthArg(uInt which)
static void calcFundArg00(volatile Bool &need, Polynomial< Double > result[6], const Double coeff[6][5])
static std::vector< Vector< Double > > dIGRF
static MeasTableMulPosEarthZ theirMulPosEarthZ
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 Double GMST0(Double ut1)
GMST1 at MJD ut1 UT1.
String: the storage and methods of handling collections of characters.
static const Double * mulPosEarthXYArg(uInt which)
Generate the which' vector of the position series arguments.
static void doInitObservatories(void *)
static MeasTableMulSC2000A theirMulSC2000A
MeasTable & operator=(const MeasTable &other)
Copy assign, NOT defined.
static void doInitSources(void *)
static Vector< Double > Planetary(MeasTable::Types which, Double T)
Planetary (JPL DE) related data.
static const Vector< Double > & velocityCMB(uInt which)
Velocity of Local Group wrt bary center (F.Ghigo): 308km/s towards l,b = 105,-7.
static const Double * mulArg2000B(uInt which)
static Double GMUT0(Double gmst1)
UT1 at GMSD gmst1 GMST1.
static CountedPtr< Matrix< Double > > mulPosSunZ(Double time, Double epsilon)
static const Vector< String > & Sources()
Get list of all sources.
static Vector< MPosition > obsPos
static void calcPrecesCoef(Double T, Polynomial< Double > result[3], const Double coeff[3][6])
Calculate precessionCoef.
static Mutex theirMutex
Mutex for thread-safety.
static void initSources()
Source list positions.
static Bool Line(MFrequency &obs, const String &nam)
Get frequency of line name (False if not present)
Class calculating the standard nutation multipliers.
Earth-Moon system barycentre.
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...
this file contains all the compiler specific defines
static const Vector< Double > & mulSunAber(uInt which)
static Double dUT1(Double utc)
UT1-UTC (in s) for MJD tai TAI.
static Vector< Double > IGRF(Double t)
Earth magnetic field (IGRF) data Get the harmonic terms for specified time (mjd)
static Double dTCG(Double tai)
TCG-TT (in s) for MJD tai TAI.
static const Double * mulPosSunXYArg(uInt which)
Vector of Euler rotation angles.