Tuesday, 12 February 2013

orbit - How can we avoid needing a leap year/second?

We not only can avoid leap seconds, that's how it used to work in fact. And there is a common newer system which avoids leap seconds as well.



Before 1960, seconds were defined as 1/86400 of a mean solar day. Then when variations in the earth's rotation caused it to get out of sync, a new mean solar day could be computed and divided by 86400 - changing the length of the second in absolute terms, stretching or shrinking it very slightly.



That was a mess, as you can imagine. So the second was defined in terms of a specific number of atomic oscillations which could be made extremely precise. Instead of shrinking and stretching the second to keep an exact number of them in a day, we keep the second fixed and add or subtract one from the (integer) count when we need to adjust.



Those are pretty much the ways to keep earth rotation timing in sync with our clock time - you need some give somewhere, either by changing the length of the second and keeping the count fixed, or you keep the length fixed and change the count. For somebody just writing a simple program to, say, compute the civil seconds between two UTC timestamps, the old way was easier (a fixed count of seconds between two times is trivial). But if you are doing scientific or engineering calculations or experiments to great precision, it's WAY better to have a very firmly fixed length of a second, not changing it from time to time - much worse than the inconvenience of taking leap seconds into account.



But the way, another approach is to just ignore leap seconds and keep your clocks running continuously. That's how GPS time works - it started in sync with UTC, but has not been adjusted for the leap seconds since then, so they are out of sync by a quarter minute or so (I haven't check in some while). That's nice for GPS orbital calculations that cross leap second adjustment boundaries. In the GPS data packet there is information about the current delta between UTC and GPS time so you can calculate civil time from GPS time, as well as a few months advanced warning when a new leap second is going to be added or omitted.



Another answer suggested queuing up leap seconds and making a multi-second leap every decade. That doesn't really simplify your software much tho - now you have to allow minutes with, say, 67 seconds, every decade. Easier to just deal with leap seconds using a table and meanwhile never be off by even 1 second. (The standard allows for them to added or omitted by the way - you could have a 59 second minute or a 61 second minute when you need an adjustment. It's generally the latter tho.



Oh, one other solution. The organization which really tracked all this was called the International Earth Rotation Service, later renamed to International Earth Rotation and Reference Systems Service (IERS). Imagine the chaos if they stopped being funded and the Earth stopped rotating. Anyway, I suppose you could just ask them to rotate it more consistently. :-)

No comments:

Post a Comment