casacore
|
Interface to JPL DE tables. More...
#include <MeasJPL.h>
Public Types | |
enum | Types { MJD, X, N_Columns, MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE, PLUTO, MOON, SUN, BARYSOLAR, BARYEARTH, NUTATION, LIBRATION, N_Types } |
Types of known data. More... | |
enum | Files { DE200, DE405, N_Files, DEFAULT } |
Types of files. More... | |
enum | Codes { CAU, GMS, AU, RADS, N_Codes } |
Codes for special constants. More... | |
Static Public Member Functions | |
static Bool | get (Vector< Double > &returnValue, MeasJPL::Files file, MeasJPL::Types type, const MVEpoch &date) |
Get the values from a DE table, interpolated for date(in MJD(TDB)). More... | |
static Bool | getConst (Double &res, MeasJPL::Files which, MeasJPL::Codes what) |
Get indicated special constant. More... | |
static Bool | getConst (Double &res, MeasJPL::Files which, const String &nam) |
Get filed constant with name nam. More... | |
static void | closeMeas () |
Close the set of JPL tables only. More... | |
Private Member Functions | |
MeasJPL () | |
Default constructor, NOT defined. More... | |
MeasJPL & | operator= (const MeasJPL &other) |
Copy assign, NOT defined. More... | |
Static Private Member Functions | |
static Bool | initMeasOnce (MeasJPL::Files which) |
Destructor, NOT defined and not declared to stop warning ~MeasJPL();. More... | |
static void | doInitMeas (MeasJPL::Files which) |
static const Double * | fillMeas (Double &intv, MeasJPL::Files which, const MVEpoch &utf) |
Get a pointer to the data for the given date. More... | |
static void | interMeas (Double res[], MeasJPL::Files which, Double intv, Double ivf, Int ncf, Int ncm, Int na, const Double buf[]) |
Interpolate Chebyshev polymomial to res. More... | |
Static Private Attributes | |
static std::once_flag | theirCallOnceFlags [N_Files] |
Object to ensure safe multi-threaded lazy single initialization. More... | |
static std::mutex | theirMutex |
Mutex for thread-safety (other than initialization). More... | |
static Table | t [N_Files] |
Tables present. More... | |
static ArrayColumn< Double > | acc [N_Files] |
Data column descriptor. More... | |
static Int | mjd0 [N_Files] |
First (-1) MJD in list. More... | |
static Int | mjdl [N_Files] |
Last MJD in list. More... | |
static Int | dmjd [N_Files] |
Interval in days (i.e., date step between subsequent rows) More... | |
static const String | tp [N_Files] |
File names. More... | |
static Int | idx [N_Files][3][13] |
Index in record. More... | |
static vector< Int > | curDate [N_Files] |
Dates of the data read in buffer. More... | |
static vector< Vector< Double > > | dval [N_Files] |
Data read in. More... | |
static Double | aufac [N_Files] |
Some helper data read from the table keywords. More... | |
static Double | emrat [N_Files] |
static Double | cn [N_Files][N_Codes] |
Interface to JPL DE tables.
Internal
From Measure and JPL
MeasJPL is the interface class to the JPL DE planetary data. It has only static memebers.
Tables are found using the aipsrc (using measures.<table>.directory
) mechanism. If not provided they are assumed to reside in standard places (i.e. in $AIPSROOT/data/ephemerides) Tables are assumed to have the VS_VERSION, VS_DATE, VS_CREATE and VS_TYPE keywords, and be of type IERS, else an exception will be thrown.
The get()
method will obtain data from the JPL planetary tables (i.e. the DE200
and the DE405
tables). The data obtained will be the barycentric position (AU) and velocity (AU/d) of planets; the nutation (rad, rad/d) or the libration (rad, rad/d; DE405 only). All in the J2000 system.
The JPL DE Tables have a large set of constants attach to it. Some will be available by their own special code, the others their filed name. (See the get
functions.
The enumeration code gives the available data and planets. See E.M. Standish et al., JPL IOM 314.10 - 127 for further details.
Note that the normal usage of these tables is through the Measures system.
Note: A message is Logged (once) if a table cannot be found; A message is logged (once) if a date outside the range in the Tables is asked for;
To use the JPL data for planetary positions and high precision nutation
Types of known data.
|
private |
Default constructor, NOT defined.
|
static |
Close the set of JPL tables only.
Only call it last at end of program.
|
staticprivate |
|
staticprivate |
Get a pointer to the data for the given date.
It reads the data if needed.
|
static |
Get the values from a DE table, interpolated for date(in MJD(TDB)).
The file can be DE200 or DE405, the type as given in enum.
|
static |
Get indicated special constant.
|
static |
Get filed constant with name nam.
|
staticprivate |
Destructor, NOT defined and not declared to stop warning ~MeasJPL();.
Initialise tables
|
staticprivate |
Interpolate Chebyshev polymomial to res.
|
staticprivate |
|
staticprivate |
|
staticprivate |