Class EOPHistory

java.lang.Object
org.orekit.frames.EOPHistory
Direct Known Subclasses:
PredictedEOPHistory

public class EOPHistory extends Object
This class loads any kind of Earth Orientation Parameter data throughout a large time range.
Author:
Pascal Parraud, Evan Ward
  • Field Details

    • DEFAULT_INTERPOLATION_DEGREE

      public static final int DEFAULT_INTERPOLATION_DEGREE
      Default interpolation degree.
      Since:
      12.0
      See Also:
  • Constructor Details

    • EOPHistory

      @DefaultDataContext protected EOPHistory(IERSConventions conventions, int interpolationDegree, Collection<? extends EOPEntry> data, boolean simpleEOP)
      Simple constructor.

      This method uses the default data context.

      Since 14.0, the data provided to this constructor may be scattered, unsorted and incomplete as it may come from different files. This is typically true with Bulletin A, where rapid data pole motion is published weekly and nutation data is published monthly, several weeks later. The data is therefore sorted, deduplicated and merged internally. For this reason, it is not recommended to use SortedSet for providing the data, as this would preserve only one entry for each date and eliminate arbitrarily the other entries for the same date.

      Parameters:
      conventions - IERS conventions to which EOP refers
      interpolationDegree - interpolation degree (must be of the form 4k-1)
      data - the EOP data to use (it is not recommended to use SortedSet here, see above)
      simpleEOP - if true, tidal effects are ignored when interpolating EOP
      See Also:
    • EOPHistory

      public EOPHistory(IERSConventions conventions, int interpolationDegree, Collection<? extends EOPEntry> data, boolean simpleEOP, TimeScales timeScales)
      Simple constructor.

      Since 14.0, the data provided to this constructor may be scattered, unsorted and incomplete as it may come from different files. This is typically true with Bulletin A, where rapid data pole motion is published weekly and nutation data is published monthly, several weeks later. The data is therefore sorted, deduplicated and merged internally. For this reason, it is not recommended to use SortedSet for providing the data, as this would preserve only one entry for each date and eliminate arbitrarily the other entries for the same date.

      Parameters:
      conventions - IERS conventions to which EOP refers
      interpolationDegree - interpolation degree (must be of the form 4k-1)
      data - the EOP data to use (it is not recommended to use SortedSet here, see above)
      simpleEOP - if true, tidal effects are ignored when interpolating EOP
      timeScales - to use when computing EOP corrections.
      Since:
      10.1
  • Method Details

    • isSimpleEop

      public boolean isSimpleEop()
      Determine if this history uses simplified EOP corrections.
      Returns:
      true if tidal corrections are ignored, false otherwise.
    • getInterpolationDegree

      public int getInterpolationDegree()
      Get interpolation degree.
      Returns:
      interpolation degree
      Since:
      12.0
    • getTimeScales

      public TimeScales getTimeScales()
      Get the time scales used in computing EOP corrections.
      Returns:
      set of time scales.
      Since:
      10.1
    • getEOPHistoryWithoutCachedTidalCorrection

      public EOPHistory getEOPHistoryWithoutCachedTidalCorrection()
      Get version of the instance that does not cache tidal correction.
      Returns:
      version of the instance that does not cache tidal correction
      Since:
      12.0
    • cachesTidalCorrection

      public boolean cachesTidalCorrection()
      Check if the instance caches tidal corrections.
      Returns:
      true if the instance caches tidal corrections
      Since:
      12.0
    • getConventions

      public IERSConventions getConventions()
      Get the IERS conventions to which these EOP apply.
      Returns:
      IERS conventions to which these EOP apply
    • getStartDate

      public AbsoluteDate getStartDate()
      Get the date of the first available Earth Orientation Parameters.
      Returns:
      the start date of the available data
    • getEndDate

      public AbsoluteDate getEndDate()
      Get the date of the last available Earth Orientation Parameters.
      Returns:
      the end date of the available data
    • getUT1MinusUTC

      public double getUT1MinusUTC(AbsoluteDate date)
      Get the UT1-UTC value.

      The data provided comes from the IERS files. It is smoothed data.

      Parameters:
      date - date at which the value is desired
      Returns:
      UT1-UTC in seconds (0 if date is outside covered range)
    • getUT1MinusUTC

      public <T extends CalculusFieldElement<T>> T getUT1MinusUTC(FieldAbsoluteDate<T> date)
      Get the UT1-UTC value.

      The data provided comes from the IERS files. It is smoothed data.

      Type Parameters:
      T - type of the field elements
      Parameters:
      date - date at which the value is desired
      Returns:
      UT1-UTC in seconds (0 if date is outside covered range)
      Since:
      9.0
    • getNeighbors

      protected Stream<EOPEntry> getNeighbors(AbsoluteDate central, int n)
      Get the entries surrounding a central date.

      See hasDataFor(AbsoluteDate) to determine if the cache has data for central without throwing an exception.

      Parameters:
      central - central date
      n - number of neighbors
      Returns:
      array of cached entries surrounding specified date
      Since:
      12.0
    • getLOD

      public double getLOD(AbsoluteDate date)
      Get the LoD (Length of Day) value.

      The data provided comes from the IERS files. It is smoothed data.

      Parameters:
      date - date at which the value is desired
      Returns:
      LoD in seconds (0 if date is outside covered range)
    • getLOD

      public <T extends CalculusFieldElement<T>> T getLOD(FieldAbsoluteDate<T> date)
      Get the LoD (Length of Day) value.

      The data provided comes from the IERS files. It is smoothed data.

      Type Parameters:
      T - type of the filed elements
      Parameters:
      date - date at which the value is desired
      Returns:
      LoD in seconds (0 if date is outside covered range)
      Since:
      9.0
    • getPoleCorrection

      public PoleCorrection getPoleCorrection(AbsoluteDate date)
      Get the pole IERS Reference Pole correction.

      The data provided comes from the IERS files. It is smoothed data.

      Parameters:
      date - date at which the correction is desired
      Returns:
      pole correction (PoleCorrection.NULL_CORRECTION if date is outside covered range)
    • getPoleCorrection

      public <T extends CalculusFieldElement<T>> FieldPoleCorrection<T> getPoleCorrection(FieldAbsoluteDate<T> date)
      Get the pole IERS Reference Pole correction.

      The data provided comes from the IERS files. It is smoothed data.

      Type Parameters:
      T - type of the field elements
      Parameters:
      date - date at which the correction is desired
      Returns:
      pole correction (PoleCorrection.NULL_CORRECTION if date is outside covered range)
    • getEquinoxNutationCorrection

      public double[] getEquinoxNutationCorrection(AbsoluteDate date)
      Get the correction to the nutation parameters for equinox-based paradigm.

      The data provided comes from the IERS files. It is smoothed data.

      Parameters:
      date - date at which the correction is desired
      Returns:
      nutation correction in longitude ΔΨ and in obliquity Δε (zero if date is outside covered range)
    • getEquinoxNutationCorrection

      public <T extends CalculusFieldElement<T>> T[] getEquinoxNutationCorrection(FieldAbsoluteDate<T> date)
      Get the correction to the nutation parameters for equinox-based paradigm.

      The data provided comes from the IERS files. It is smoothed data.

      Type Parameters:
      T - type of the field elements
      Parameters:
      date - date at which the correction is desired
      Returns:
      nutation correction in longitude ΔΨ and in obliquity Δε (zero if date is outside covered range)
    • getNonRotatingOriginNutationCorrection

      public double[] getNonRotatingOriginNutationCorrection(AbsoluteDate date)
      Get the correction to the nutation parameters for Non-Rotating Origin paradigm.

      The data provided comes from the IERS files. It is smoothed data.

      Parameters:
      date - date at which the correction is desired
      Returns:
      nutation correction in Celestial Intermediate Pole coordinates δX and δY (zero if date is outside covered range)
    • getNonRotatingOriginNutationCorrection

      public <T extends CalculusFieldElement<T>> T[] getNonRotatingOriginNutationCorrection(FieldAbsoluteDate<T> date)
      Get the correction to the nutation parameters for Non-Rotating Origin paradigm.

      The data provided comes from the IERS files. It is smoothed data.

      Type Parameters:
      T - type of the filed elements
      Parameters:
      date - date at which the correction is desired
      Returns:
      nutation correction in Celestial Intermediate Pole coordinates δX and δY (zero if date is outside covered range)
    • getITRFVersion

      public ITRFVersion getITRFVersion(AbsoluteDate date)
      Get the ITRF version.
      Parameters:
      date - date at which the value is desired
      Returns:
      ITRF version of the EOP covering the specified date
      Since:
      9.2
    • getEopDataType

      public EopDataType getEopDataType(AbsoluteDate date)
      Get the EOP data type.
      Parameters:
      date - date at which the value is desired
      Returns:
      data type of the EOP covering the specified date
      Since:
      13.1.1
    • checkEOPContinuity

      public void checkEOPContinuity(double maxGap)
      Check Earth orientation parameters continuity.
      Parameters:
      maxGap - maximal allowed gap between entries (in seconds)
    • hasDataFor

      protected boolean hasDataFor(AbsoluteDate date)
      Check if the cache has data for the given date using getStartDate() and getEndDate().
      Parameters:
      date - the requested date
      Returns:
      true if the cache has data for the requested date, false otherwise.
    • getEntries

      public List<EOPEntry> getEntries()
      Get a non-modifiable view of the EOP entries.
      Returns:
      non-modifiable view of the EOP entries