This independent package provides classes to handle epochs, time scales, and to compare
instants together.
The principal class is {@link org.orekit.time.AbsoluteDate}
which represents a unique instant in time, with no ambiguity. For that
purpose, the ways to define this object are quite strict.
The easiest and most evident way is to define an instant with an offset from another
one. Orekit defines 6 reference epochs. The first 5 are commonly used in the space
community and the last one is commonly used in the computer science field.
- {@link org.orekit.time.AbsoluteDate#JULIAN_EPOCH Julian Epoch}: -4712-01-01 at 12:00:00, TTScale
- {@link org.orekit.time.AbsoluteDate#MODIFIED_JULIAN_EPOCH Modified Julian Epoch}: 1858-11-17 at 00:00:00, TTScale
- {@link org.orekit.time.AbsoluteDate#FIFTIES_EPOCH Fifties Epoch}: 1950-01-01 at 00:00:00, TTScale
- {@link org.orekit.time.AbsoluteDate#GPS_EPOCH GPS Epoch}: 1980-01-06 at 00:00:00, UTCScale
- {@link org.orekit.time.AbsoluteDate#J2000_EPOCH J2000 Epoch}: 2000-01-01 at 12:00:00, TTScale
- {@link org.orekit.time.AbsoluteDate#JAVA_EPOCH Java Epoch}: 1970-01-01 at 00:00:00. TTScale
The second definition, which could be the source of some confusion if not used with care,
is by giving a location (a date) in a specific time scale. It is of prime importance
to understand the various available time scales definitions to avoid mistakes. Orekit provides
5 of the most important ones:
- {@link org.orekit.time.TAIScale}: International Atomic Time,
- {@link org.orekit.time.TTScale}: Terrestrial Time as defined by IAU(1991)
recommendation IV. Coordinate time at the surface of the Earth. It is the
successor of Ephemeris Time TE. By convention, TT = TAI + 32.184 s,
- {@link org.orekit.time.UTCScale}: Coordinated Universal Time. UTC is related to
TAI using step adjustments from time to time according to IERS (International Earth
Rotation Service) rules. These adjustments require introduction of leap seconds.
Some leaps are already known and predefined in the library (at least from 1972-01-01
to 2009-01-01) and other ones can be supported by providing UTC-TAI.history files somewhere
in the directory hierarchy pointed to by the
orekit.data.directory
property,
- {@link org.orekit.time.TCGScale}: Geocentric Coordinate Time. Coordinate time at the
center of mass of the Earth. This time scale depends linearly from TTScale.
- {@link org.orekit.time.GPSScale}: Global Positioning System reference scale. This scale
was equal to UTC at start of the {@link org.orekit.time.AbsoluteDate#GPS_EPOCH GPS Epoch}
when it was 19 seconds behind TAI, and remained parallel to TAI since then (i.e. UTC is now
offset from GPS due to leap seconds). TGPS = TAI - 19 s.
Once it is built, an {@link org.orekit.time.AbsoluteDate} can be compared
to other ones, and expressed in other time scales. It is used to define states, orbits,
frames... Classes that include a date implement the {@link org.orekit.time.TimeStamped} interface.
The {@link org.orekit.time.ChronologicalComparator} singleton can sort objects implementing this
interface chronologically.
@author L. Maisonobe