casacore
|
MeasTable provides Measure computing database data. More...
#include <MeasTable.h>
Classes | |
struct | Statics_dUTC |
Calculate time related conversion data. More... | |
Public Types | |
enum | Types { MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE, PLUTO, MOON, SUN, BARYSOLAR, BARYEARTH, NUTATION, LIBRATION, N_Types } |
Types to be used in different calls. More... | |
enum | JPLconst { CAU, GMS, AU, RADS, N_JPLconst } |
Codes for JPL constants: order should be same as in MeasJPL, length less than or equal. More... | |
Static Public Member Functions | |
static Bool | useIAU2000 () |
Selection related data. More... | |
static Bool | useIAU2000A () |
If IAU2000 model, do we use the high precision 2000A model? Note that an Aipsrc::reRead() is not reflected in the return value here. More... | |
static Double | precRate00 (const uInt which) |
Precession related data. More... | |
static RotMatrix | frameBias00 () |
Get the frame bias matrix for IAU2000 model. More... | |
static void | precessionCoef (Double T, Polynomial< Double > result[3]) |
Generate the precession calculation polynomials for a fixed Epoch T in the result area specified. More... | |
static void | precessionCoef2000 (Polynomial< Double > result[3]) |
Generate the precession polynomials for IAU2000 system. More... | |
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. More... | |
static const Polynomial< Double > & | fundArg (uInt which) |
Nutation related data. More... | |
static const Polynomial< Double > & | fundArg1950 (uInt which) |
static const Polynomial< Double > & | fundArg2000 (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) More... | |
static const Double * | mulArg (uInt which) |
Generate the which' vector of the nutation series arguments. More... | |
static const Double * | mulArg1950 (uInt which) |
static const Double * | mulArg2000A (uInt which) |
static const Double * | mulArg2000B (uInt which) |
static const Double * | mulPlanArg2000A (uInt which) |
static const Double * | mulArgEqEqCT2000 (uInt which) |
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series arguments. More... | |
static CountedPtr< Matrix < Double > > | mulSC (Double time, Double epsilon) |
Generate the which' vector of the nutation series multipliers at T, measured in Julian centuries since J2000.0, respectively B1900.0. More... | |
static CountedPtr< Matrix < Double > > | mulSC1950 (Double time, Double epsilon) |
static CountedPtr< Matrix < Double > > | mulSC2000A (Double time, Double epsilon) |
static CountedPtr< Matrix < Double > > | mulSC2000B (Double time, Double epsilon) |
static const Double * | mulPlanSC2000A (uInt which) |
static const Double * | mulSCEqEqCT2000 (uInt which) |
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series multipliers at T, measured in Julian centuries since J2000.0, respectively B1900.0. More... | |
static Double | dPsiEps (uInt which, Double T) |
Get nutation angles corrections for UTC T in rad. More... | |
static Vector< Double > | Planetary (MeasTable::Types which, Double T) |
Planetary (JPL DE) related data. More... | |
static Double | Planetary (MeasTable::JPLconst what) |
Get the JPL DE constant indicated. More... | |
static void | initObservatories () |
Observatory positions. More... | |
static const Vector< String > & | Observatories () |
Get list of all observatories. More... | |
static Bool | Observatory (MPosition &obs, const String &nam) |
Get position of observatory nam (False if not present) More... | |
static Bool | AntennaResponsesPath (String &antRespPath, const String &nam) |
Get absolute path to AntennaResponses table of observatory nam . More... | |
static void | initSources () |
Source list positions. More... | |
static const Vector< String > & | Sources () |
Get list of all sources. More... | |
static Bool | Source (MDirection &obs, const String &nam) |
Get position of source nam (False if not present) More... | |
static void | initLines () |
Rest frequencies. More... | |
static const Vector< String > & | Lines () |
Get list of all frequencies. More... | |
static Bool | Line (MFrequency &obs, const String &nam) |
Get frequency of line name (False if not present) More... | |
static void | initIGRF () |
Initialise list of IGRF data Called using theirIGRFInitOnce. More... | |
static Vector< Double > | IGRF (Double t) |
Earth magnetic field (IGRF) data Get the harmonic terms for specified time (mjd) More... | |
static const Polynomial< Double > & | aberArg (uInt which) |
Aberration related data. More... | |
static const Polynomial< Double > & | aberArgDeriv (uInt which) |
static const Polynomial< Double > & | aber1950Arg (uInt which) |
static const Polynomial< Double > & | aber1950ArgDeriv (uInt which) |
static const Double * | mulAberArg (uInt which) |
Generate the 'which' vector of the aberration series arguments. More... | |
static const Double * | mulAber1950Arg (uInt which) |
static const Double * | mulAberSunArg (uInt which) |
static const Double * | mulAberEarthArg (uInt which) |
static CountedPtr< Matrix < Double > > | mulAber (Double time, Double epsilon) |
Generate the 'which' vector of the aberration series multipliers at T, measured in Julian centuries since J2000.0 (or J1900.0, yes, J1900.0, for B1950). More... | |
static CountedPtr< Matrix < Double > > | mulAber1950 (Double time, Double epsilon) |
static const Vector< Double > & | mulSunAber (uInt which) |
static const Vector< Double > & | mulEarthAber (uInt which) |
static const Vector< Double > & | AberETerm (uInt which) |
Get the E-terms of Aberration correction (0 for position, 1 for velocity) More... | |
static Double | diurnalAber (Double radius, Double T) |
Diurnal aberration factor. More... | |
static const Vector< Double > & | velocityLSRK (uInt which) |
LSR (kinematical) velocity conversion: 0 gives J2000; 1 gives B1950. More... | |
static const Vector< Double > & | velocityLSR (uInt which) |
LSR (dynamical, IAU definition). More... | |
static const Vector< Double > & | velocityLSRGal (uInt which) |
Velocity of LSR with respect to galactic centre. More... | |
static const Vector< Double > & | velocityCMB (uInt which) |
Velocity of Local Group wrt bary center (F.Ghigo): 308km/s towards l,b = 105,-7. More... | |
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. More... | |
static const Polynomial< Double > & | posArg (uInt which) |
Earth and Sun position related data. More... | |
static const Polynomial< Double > & | posArgDeriv (uInt which) |
Precomputed derivative of PosArg. More... | |
static const Double * | mulPosEarthXYArg (uInt which) |
Generate the which' vector of the position series arguments. More... | |
static const Double * | mulPosEarthZArg (uInt which) |
static const Double * | mulPosSunXYArg (uInt which) |
static const Double * | mulPosSunZArg (uInt which) |
static CountedPtr< Matrix < Double > > | mulPosEarthXY (Double time, Double epsilon) |
Generate the which' vector of the position series multipliers at T, measured in Julian centuries since J2000.0. More... | |
static CountedPtr< Matrix < Double > > | mulPosEarthZ (Double time, Double epsilon) |
static CountedPtr< Matrix < Double > > | mulPosSunXY (Double time, Double epsilon) |
static CountedPtr< Matrix < Double > > | mulPosSunZ (Double time, Double epsilon) |
static const RotMatrix & | posToRect () |
Get the rotation matrix to change position from ecliptic to rectangular for Soma et al. More... | |
static const RotMatrix & | rectToPos () |
Get the rotation matrix to change position from rectangular to ecliptic for Soma et al. More... | |
static const RotMatrix & | galToSupergal () |
Get the rotation matrix from galactic to supergalactic. More... | |
static const RotMatrix & | ICRSToJ2000 () |
Get the rotation matrix from ICRS to J2000/FK5. More... | |
static Double | WGS84 (uInt which) |
Position related routines. More... | |
static Euler | polarMotion (Double ut) |
Polar motion related routines. More... | |
static Double | dUTC (Double utc) |
Time related routines | |
static Double | dUT1 (Double utc) |
UT1-UTC (in s) for MJD tai TAI. More... | |
static Double | dTAI (Double tai=0.0) |
TDT-TAI (in s) for MJD tai TAI. More... | |
static Double | dTDT (Double ut1) |
TDB-TDT (in s) for MJD ut1 UT1. More... | |
static Double | dTDB (Double tai) |
TCB-TDB (in s) for MJD tai TAI. More... | |
static Double | dTCG (Double tai) |
TCG-TT (in s) for MJD tai TAI. More... | |
static Double | GMST0 (Double ut1) |
GMST1 at MJD ut1 UT1. More... | |
static Double | GMST00 (Double ut1, Double tt) |
GMST (IAU2000) including the ERA (IAU2000 Earth Rotation Angle) in rad. More... | |
static Double | ERA00 (Double ut1) |
Earth Rotation Angle (IAU2000) in rad. More... | |
static Double | sprime00 (Double tt) |
s' (IAU2000) in rad (approximate value) More... | |
static Double | GMUT0 (Double gmst1) |
UT1 at GMSD gmst1 GMST1. More... | |
static Double | UTtoST (Double ut1) |
Ratio UT1/MST at MJD ut1 UT1. More... | |
Private Member Functions | |
MeasTable & | operator= (const MeasTable &other) |
Copy assign, NOT defined. More... | |
Static Private Member Functions | |
static void | doInitObservatories () |
static void | doInitLines () |
static void | doInitSources () |
static void | doInitIGRF () |
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() callers. More... | |
static void | calcPrecesCoef2000 (Polynomial< Double > result[3], const Double coeff[3][6]) |
static std::vector< Polynomial < Double > > | calcFundArg (const Double coeff[6][4]) |
Calculate fundArg. More... | |
static std::vector< Polynomial < Double > > | calcFundArg00 (const Double coeff[6][5]) |
static std::vector< Polynomial < Double > > | calcPlanArg00 (const Double coeff[8][2]) |
static void | calcPlanetary (MeasJPL::Files *fil) |
Calculate planetary data. More... | |
static void | calcPlanetaryConstants (Double cn[MeasTable::N_JPLconst]) |
static std::vector< Polynomial < Double > > | calcAberArg () |
Calculate aberration data. More... | |
static std::vector< Polynomial < Double > > | calcAberArgDeriv () |
static std::vector< Polynomial < Double > > | calcAber1950Arg () |
static std::vector< Polynomial < Double > > | calcAber1950ArgDeriv () |
static std::vector< Vector < Double > > | calcMulSunAber () |
static std::vector< Vector < Double > > | calcMulEarthAber () |
static std::vector< Vector < Double > > | calcAberETerm () |
static std::vector< Vector < Double > > | calcVelocityLSRK () |
Calculate velocity data. More... | |
static std::vector< Vector < Double > > | calcVelocityLSR () |
static std::vector< Vector < Double > > | calcVelocityLSRGal () |
static std::vector< Vector < Double > > | calcVelocityLGROUP () |
static std::vector< Vector < Double > > | calcVelocityCMB () |
static std::vector< Polynomial < Double > > | calcPosArg () |
Calculate Earth and Sun position data. More... | |
static std::vector< Polynomial < Double > > | calcPosArgDeriv () |
static RotMatrix | calcRectToPos () |
Calculate some of the rotation matrices for coordinate conversion. More... | |
static RotMatrix | calcICRSToJ2000 () |
static Statics_dUTC | calc_dUTC () |
static Polynomial< Double > | calcGMST0 () |
static Polynomial< Double > | calcGMST00 () |
static Polynomial< Double > | calcERA00 () |
static Polynomial< Double > | calcGMUT0 () |
static Polynomial< Double > | calcUTtoST () |
MeasTable provides Measure computing database data.
Internal
MeasTable from Measure and Table
MeasTable contains the database interface for all data necessary for precession, nutation and other Measure related calculations.
All data are obtained by calls to a method. E.g. fundArg(1)
will provide the first fundamental argument for nutation calculations, i.e. 'l'.
This class contains no constructors or destructors, only static methods and (static) constants.
References:
Explanatory supplements to the Astronomical Almanac
C. Ron and J. Vondrak, Bull. Astron. Inst. Czechosl. 37, p96, 1986
M. Soma, Th. Hirayama and H. Kinoshita, Celest. Mech. 41, p389, 1988
V.S. Gubanov, Astron. Zh. 49, p1112, 1972
Where strings are passed in as arguments (observatory names, sources), they will be case insensitive, and minimum match.
Usage examples can be found in Precession
To create a clean interface between the actual calculations and the methods to obtain the parameters for these calculations. Note that the tables are in general in the format and units found in the literature. This is to be able to easy check and change them. However, in the future re-arrangement could produce faster and more compact code.
Definition at line 104 of file MeasTable.h.
Codes for JPL constants: order should be same as in MeasJPL, length less than or equal.
Enumerator | |
---|---|
CAU |
Light velocity used in AU/d. |
GMS |
Solar mass (GM0)/c2 in AU. |
AU |
AU in km. |
RADS |
Solar radius in AU. |
N_JPLconst |
of codes |
Definition at line 136 of file MeasTable.h.
Types to be used in different calls.
Definition at line 110 of file MeasTable.h.
|
static |
|
static |
|
static |
Aberration related data.
Generate the polynomial for the fundamental arguments (l1-l8, w, D, l, l', F) for the Ron/Vondrak aberration calculations as a function of Julian centuries(J2000), or the comparable ones for the Gubanov expansion (B1950).
|
static |
Get the E-terms of Aberration correction (0 for position, 1 for velocity)
|
static |
Get absolute path to AntennaResponses table of observatory nam
.
It returns False if no valid path can be found or the observatory is unknown. If the observatory is known, antRespPath will be set to the entry in the AntennaResponses column of the Observatories table even if it doesn't describe a valid path; if the entry is not an absolute path, the data directory name will be prepended and validity verified.
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
Calculate aberration data.
|
staticprivate |
|
staticprivate |
|
staticprivate |
Calculate fundArg.
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
Calculate planetary data.
|
staticprivate |
|
staticprivate |
Calculate Earth and Sun position data.
|
staticprivate |
|
staticprivate |
The calcNNN() functions are helpers to initialize function scope static variables in the NNN() callers.
Calculate precessionCoef
|
staticprivate |
|
staticprivate |
Calculate some of the rotation matrices for coordinate conversion.
|
staticprivate |
Calculate velocity data.
Diurnal aberration factor.
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
Get nutation angles corrections for UTC T in rad.
which = 0 : dPsi as given by IERS for IAU nutation theory; = 1: dEps as same.
TDT-TAI (in s) for MJD tai TAI.
Note this is equal to TT2000-TAI
Time related routines
Note: WARNING given if correction not obtainable
Give TAI-UTC (in s) for MJD utc UTC
Earth Rotation Angle (IAU2000) in rad.
|
static |
Get the frame bias matrix for IAU2000 model.
|
static |
Nutation related data.
Generate the polynomial for the fundamental arguments (eps, l, l', F, D, omega) as a function of Julian centuries
|
static |
|
static |
|
static |
Get the rotation matrix from galactic to supergalactic.
Based on De Vaucouleurs 1976: Pole at 47.37/6.32 deg; 137.37 l0 Euler angles: 90, 83.68, 47.37 degrees
GMST (IAU2000) including the ERA (IAU2000 Earth Rotation Angle) in rad.
|
static |
Get the rotation matrix from ICRS to J2000/FK5.
Based on the IAU 2000 resolutions (the bias matrix)
Earth magnetic field (IGRF) data Get the harmonic terms for specified time (mjd)
|
static |
Initialise list of IGRF data Called using theirIGRFInitOnce.
|
static |
Rest frequencies.
Initialise list from internal Table for now Called using theirLinesInitOnce.
|
static |
Observatory positions.
Initialise list of all observatories from Observatories table Called using theirObsInitOnce.
|
static |
Source list positions.
Initialise list of all source from Sources table Called using theirSrcInitOnce.
|
static |
Get frequency of line name (False if not present)
|
static |
Generate the 'which' vector of the aberration series multipliers at T, measured in Julian centuries since J2000.0 (or J1900.0, yes, J1900.0, for B1950).
|
static |
Generate the 'which' vector of the aberration series arguments.
Generate the which' vector of the nutation series arguments.
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series arguments.
|
static |
Generate the which' vector of the position series multipliers at T, measured in Julian centuries since J2000.0.
Generate the which' vector of the position series arguments.
|
static |
|
static |
|
static |
|
static |
Generate the which' vector of the nutation series multipliers at T, measured in Julian centuries since J2000.0, respectively B1900.0.
|
static |
|
static |
|
static |
Generate the which' vector of the equation of equinoxes (IAU2000) complementary terms series multipliers at T, measured in Julian centuries since J2000.0, respectively B1900.0.
Get list of all observatories.
Get position of observatory nam (False if not present)
Copy assign, NOT defined.
|
static |
Planetary (JPL DE) related data.
Get the position (AU or rad) and velocity (AU/d or rad/d) for specified code at TDB T. The ephemeris to use (now DE200 or DE405) can be selected with the 'measures.jpl.ephemeris' aipsrc resource (default DE200).
|
static |
Get the JPL DE constant indicated.
|
static |
Get the planetary arguments (L, L', F, D, Om, Me, Ve, E, Ma, Ju Sa, Ur, Ne, pre)
Polar motion related routines.
Get the polar motion (-x,-y,0)(2,1,3) angles at the given epoch
|
static |
Earth and Sun position related data.
Fundamental arguments for Soma et al. methods
|
static |
Precomputed derivative of PosArg.
|
static |
Get the rotation matrix to change position from ecliptic to rectangular for Soma et al.
analytical expression
|
static |
Generate the precession calculation polynomials for a fixed Epoch T in the result area specified.
T is given in Julian centuries since J2000.0.
|
static |
Generate the precession polynomials for 1950 system for a fixed Epoch T in the area specified.
T is given in Tropical centuries since B1850.0
|
static |
Generate the precession polynomials for IAU2000 system.
Precession related data.
Get the precession-rate part of the IAU2000 precession-nutation models (which 0=dpsi (long) and 1=deps (obliquity) and 2 =0)
|
static |
Get the rotation matrix to change position from rectangular to ecliptic for Soma et al.
analytical expression
|
static |
Get position of source nam
(False if not present)
s' (IAU2000) in rad (approximate value)
|
static |
Selection related data.
Are the IAU2000 precession/nutation to be used or not (IAU1984) Note that an Aipsrc::reRead() is not reflected in the return value here.
|
static |
If IAU2000 model, do we use the high precision 2000A model? Note that an Aipsrc::reRead() is not reflected in the return value here.
Velocity of Local Group wrt bary center (F.Ghigo): 308km/s towards l,b = 105,-7.
0 for J2000, 1 for B1950
Velocity of CMB wrt bary center (F.Ghigo): 369.5km/s towards l,b = 264.4,48.4.
0 for J2000, 1 for B1950
LSR (dynamical, IAU definition).
Velocity (9,12,7) km/s in galactic coordinates. Or 16.552945 towards l,b = 53.13, +25.02 deg. 0 gives J2000, 1 gives B1950 velocities.
Velocity of LSR with respect to galactic centre.
220 km/s in direction l,b = 270, +0 deg. 0 returns J2000, 1 B1950
LSR (kinematical) velocity conversion: 0 gives J2000; 1 gives B1950.
In both cases a velocity of 20.0 km/s is assumed, and a B1900 RA/Dec direction of (270,30) degrees. This value has been defined between the groups doing HI radio work in the mid 1950s.
Position related routines.
Equatorial radius (0) and flattening(1) of geodetic reference spheroids
Definition at line 547 of file MeasTable.h.
Definition at line 569 of file MeasTable.h.
Definition at line 570 of file MeasTable.h.
|
staticprivate |
Definition at line 564 of file MeasTable.h.
|
staticprivate |
Definition at line 565 of file MeasTable.h.
|
staticprivate |
Definition at line 566 of file MeasTable.h.
Definition at line 552 of file MeasTable.h.
|
staticprivate |
Definition at line 553 of file MeasTable.h.
Definition at line 545 of file MeasTable.h.
Definition at line 546 of file MeasTable.h.
Definition at line 558 of file MeasTable.h.
|
staticprivate |
Definition at line 559 of file MeasTable.h.
|
staticprivate |
IGRF data.
Definition at line 563 of file MeasTable.h.
|
staticprivate |
Spectral line table data.
Definition at line 551 of file MeasTable.h.
|
staticprivate |
Definition at line 534 of file MeasTable.h.
|
staticprivate |
Definition at line 535 of file MeasTable.h.
|
staticprivate |
Definition at line 538 of file MeasTable.h.
|
staticprivate |
Definition at line 539 of file MeasTable.h.
|
staticprivate |
Definition at line 536 of file MeasTable.h.
|
staticprivate |
Definition at line 537 of file MeasTable.h.
|
staticprivate |
Multipliers for nutation, etc.
Definition at line 530 of file MeasTable.h.
|
staticprivate |
Definition at line 531 of file MeasTable.h.
|
staticprivate |
Definition at line 532 of file MeasTable.h.
|
staticprivate |
Definition at line 533 of file MeasTable.h.
|
staticprivate |
Observatories table data.
Definition at line 544 of file MeasTable.h.
|
staticprivate |
Definition at line 525 of file MeasTable.h.
|
staticprivate |
Planetary table data.
Definition at line 524 of file MeasTable.h.
|
staticprivate |
Sources table data.
Definition at line 557 of file MeasTable.h.
|
staticprivate |
Definition at line 567 of file MeasTable.h.
|
staticprivate |
Definition at line 568 of file MeasTable.h.