MeasIERS.h
Classes
- MeasIERS -- Interface to IERS tables (full description)
Types
- MJD
-
MJD (must be first in list)
- X
-
Polar motion x
- Y
-
Polar motion y
- dUT1
-
UT1-UTC
- LOD
-
Length of Day
- dPsi
-
dPsi
- dEps
-
dEpsilon
- DX
-
Polar motion x error
- DY
-
Polar motion y error
- DdUT1
-
UT1-UTC error
- DLOD
-
Length of Day error
- DdPsi
-
dPsi error
- DdEps
-
dEpsilon error
- N_Types
-
Number of types
- MEASURED
-
Measured EOP values
- PREDICTED
-
Predicted EOP values
- N_Files
-
# of known types
Interface
- Public Members
- typedef void (*CLOSEFUN) ()
- static Bool get(Double &returnValue, MeasIERS::Files file, MeasIERS::Types type, Double date)
- static Bool getTable(Table &table, TableRecord &kws, ROTableRow &row, RORecordFieldPtr<Double> rfp[], ROFieldPtr &vs, Double &dt, Int N, const ROFieldPtr rfn[], const ROFieldPtr &name, const ROFieldPtr &rc, const ROFieldPtr &dir)
- static void openNote(CLOSEFUN fun)
- static void closeTables()
- static void closeMeas()
- Private Members
- MeasIERS()
- MeasIERS &operator=(const MeasIERS &other)
- static Bool initMeas(MeasIERS::Files which)
- static Bool fillMeas(MeasIERS::Files which, Double utf)
Review Status
- Programs:
- Tests:
Prerequisite
Etymology
From Measure and IERS
Synopsis
MeasIERS is the interface class to the IERS data.
It has only static memebers.
It has a member (getTable()) to open and check IERS
(and other Measures related Tables) type tables.
Tables are found using the aipsrc
(using measures.<table>.directory)
mechanism. If not provided they are assumed to reside in standard places
(i.e. they are looked for in (udir in following normally given by
program as ephemerides or geodetic) '.', './data', '~/aips++/data/udir',
'$AIPSROOT/data/udir', '~/aips++/code/trial/apps/measures',
'$AIPSROOT/data/udir' (last two only ad interim)). They are also looked
for in data/{ephemerides,geodetic} (root and user aips++).
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 measured and predicted
Earth Orientation Parameters IERS tables (i.e. the IERSeop97 and
the IERSpredict tables. If not forced, the data is taken from
the measured table if possible. Only if forced (see below), or if data is
not (yet) available in measured the predicted values are used. A warning
message is (once) issued if values are not available at all.
MeasIERS looks at some Aipsrc
values to determine actions:
- measures.measiers.b_notable : Do not use IERS tables to convert measures
- measures.measiers.b_forcepredict : Use values from prediction tables
even if Measured table asked by program.
- measures.measiers.d_predicttime : Use values from prediction tables if
(now - time) less than value given (default 5) (days)
These values can be set in aipsrc as well as using
AipsrcValue set() methods.
A message is Logged (once) if an IERS table cannot be found
A message is logged (once) if a date outside the range in
the Tables is asked for.
Thrown Exceptions
- AipsError if table opened has wrong format or otherwise corrupted.
Example
See the dUTC() method in
MeasTable for an example of the
getTable method; and the polarMotion() method for
an example of get().
Motivation
To use the IERS data for time and nutation calculations
To Do
Member Description
typedef void (*CLOSEFUN) ()
Define the function pointer to be called to close files
Types of known data
Types of files
static Bool get(Double &returnValue, MeasIERS::Files file, MeasIERS::Types type, Double date)
Get the value from an IERS table, interpolated for date(in MJD).
The file can be PREDICTED or MEASURED, the type as given in enum.
static Bool getTable(Table &table, TableRecord &kws, ROTableRow &row, RORecordFieldPtr<Double> rfp[], ROFieldPtr &vs, Double &dt, Int N, const ROFieldPtr rfn[], const ROFieldPtr &name, const ROFieldPtr &rc, const ROFieldPtr &dir)
Find and open table tab, using the rc variable, the dir and the name.
An rfn list gives the N row field names to be used
Returned are an open table, a row record, pointers (rfp) to row data,
and the table keywordset (kws).
Thrown Exceptions
- AipsError if missing VS_ keywords, or type is not IERS
static void openNote(CLOSEFUN fun)
Notify that a table has successfully been opened with getTable()
Make sure all static tables are closed that were opened with getTable
(like JPL, IERS). This is the preferred way to close the
Measures related data tables.
Close the set of IERS tables only
Default constructor, NOT defined
MeasIERS &operator=(const MeasIERS &other)
Copy assign, NOT defined
static Bool initMeas(MeasIERS::Files which)
Destructor, NOT defined and not declared to stop warning
~MeasIERS();
Initialise tables
static Bool fillMeas(MeasIERS::Files which, Double utf)
Fill Table lines