Class AbstractTimeScales

  • All Implemented Interfaces:
    TimeScales
    Direct Known Subclasses:
    LazyLoadedTimeScales

    public abstract class AbstractTimeScales
    extends Object
    implements TimeScales
    Abstract base class for TimeScales that implements some common functionality.
    Since:
    10.1
    Author:
    Evan Ward, Luc Maisonobe
    • Constructor Detail

      • AbstractTimeScales

        public AbstractTimeScales()
        Simple constructor.
    • Method Detail

      • getUT1

        protected UT1Scale getUT1​(EOPHistory history)
        Get the Universal Time 1 scale.

        As this method allow associating any history with the time scale, it may involve large data sets. So this method does not cache the resulting UT1Scale instance, a new instance will be returned each time. In order to avoid wasting memory, calling getUT1(IERSConventions, boolean) with the single enumerate corresponding to the conventions may be a better solution. This method is made available only for expert use.

        Parameters:
        history - EOP parameters providing dUT1 (may be null if no correction is desired)
        Returns:
        Universal Time 1 scale
        See Also:
        getUT1(IERSConventions, boolean)
      • getEopHistory

        protected abstract EOPHistory getEopHistory​(IERSConventions conventions,
                                                    boolean simpleEOP)
        Get the EOP history for the given conventions.
        Parameters:
        conventions - to use in computing the EOP history.
        simpleEOP - whether to ignore some small tidal effects.
        Returns:
        EOP history.
      • getGMST

        public GMSTScale getGMST​(IERSConventions conventions,
                                 boolean simpleEOP)
        Description copied from interface: TimeScales
        Get the Greenwich Mean Sidereal Time scale.
        Specified by:
        getGMST in interface TimeScales
        Parameters:
        conventions - IERS conventions for which EOP parameters will provide dUT1
        simpleEOP - if true, tidal effects are ignored when interpolating EOP
        Returns:
        Greenwich Mean Sidereal Time scale
      • getJulianEpoch

        public AbsoluteDate getJulianEpoch()
        Description copied from interface: TimeScales
        Reference epoch for julian dates: -4712-01-01T12:00:00 Terrestrial Time.

        Both java.util.Date and DateComponents classes follow the astronomical conventions and consider a year 0 between years -1 and +1, hence this reference date lies in year -4712 and not in year -4713 as can be seen in other documents or programs that obey a different convention (for example the convcal utility).

        Specified by:
        getJulianEpoch in interface TimeScales
        Returns:
        Julian epoch.
      • getModifiedJulianEpoch

        public AbsoluteDate getModifiedJulianEpoch()
        Description copied from interface: TimeScales
        Reference epoch for modified julian dates: 1858-11-17T00:00:00 Terrestrial Time.
        Specified by:
        getModifiedJulianEpoch in interface TimeScales
        Returns:
        Modified Julian Epoch
      • getFiftiesEpoch

        public AbsoluteDate getFiftiesEpoch()
        Description copied from interface: TimeScales
        Reference epoch for 1950 dates: 1950-01-01T00:00:00 Terrestrial Time.
        Specified by:
        getFiftiesEpoch in interface TimeScales
        Returns:
        Fifties Epoch
      • getCcsdsEpoch

        public AbsoluteDate getCcsdsEpoch()
        Description copied from interface: TimeScales
        Reference epoch for CCSDS Time Code Format (CCSDS 301.0-B-4): 1958-01-01T00:00:00 International Atomic Time (not UTC).
        Specified by:
        getCcsdsEpoch in interface TimeScales
        Returns:
        CCSDS Epoch
      • getGalileoEpoch

        public AbsoluteDate getGalileoEpoch()
        Description copied from interface: TimeScales
        Reference epoch for Galileo System Time: 1999-08-22T00:00:00 GST.
        Specified by:
        getGalileoEpoch in interface TimeScales
        Returns:
        Galileo Epoch
      • getGpsEpoch

        public AbsoluteDate getGpsEpoch()
        Description copied from interface: TimeScales
        Reference epoch for GPS weeks: 1980-01-06T00:00:00 GPS time.
        Specified by:
        getGpsEpoch in interface TimeScales
        Returns:
        GPS Epoch
      • getQzssEpoch

        public AbsoluteDate getQzssEpoch()
        Description copied from interface: TimeScales
        Reference epoch for QZSS weeks: 1980-01-06T00:00:00 QZSS time.
        Specified by:
        getQzssEpoch in interface TimeScales
        Returns:
        QZSS Epoch
      • getIrnssEpoch

        public AbsoluteDate getIrnssEpoch()
        Description copied from interface: TimeScales
        Reference epoch for IRNSS weeks: 1999-08-22T00:00:00 IRNSS time.
        Specified by:
        getIrnssEpoch in interface TimeScales
        Returns:
        IRNSS Epoch
      • getBeidouEpoch

        public AbsoluteDate getBeidouEpoch()
        Description copied from interface: TimeScales
        Reference epoch for BeiDou weeks: 2006-01-01T00:00:00 UTC.
        Specified by:
        getBeidouEpoch in interface TimeScales
        Returns:
        Beidou Epoch
      • getGlonassEpoch

        public AbsoluteDate getGlonassEpoch()
        Description copied from interface: TimeScales
        Reference epoch for GLONASS four-year interval number: 1996-01-01T00:00:00 GLONASS time.

        By convention, TGLONASS = UTC + 3 hours.

        Specified by:
        getGlonassEpoch in interface TimeScales
        Returns:
        GLONASS Epoch
      • getJavaEpoch

        public AbsoluteDate getJavaEpoch()
        Description copied from interface: TimeScales
        Java Reference epoch: 1970-01-01T00:00:00 Universal Time Coordinate.

        Between 1968-02-01 and 1972-01-01, UTC-TAI = 4.213 170 0s + (MJD - 39 126) x 0.002 592s. As on 1970-01-01 MJD = 40587, UTC-TAI = 8.000082s

        Specified by:
        getJavaEpoch in interface TimeScales
        Returns:
        Java Epoch
      • createBesselianEpoch

        public AbsoluteDate createBesselianEpoch​(double besselianEpoch)
        Description copied from interface: TimeScales
        Build an instance corresponding to a Besselian Epoch (BE).

        According to Lieske paper: Precession Matrix Based on IAU (1976) System of Astronomical Constants, Astronomy and Astrophysics, vol. 73, no. 3, Mar. 1979, p. 282-284, Besselian Epoch is related to Julian Ephemeris Date as:

         BE = 1900.0 + (JED - 2415020.31352) / 365.242198781
         

        This method reverts the formula above and computes an AbsoluteDate from the Besselian Epoch.

        Specified by:
        createBesselianEpoch in interface TimeScales
        Parameters:
        besselianEpoch - Besselian epoch, like 1950 for defining the classical reference B1950.0
        Returns:
        a new instant
        See Also:
        TimeScales.createJulianEpoch(double)