next up previous contents
Next: The Spatial Reference Up: The ASTERIX HEADER Previous: The ASTERIX HEADER

The Time Reference Frame

All time values in a dataset are expressed relative to a `reference time'. This will usually correspond to the observation start, but need not do so. The familiar system of MJD and UTC (supplemented by the redundant BASE_DATE for ready comprehension) is used, but it suffers from the serious disadvantage that UTC contains a discontinuity at each leap second.

Hence a continuous atomic time, BASE_TAI, is also defined. This starts from 0:0 on Jan 1st 1972 (since this is the point from which leap seconds are included in the Starlink routine SLA_DTA). BASE_TAI is expressed in days, so that

  BASE_TAI = (no. of seconds elapsed from 0:0 Jan 1st 1972 
              to the observation reference time) / (24*60*60)

Hence the TAI (in seconds) corresponding to a timetag T (in seconds) will be (24*60*60*BASE_TAI+T), whereas the corresponding UTC will NOT necessarily be (BASE_UTC+T), because of the possibility that a leap second may have occurred in the interval of T seconds since the reference time.

Software which enters or revises the base time (mostly the instrument interface software) must take care that leap seconds are allowed for in arriving at the BASE_UTC value. Interconversion between MJD/UTC and TAI can be achieved using the ASTERIX subroutine TIM_MJDUTC2TAI. This employs the Starlink SLALIB routine (see SUN67) SLA_DAT, which contains details of all leap seconds announced, and is regularly updated. The relationship between the base values is:

  BASE_TAI=OBS_MJD+((SLA_DAT(OBS_MJD)-10.0D0)/86400.0D0)
                                -41317.0D0
where
        OBS_MJD=DBLE(BASE_MJD)+BASE_UTC/86400.0D0



Web Master
Wed Oct 8 09:22:18 BST 1997