MeasIERS.h

Classes

MeasIERS -- Interface to IERS tables (full description)

class MeasIERS

Types

enum 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

enum Files

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)

Description

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
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:

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

    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

    enum Types

    Types of known data

    enum Files

    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

    static void openNote(CLOSEFUN fun)

    Notify that a table has successfully been opened with getTable()

    static void closeTables()

    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.

    static void closeMeas()

    Close the set of IERS tables only

    MeasIERS()

    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