Replies: 2 comments
-
Thanks for providing these details and the graph, @miccoli! I am currently preparing a talk that I'm due to give at PyTexas this coming Saturday, and so, alas, won't be able to write up a detailed response until afterwards. (And maybe not until another conference, PyCon, is over in late April.) But my guess is that Skyfield should stick with its default, because an integral second offset is easy to implement given some clever NumPy maneuvers: https://github.com/skyfielders/python-skyfield/blob/master/skyfield/timelib.py#L677 I'm not sure the same numeric technique will work with the not-whole-second jumps that the timescale made back before UTC? In which case, opting for pre-UTC atomic-based time scales would slow down Skyfield. So: I think that choosing pre-UTC atomic time should be fully supported, but should be opt-in, where when folks create their Timescale object they specify the behavior they want. In which case—maybe instead of having to choose between options like 1.iii and 1.iv, they could just tell the Timescale what behavior they want! |
Beta Was this translation helpful? Give feedback.
-
@brandon, no hurry, reply when you have time. Let me just point out that pre-1972 is not pre-UTC. We can discuss if it started 1960, 1961, or even 1963, but you will find plenty of references in the 60' to coordinated universal time, spelled out as UTC. E.g. in this short but interesting article: Sadler, D. H. (1968). ‘The Metrication of Navigation.’ The Journal of Navigation, 21(2), 236–237 you read:
But I agree that pragmatically each user should be able to choose the UTC semantics that better suits its use cases. |
Beta Was this translation helpful? Give feedback.
-
Recently I was comparing earth rotation from
For doing so I needed the UTC - TAI offset before 1972. Unfortunately in skyfield UTC - TAI = 32.184s - (ΔT + DUT1) is only implemented after 1972 and assumes only integer values. This is discussed in #679.
I would like to open a PR for solving this issue, but before starting the implementation I would like to summarize the options available to understand if there is consensus on how to proceed. Of course @brandon-rhodes has the last word, but I'm myself a little bit confused, so before opening the PR I would like to hear some opinons.
Sources for the UTC - TAI offset are
iauDAT
which uses the same data points as the above source plus an extra data point which backdates the UTC scale to 1960-01-01.Open questions.
When do we conventionally start the UTC timescale?
What do we do when a user requests a date before the conventional start of UTC?
NaN
Astropy uses the ERFA version of SOFA, so it's behaviour is 1.iii and 2.iv.
For visual comparison diagrams with the EOP CO1 UTI-TAI vs various implementations of UTC-TAI are given below.
This is 1.i–2.i (current Skyfield)
![image](https://user-images.githubusercontent.com/6403904/227809939-ae065b6f-949d-4716-af07-7672684a165f.png)
And this is 1.iii–2.iv (astropy and SOFA)
![image](https://user-images.githubusercontent.com/6403904/227810501-d26643cf-2be3-4e92-81aa-86783b8e5885.png)
My current preference would be for 1.iii or 1.iv and 2.iv.
Choosing 1958 as the conventional start date for the UTC scale is historically innacurate (there was no UTC back in 1958) but has the clear advantage that there is no discontinuity if 2.i or 2.iv is chosen for out of domain dates. In this case the 1958-1960 UTC time would be defined as the radio signals broadcasted by WWV in the US.
Beta Was this translation helpful? Give feedback.
All reactions