Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend back to 1961 #1

Closed
qntm opened this issue Oct 29, 2016 · 4 comments
Closed

Extend back to 1961 #1

qntm opened this issue Oct 29, 2016 · 4 comments
Assignees

Comments

@qntm
Copy link
Owner

qntm commented Oct 29, 2016

As per several sources, such as this IERS listing of historic offsets between TAI and UTC and this table provided by the US Naval Observatory (ftp://maia.usno.navy.mil/ser7/tai-utc.dat), the relationship between UTC and TAI is in fact well-defined as far back as 1 January 1961. As we can (sort of) see from the table, during this earlier period from 1961 to the end of 1971, UTC seconds were very slightly shorter than TAI seconds, so the offset between the two "slid" continuously at varying rates. Both the ratio between TAI and UTC seconds and the absolute offset between TAI and UTC were adjusted manually on several discrete occasions, up until 1 January 1972 when a "final irregular jump of exactly 0.107758 TAI seconds" brought UTC to 1972-01-01 00:00:00 at the exact instant that TAI reached 1972-01-01 00:00:10, and the rest is history.

Unix time can probably be extended backwards to 1 January 1961 too, which means that in theory it should be possible to provide Unix<->TAI conversions during this earlier period.

The spectre of floating point raises its ugly head at this point...

@qntm
Copy link
Owner Author

qntm commented Oct 29, 2016

____________________________________________________________________________

Limits of validity (at 0h UTC) TAI-UTC (MJD = Modified Julian Day)

____________________________________________________________________________

1961  Jan.  1 - 1961  Aug.  1     1.422 818 0s + (MJD - 37 300) x 0.001 296s
      Aug.  1 - 1962  Jan.  1     1.372 818 0s +        ""
1962  Jan.  1 - 1963  Nov.  1     1.845 858 0s + (MJD - 37 665) x 0.001 123 2s
1963  Nov.  1 - 1964  Jan.  1     1.945 858 0s +        ""
1964  Jan.  1 -       April 1     3.240 130 0s + (MJD - 38 761) x 0.001 296s
      April 1 -       Sept. 1     3.340 130 0s +        ""
      Sept. 1 - 1965  Jan.  1     3.440 130 0s +        ""
1965  Jan.  1 -       March 1     3.540 130 0s +        ""
      March 1 -       Jul.  1     3.640 130 0s +        ""
      Jul.  1 -       Sept. 1     3.740 130 0s +        ""
      Sept. 1 - 1966  Jan.  1     3.840 130 0s +        ""
1966  Jan.  1 - 1968  Feb.  1     4.313 170 0s + (MJD - 39 126) x 0.002 592s
1968  Feb.  1 - 1972  Jan.  1     4.213 170 0s +        ""
1972  Jan.  1 -       Jul.  1    10s            
      Jul.  1 - 1973  Jan.  1    11s    
1973  Jan.  1 - 1974  Jan.  1    12s    
1974  Jan.  1 - 1975  Jan.  1    13s    
1975  Jan.  1 - 1976  Jan.  1    14s   
1976  Jan.  1 - 1977  Jan.  1    15s   
1977  Jan.  1 - 1978  Jan.  1    16s   
1978  Jan.  1 - 1979  Jan.  1    17s
1979  Jan.  1 - 1980  Jan.  1    18s
1980  Jan.  1 - 1981  Jul.  1    19s   
1981  Jul.  1 - 1982  Jul.  1    20s   
1982  Jul.  1 - 1983  Jul.  1    21s    
1983  Jul.  1 - 1985  Jul.  1    22s    
1985  Jul.  1 - 1988  Jan.  1    23s
1988  Jan.  1 - 1990  Jan.  1    24s 
1990  Jan.  1 - 1991  Jan.  1    25s
1991  Jan.  1 - 1992  Jul.  1    26s
1992  Jul.  1 - 1993  Jul   1    27s
1993  Jul.  1 - 1994  Jul.  1    28s
1994  Jul.  1 - 1996  Jan.  1    29s
1996  Jan.  1 - 1997  Jul.  1    30s
1997  Jul.  1 - 1999  Jan.  1    31s
1999  Jan.  1 - 2006  Jan.  1    32s
2006  Jan.  1 - 2009  Jan.  1    33s
2009  Jan.  1 - 2012  Jul.  1    34s
2012  Jul.  1 - 2015  Jul.  1    35s
2015  Jul.  1 - 2017  Jan.  1    36s
2017  Jan.  1 -                  37s

@qntm
Copy link
Owner Author

qntm commented Oct 29, 2016

 1961 JAN  1 =JD 2437300.5  TAI-UTC=   1.4228180 S + (MJD - 37300.) X 0.001296 S
 1961 AUG  1 =JD 2437512.5  TAI-UTC=   1.3728180 S + (MJD - 37300.) X 0.001296 S
 1962 JAN  1 =JD 2437665.5  TAI-UTC=   1.8458580 S + (MJD - 37665.) X 0.0011232S
 1963 NOV  1 =JD 2438334.5  TAI-UTC=   1.9458580 S + (MJD - 37665.) X 0.0011232S
 1964 JAN  1 =JD 2438395.5  TAI-UTC=   3.2401300 S + (MJD - 38761.) X 0.001296 S
 1964 APR  1 =JD 2438486.5  TAI-UTC=   3.3401300 S + (MJD - 38761.) X 0.001296 S
 1964 SEP  1 =JD 2438639.5  TAI-UTC=   3.4401300 S + (MJD - 38761.) X 0.001296 S
 1965 JAN  1 =JD 2438761.5  TAI-UTC=   3.5401300 S + (MJD - 38761.) X 0.001296 S
 1965 MAR  1 =JD 2438820.5  TAI-UTC=   3.6401300 S + (MJD - 38761.) X 0.001296 S
 1965 JUL  1 =JD 2438942.5  TAI-UTC=   3.7401300 S + (MJD - 38761.) X 0.001296 S
 1965 SEP  1 =JD 2439004.5  TAI-UTC=   3.8401300 S + (MJD - 38761.) X 0.001296 S
 1966 JAN  1 =JD 2439126.5  TAI-UTC=   4.3131700 S + (MJD - 39126.) X 0.002592 S
 1968 FEB  1 =JD 2439887.5  TAI-UTC=   4.2131700 S + (MJD - 39126.) X 0.002592 S
 1972 JAN  1 =JD 2441317.5  TAI-UTC=  10.0       S + (MJD - 41317.) X 0.0      S
 1972 JUL  1 =JD 2441499.5  TAI-UTC=  11.0       S + (MJD - 41317.) X 0.0      S
 1973 JAN  1 =JD 2441683.5  TAI-UTC=  12.0       S + (MJD - 41317.) X 0.0      S
 1974 JAN  1 =JD 2442048.5  TAI-UTC=  13.0       S + (MJD - 41317.) X 0.0      S
 1975 JAN  1 =JD 2442413.5  TAI-UTC=  14.0       S + (MJD - 41317.) X 0.0      S
 1976 JAN  1 =JD 2442778.5  TAI-UTC=  15.0       S + (MJD - 41317.) X 0.0      S
 1977 JAN  1 =JD 2443144.5  TAI-UTC=  16.0       S + (MJD - 41317.) X 0.0      S
 1978 JAN  1 =JD 2443509.5  TAI-UTC=  17.0       S + (MJD - 41317.) X 0.0      S
 1979 JAN  1 =JD 2443874.5  TAI-UTC=  18.0       S + (MJD - 41317.) X 0.0      S
 1980 JAN  1 =JD 2444239.5  TAI-UTC=  19.0       S + (MJD - 41317.) X 0.0      S
 1981 JUL  1 =JD 2444786.5  TAI-UTC=  20.0       S + (MJD - 41317.) X 0.0      S
 1982 JUL  1 =JD 2445151.5  TAI-UTC=  21.0       S + (MJD - 41317.) X 0.0      S
 1983 JUL  1 =JD 2445516.5  TAI-UTC=  22.0       S + (MJD - 41317.) X 0.0      S
 1985 JUL  1 =JD 2446247.5  TAI-UTC=  23.0       S + (MJD - 41317.) X 0.0      S
 1988 JAN  1 =JD 2447161.5  TAI-UTC=  24.0       S + (MJD - 41317.) X 0.0      S
 1990 JAN  1 =JD 2447892.5  TAI-UTC=  25.0       S + (MJD - 41317.) X 0.0      S
 1991 JAN  1 =JD 2448257.5  TAI-UTC=  26.0       S + (MJD - 41317.) X 0.0      S
 1992 JUL  1 =JD 2448804.5  TAI-UTC=  27.0       S + (MJD - 41317.) X 0.0      S
 1993 JUL  1 =JD 2449169.5  TAI-UTC=  28.0       S + (MJD - 41317.) X 0.0      S
 1994 JUL  1 =JD 2449534.5  TAI-UTC=  29.0       S + (MJD - 41317.) X 0.0      S
 1996 JAN  1 =JD 2450083.5  TAI-UTC=  30.0       S + (MJD - 41317.) X 0.0      S
 1997 JUL  1 =JD 2450630.5  TAI-UTC=  31.0       S + (MJD - 41317.) X 0.0      S
 1999 JAN  1 =JD 2451179.5  TAI-UTC=  32.0       S + (MJD - 41317.) X 0.0      S
 2006 JAN  1 =JD 2453736.5  TAI-UTC=  33.0       S + (MJD - 41317.) X 0.0      S
 2009 JAN  1 =JD 2454832.5  TAI-UTC=  34.0       S + (MJD - 41317.) X 0.0      S
 2012 JUL  1 =JD 2456109.5  TAI-UTC=  35.0       S + (MJD - 41317.) X 0.0      S
 2015 JUL  1 =JD 2457204.5  TAI-UTC=  36.0       S + (MJD - 41317.) X 0.0      S
 2017 JAN  1 =JD 2457754.5  TAI-UTC=  37.0       S + (MJD - 41317.) X 0.0      S

@qntm
Copy link
Owner Author

qntm commented Oct 29, 2016

For example, the line:

1966 JAN  1 =JD 2439126.5  TAI-UTC=   4.3131700 S + (MJD - 39126.) X 0.002592 S

indicates that the following all represent the same instant in time:

  • 1966-01-01 00:00:00.000000 UTC
  • 1966-01-01 00:00:04.313170 TAI
  • Julian date 2439126.5
  • Modified Julian date 39126.0

At this instant, TAI was 4.313170 seconds ahead of Unix, and pulling ahead by 0.002592 seconds per day.

By 1968-02-01 00:00:00 UTC, TAI was 6.285682 seconds ahead at 1968-02-01 00:00:06.285682.

However, the next line of data

1968 FEB  1 =JD 2439887.5  TAI-UTC=   4.2131700 S + (MJD - 39126.) X 0.002592 S

indicates that the following all represent the same instants in time:

  • 1968-02-01 00:00:00.000000 UTC
  • 1968-02-01 00:00:06.185682 TAI
  • Julian date 2439887.5
  • Modified Julian date 39887

So this means that at 1968-02-01 00:00:00 UTC, TAI suddenly jumped from 6.285682 seconds ahead to only 6.185682 seconds ahead. Since TAI is a fixture and UTC is derived from it, this in fact indicates a deliberately inserted discontinuity in UTC, from which some 0.1 TAI seconds were removed... a removed one-tenth of a leap second, as it were. And you thought there was no such thing!

TAI and UTC continued to drift apart. By 1972-01-01 00:00:00 UTC, TAI was 9.892242 seconds ahead at 1972-01-01 00:00:09.892242. This leads us to beginning of the "modern era" of TAI:

1972 JAN  1 =JD 2441317.5  TAI-UTC=  10.0       S + (MJD - 41317.) X 0.0      S

Here, it is still 1972-01-01 00:00:00 UTC but it is suddenly 1972-01-01 00:00:10 TAI, thanks to the highly irregular insertion of 0.107758 "leap" TAI seconds into UTC. From this moment on,

  1. UTC and TAI seconds are exactly the same length, and
  2. the offset between TAI and UTC only changes at discrete intervals, by a whole 1.000000 seconds each time.

@qntm qntm self-assigned this Oct 29, 2016
@qntm
Copy link
Owner Author

qntm commented Oct 31, 2016

Done, basically. Give or take some serious thought about precision loss, and exactly how conversions behave at boundaries of leap time insertion/removal...

@qntm qntm closed this as completed Oct 31, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant