Loading...
Searching...
No Matches
supernovas::EOP Class Reference
Earth orientation

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 Angle & | xp () const
| Returns the IERS x pole offset (xp) as an angle.
const Angle & | yp () 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' state 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.
- If SuperNOVAS was built withut cURL support (WITHOUT_CURL or WITHOUT_LIBC build configuration options), then this function will return an invalid / undefined EOP (errno set to ENOSYS).
- If SuperNOVAS was built with the WITHOUT_SYSTEM_CLOCK preprocessor flag (or with the WITHOUT_LIBC build configuration option), then this function will always return an invalid / undefined EOP (errno set to ENOSYS). You may want to set the time explicitly with one of the constructors instead.

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.
- If SuperNOVAS was built withut cURL support (WITHOUT_CURL or WITHOUT_LIBC build configuration options), then this function will return an error (errno set to ENOSYS).
- If SuperNOVAS was built with the WITHOUT_SYSTEM_CLOCK preprocessor flag (or with the WITHOUT_LIBC build configuration option), then this function will always return an invalid / undefined EOP (errno set to ENOSYS). You may want to set the time explicitly with one of the constructors instead.

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.
- If SuperNOVAS was built withut cURL support (WITHOUT_CURL or WITHOUT_LIBC build configuration options), then this function will return an invalid / undefined EOP (errno set to ENOSYS).

Parameters

  date | Calendar 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.
- If SuperNOVAS was built withut cURL support (WITHOUT_CURL or WITHOUT_LIBC build configuration options), then this function will return an invalid / undefined EOP (errno set to ENOSYS).

Parameters

  time | UNIX 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.
- If SuperNOVAS was built withut cURL support (WITHOUT_CURL or WITHOUT_LIBC build configuration options), then this function will return an invalid / undefined EOP (errno set to ENOSYS).

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.
- If SuperNOVAS was built withut cURL support (WITHOUT_CURL or WITHOUT_LIBC build configuration options), then this function will return an invalid / undefined EOP (errno set to ENOSYS).

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

  eop | another 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

  eop | another 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().