SuperNOVAS C++ API v1.6
High-precision C/C++ astrometry library
Loading...
Searching...
No Matches
supernovas::EOP Class Reference

IERS Earth Orientation Parameters (EOP). More...

#include <supernovas.h>

Inheritance diagram for supernovas::EOP:

Public Member Functions

 EOP (int leap_seconds, const Interval &dut1, const Angle &xp, const Angle &yp)
 Instantiates new Earth Orientation Parameters (EOP) with the specified mean (interpolated) values.
 EOP (int leap_seconds, double dut1_sec=0.0, double xp_rad=0.0, double yp_rad=0.0)
 Instantiates new Earth Orientation Parameters (EOP) with the specified mean (interpolated) values.
Interval dUT1 () const
 Returns the UT1 - UTC time difference as a time interval.
EOP itrf_transformed (int from_year, int to_year) const
 Transforms these Earth Orientation Parameters (EOP) to a different ITRF realization.
int leap_seconds () const
 Returns the leap seconds (TAI - UTC time difference) in seconds.
bool operator!= (const EOP &eop) const
 Checks if these Earth Orientation Parameters differ from another by more than 1 μs / 1 μas.
bool operator== (const EOP &eop) const
 Checks if these Earth Orientation Parameters are the same as another, within 1 μs / 1 μas accuracy.
std::string to_string () const
 Returns a string representation of these Earth Orientation Paramaters (EOP).
const Anglexp () const
 Returns the IERS x pole offset (xp) as an angle.
const Angleyp () const
 Returns the IERS y pole offset (yp) as an angle.
Public Member Functions inherited from supernovas::Validating
bool is_valid () const
 Returns the previously set 'valid' stae of the implementing instance.
 operator bool () const
 Objects that implement Validating can be used in conditionals directly, without explicitly calling is_valid().

Static Public Member Functions

static EOP fetch_current (const Interval &offset, long timeout_millis=0L)
 Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS) for the current time instant, or an offset time from the current time.
static EOP fetch_current (double offset=0.0, long timeout_millis=0L)
 Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS) for the current time instant, or an offset time from the current time.
static EOP fetch_for (const CalendarDate &date, long timeout_millis=0L)
 Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).
static EOP fetch_for (const time_t time, long timeout_millis=0L)
 Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).
static EOP fetch_for_jd (double jd, long timeout_millis=0L)
 Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).
static EOP fetch_for_mjd (double mjd, long timeout_millis=0L)
 Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).
static const EOP & undefined ()
 Returns a reference to a statically defined standard invalid EOP.

Additional Inherited Members

Protected Member Functions inherited from supernovas::Validating
 Validating ()
 dummy constructor;
Protected Attributes inherited from supernovas::Validating
bool _valid = false
 the state variable.

Detailed Description

IERS Earth Orientation Parameters (EOP).

IERS publishes daily values, short-term and medium-term forecasts, and historical data for the measured, unmodelled (by the IAU 2006 precession-nutation model), xp, yp pole offsets, leap-seconds (UTC - TAI difference), and the current UT1 - UTC time difference for various ITRF realizations.

The xp, yp pole offsets define the true rotational pole of Earth vs the dynamical equator of date, while the leap_seconds and UT1 - UTC time difference trace the variations in Earth's rotation.

EOP are necessary both for defining or accessing astronomical times of the UT1 timescale (e.g. for sidereal time or Earth-rotation angle (ERA) calculations), or for converting coordinates between the preudo Earth-fixed Terrestrial Intermediate Reference System (TIRS) on the dynamical equator of date, and the Earth-fixed International Terrestrial Reference System (ITRS) on the true rotational equator.

NOTES:

  1. Corrections for diurnal variations are automatically applied in the constructors of Time (for dUT1) and Frame (for xp and yp for geodetic observers), and in Geometric::to_itrs(), as appropriate. Thus users should supply only mean (interpolated) data.
  2. For μas-level precision, your EOP data should match the ITRF realization of the site coordinates. IERS provides EOP data in different ITRF realizations, and SuperNOVAS provides methods to convert both the EOP and/or the Site to another ITRF realization, if need be.
Since
1.6
See also
Time, GeodeticObserver, Geometric::to_itrs(), Horizontal::to_apparent()

Constructor & Destructor Documentation

◆ EOP() [1/2]

supernovas::EOP::EOP ( int leap_seconds,
double dut1_sec = 0.0,
double xp_rad = 0.0,
double yp_rad = 0.0 )
explicit

Instantiates new Earth Orientation Parameters (EOP) with the specified mean (interpolated) values.

Parameters
leap_seconds[s] Leap seconds (TAI - UTC).
dut1_sec[s] (optional) UT1 - UTC time difference (default: 0.0)
xp_rad[rad] (optional) IERS xp mean (interpolated) pole offset in the ITRS x direction. (default: 0.0)
yp_rad[rad] (optional) IERS yp mean (interpolated) pole offset in the ITRS y direction. (default: 0.0)
Since
1.6

References leap_seconds().

◆ EOP() [2/2]

supernovas::EOP::EOP ( int leap_seconds,
const Interval & dut1,
const Angle & xp,
const Angle & yp )

Instantiates new Earth Orientation Parameters (EOP) with the specified mean (interpolated) values.

Parameters
leap_seconds[s] Leap seconds (TAI - UTC).
dut1(optional) UT1 - UTC time difference (default: 0.0)
xp(optional) IERS xp mean (interpolated) pole offset in the ITRS X direction (default: 0.0)
yp(optional) IERS yp mean (interpolated) pole offset in the ITRS y direction (default: 0.0)
Since
1.6

References leap_seconds(), xp(), and yp().

Member Function Documentation

◆ dUT1()

Interval supernovas::EOP::dUT1 ( ) const

Returns the UT1 - UTC time difference as a time interval.

Returns
a new time interval with the UT1 - UTC time difference.
Since
1.6
See also
leap_seconds()

References supernovas::Validating::is_valid().

Referenced by supernovas::Time::from_mjd(), supernovas::Time::now(), and supernovas::CalendarDate::to_time().

◆ fetch_current() [1/2]

EOP supernovas::EOP::fetch_current ( const Interval & offset,
long timeout_millis = 0L )
static

Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS) for the current time instant, or an offset time from the current time.

NOTES:

  • The IERS service may be offline, slow to respond, and the format of the data served may change. Therefore, you should avoid using this method in critical applications or when responsiveness is important. In such cases you are likely better off obtaining EOP from data stored locally, such as on the file-system or in a local database.
  • The returned data does not include diurnal variations for ocean tides and libration. These are added automatically in the constructors of Time and Frame as neeed.
Parameters
offset(optional) time offset from current time (default: 0.0).
timeout_millis[ms] (optional) HTTP connection timeout, or <=0 to leave unchanged.
Returns
Current EOP obtained from IERS or else an invalid EOP if there was an error (errno will indicate the type of error).
Since
1.7
See also
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop
fetch_for(), fetch_for_jd(), fetch_for_mjd(), novas_fetch_eop()

References fetch_current(), and supernovas::Interval::seconds().

◆ fetch_current() [2/2]

EOP supernovas::EOP::fetch_current ( double offset = 0.0,
long timeout_millis = 0L )
static

Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS) for the current time instant, or an offset time from the current time.

NOTES:

  • The IERS service may be offline, slow to respond, and the format of the data served may change. Therefore, you should avoid using this method in critical applications or when responsiveness is important. In such cases you are likely better off obtaining EOP from data stored locally, such as on the file-system or in a local database.
  • The returned data does not include diurnal variations for ocean tides and libration. These are added automatically in the constructors of Time and Frame as neeed.
Parameters
offset[s] (optional) time offset from current time (default: 0.0).
timeout_millis[ms] (optional) HTTP connection timeout, or <=0 to leave unchanged.
Returns
Current EOP obtained from IERS or else an invalid EOP if there was an error (errno will indicate the type of error).
Since
1.7
See also
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop
fetch_for(), fetch_for_jd(), fetch_for_mjd(), novas_fetch_eop()

References fetch_for(), and supernovas::Validating::is_valid().

Referenced by fetch_current().

◆ fetch_for() [1/2]

EOP supernovas::EOP::fetch_for ( const CalendarDate & date,
long timeout_millis = 0L )
static

Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).

NOTES:

  • The IERS service may be offline, slow to respond, and the format of the data served may change. Therefore, you should avoid using this method in critical applications or when responsiveness is important. In such cases you are likely better off obtaining EOP from data stored locally, such as on the file-system or in a local database.
  • The returned data does not include diurnal variations for ocean tides and libration. These are added automatically in the constructors of Time and Frame as neeed.
Parameters
dateCalendar date for which to try get EOP.
timeout_millis[ms] (optional) HTTP connection timeout, or <=0 to leave unchanged.
Returns
EOP obtained from IERS or else an invalid EOP if there was an error (errno will indicate the type of error).
Since
1.7
See also
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop
fetch_for_jd(), fetch_for_mjd(), fetch_current(), novas_fetch_eop()

References fetch_for(), and supernovas::CalendarDate::unix_time().

◆ fetch_for() [2/2]

EOP supernovas::EOP::fetch_for ( const time_t time,
long timeout_millis = 0L )
static

Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).

NOTES:

  • The IERS service may be offline, slow to respond, and the format of the data served may change. Therefore, you should avoid using this method in critical applications or when responsiveness is important. In such cases you are likely better off obtaining EOP from data stored locally, such as on the file-system or in a local database.
  • The returned data does not include diurnal variations for ocean tides and libration. These are added automatically in the constructors of Time and Frame as neeed.
Parameters
Time of observation and astronomical timescalesUNIX time for which to try get EOP.
timeout_millis[ms] (optional) HTTP connection timeout, or <=0 to leave unchanged.
Returns
EOP obtained from IERS or else an invalid EOP if there was an error (errno will indicate the type of error).
Since
1.7
See also
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop
fetch_for_jd(), fetch_for_mjd(), fetch_current(), novas_fetch_eop()

References fetch_for_jd(), supernovas::Validating::is_valid(), NOVAS_JD_J2000, and UNIX_SECONDS_0UTC_1JAN2000.

Referenced by fetch_current(), and fetch_for().

◆ fetch_for_jd()

EOP supernovas::EOP::fetch_for_jd ( double jd,
long timeout_millis = 0L )
static

Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).

NOTES:

  • The IERS service may be offline, slow to respond, and the format of the data served may change. Therefore, you should avoid using this method in critical applications or when responsiveness is important. In such cases you are likely better off obtaining EOP from data stored locally, such as on the file-system or in a local database.
  • The returned data does not include diurnal variations for ocean tides and libration. These are added automatically in the constructors of Time and Frame as neeed.
Parameters
jd[day] Julian Date (preferably UTC-based).
timeout_millis[ms] (optional) HTTP connection timeout, or <=0 to leave unchanged.
Returns
EOP obtained from IERS or else an invalid EOP if there was an error (errno will indicate the type of error).
Since
1.7
See also
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop
fetch_for_mjd(), fetch_for(), fetch_current(), novas_fetch_eop()

References supernovas::Unit::arcsec, novas_eop::dut1, supernovas::Validating::is_valid(), novas_eop::leap, novas_fetch_eop(), undefined(), novas_eop::xp, and novas_eop::yp.

Referenced by fetch_for(), and fetch_for_mjd().

◆ fetch_for_mjd()

EOP supernovas::EOP::fetch_for_mjd ( double mjd,
long timeout_millis = 0L )
static

Obtains cubic spline interpolated Earth Orientation Parameters (EOP) from the International Earth Rotation and Reference Systems Service (IERS).

NOTES:

  • The IERS service may be offline, slow to respond, and the format of the data served may change. Therefore, you should avoid using this method in critical applications or when responsiveness is important. In such cases you are likely better off obtaining EOP from data stored locally, such as on the file-system or in a local database.
  • The returned data does not include diurnal variations for ocean tides and libration. These are added automatically in the constructors of Time and Frame as neeed.
Parameters
mjd[day] Modified Julian Date (preferably UTC-based).
timeout_millis[ms] (optional) HTTP connection timeout, or <=0 to leave unchanged.
Returns
EOP obtained from IERS or else an invalid EOP if there was an error (errno will indicate the type of error).
Since
1.7
See also
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop
fetch_for_jd(), fetch_for(), fetch_current(), novas_fetch_eop()

References fetch_for_jd(), supernovas::Validating::is_valid(), and NOVAS_JD_MJD0.

◆ itrf_transformed()

EOP supernovas::EOP::itrf_transformed ( int from_year,
int to_year ) const

Transforms these Earth Orientation Parameters (EOP) to a different ITRF realization.

Parameters
from_year[yr] the ITRF realization of these EOP values.
to_year[yr] the ITRF realization in which to return EOP
Returns
the EOP values in the specified new ITRF realization.
Since
1.6
See also
Site::itrf_transformed()

References supernovas::Unit::arcsec, supernovas::Validating::is_valid(), and novas_itrf_transform_eop().

◆ leap_seconds()

int supernovas::EOP::leap_seconds ( ) const

Returns the leap seconds (TAI - UTC time difference) in seconds.

Returns
[s] the leap seconds (TAI - UTC).
Since
1.6
See also
dUT1()

Referenced by EOP(), EOP(), supernovas::Time::from_mjd(), supernovas::Time::now(), and supernovas::CalendarDate::to_time().

◆ operator!=()

bool supernovas::EOP::operator!= ( const EOP & eop) const

Checks if these Earth Orientation Parameters differ from another by more than 1 μs / 1 μas.

Parameters
eopanother set of Earth Orientation Parameters
Returns
true if this EOP differs from argument by more than 1 μs / 1 μas, otherwise false.
Since
1.6
See also
operator!=()

◆ operator==()

bool supernovas::EOP::operator== ( const EOP & eop) const

Checks if these Earth Orientation Parameters are the same as another, within 1 μs / 1 μas accuracy.

Parameters
eopanother set of Earth Orientation Parameters
Returns
true if this EOP matches the argument to 1 μs / 1 μas accuracy, otherwise false.
Since
1.6
See also
operator!=()

References supernovas::Unit::uas, and supernovas::Unit::us.

◆ to_string()

std::string supernovas::EOP::to_string ( ) const

Returns a string representation of these Earth Orientation Paramaters (EOP).

Returns
a new string with a representation of this EOP.
Since
1.6

◆ undefined()

const EOP & supernovas::EOP::undefined ( )
static

Returns a reference to a statically defined standard invalid EOP.

This invalid EOP may be used inside any object that is invalid itself.

Returns
a reference to a static standard EOP.
Since
1.6

Referenced by fetch_for_jd(), and supernovas::Time::operator-().

◆ xp()

const Angle & supernovas::EOP::xp ( ) const

Returns the IERS x pole offset (xp) as an angle.

Returns
the reference to the x pole offset angle, as stored internally.
Since
1.6
See also
yp()

Referenced by EOP(), supernovas::GeodeticObserver::equals(), supernovas::GeodeticObserver::gcrs_position_at(), and supernovas::GeodeticObserver::gcrs_velocity_at().

◆ yp()

const Angle & supernovas::EOP::yp ( ) const

Returns the IERS y pole offset (yp) as an angle.

Returns
the reference to the y pole offset angle, as stored internally.
Since
1.6
See also
xp()

Referenced by EOP(), supernovas::GeodeticObserver::equals(), supernovas::GeodeticObserver::gcrs_position_at(), and supernovas::GeodeticObserver::gcrs_velocity_at().