Время, UTC, юлианская дата, эпоха TLE - как они связаны количественно?

Я пытаюсь понять взаимосвязь (количественно) между JulianDate, UTC и эпохой двухстрочных элементов. Это глубокая тема, особенно если включить теорию относительности, и длинная тема — в ней много истории. Но здесь мне нужно просто базовое понимание того, как эти три вещи соотносятся количественно, на Земле, плюс/минус через несколько лет, с точностью до миллисекунды.

Я примерно понимаю, что UTC увеличивается на 1 секунду каждую секунду , с обычными правилами для часов, минут, дней, лет, високосных лет и високосных секунд .

Я не понимаю JulianDate . Это ссылка на длинную статью, в которой приводится много фактов, но после прочтения я так и не понял, что это такое количественно. Если я сопоставлю UTC с юлианским днем, будут ли они параллельны (за исключением високосных лет/секунд UTC)? Есть ли сопоставление, которое я могу понять, или мне нужно использовать компьютерную программу, веб-сайт или какой-то другой черный ящик для преобразования между ними?

Вот два примера ситуаций, когда я чувствую себя потерянным. Я печатаю дополнительную информацию, чтобы убедиться, что я понимаю некоторые вещи — вопросы выделены жирным шрифтом :

Пример 1 — время на моем компьютере и в Skyfield :

from skyfield.api import now, JulianDate, load
import time
def test():
    a, b =  now(), time.gmtime()   # check the times
    print a.tt_tuple()
    print time.asctime(b)
test()

(2016.0, 1.0, 31.0, 11, 45, 28.927114605903625)
Sun Jan 31 11:44:20 2016

Оба они получены из системного времени моего компьютера (я думаю!), Которое обновлено. Разница составляет около 69 секунд. Что это?

Пример 2 эпохи TLE :

from skyfield.api import now, JulianDate, load
import math

data = load('de421.bsp')
earth = data['earth']

TLE = """
1 25544U 98067A   16031.25992506  .00006019  00000-0  97324-4 0  9994
2 25544  51.6430  25.8646 0006733  62.5910  66.7566 15.54344726983528
"""

ISS = earth.satellite(TLE)

print ISS._sgp4_satellite.satnum, "  NORAD satellite number of ISS in the TLE"
print ISS._sgp4_satellite.epoch,  "  The epoch of the TLE"

frac = 0.25992506                 #  fraction of day in the epoch of the TLE"

print round((((frac*24.-6.)*60.-14.)*60.-17.)*1E+06), "  the microseconds of the epoch"

print ISS._sgp4_satellite.mo*(180./math.pi),    "  TLE Mean Anomaly - of ISS *at* epoch?"

print JulianDate(utc=(2016, 1, 31, 6, 14, 17.525184)).tt,  "  What is this number??"

выход:

25544   NORAD satellite number of ISS in the TLE
2016-01-31 06:14:17.525184   The epoch of the TLE
525184.0   the microseconds of the epoch
66.7566   TLE Mean Anomaly - of ISS *at* epoch?
2457418.76071   What is this number??

Каково точное значение последнего числа и как я могу преобразовать значение этой эпохи в UTC (если захочу)?

Ответы (2)

JulianDate в основном подсчитывает количество дней с 1 января 4713 г. до н.э. 12:00 UTC по юлианскому календарю. Однако это немного сложно понять, так как это было так давно, используется другой календарь, и вы должны принять во внимание переход от BC к AD.

Поэтому мы используем Reduced JulianDate, еще один официальный стандарт, связанный с Уменьшенный JD знак равно Джей Ди 2400000 . Это подсчитывает количество дней с 16 ноября 1858 года, 12:00 TT (земное время) в (обычном) григорианском календаре.

Затем мы можем добавить 45,5 дней, чтобы достичь 1 января 1859 года в 00:00 UTC. Мы можем добавить еще 51499 дней, чтобы достичь 1 января 2000 года, 00:00 (по земному времени), начала нового 400-летнего цикла.

Теперь мы можем вычислить:

Джей Ди знак равно 2451544,5 + 365 Д + 0,25 Д 0,01 Д + 0,0025 Д + А + Д + 1 24 ЧАС + 1 1440 М + 1 86400 С

Где:

  • Д текущий год по григорианскому календарю минус 2000
  • Икс функция пола, наибольшее целое число, меньшее, чем Икс .
  • Д дает номер текущего дня. Это 1 1 января, 32 1 февраля и т. д.
  • ЧАС текущий час по земному времени.
  • М - текущая минута по земному времени.
  • С - текущая секунда земного времени, включая миллисекунды и т. д.
  • А является поправочным коэффициентом. Если год високосный, он равен -1, в противном случае он равен нулю.

Это просто формула, которая работает. Есть много других формул, которые могли бы работать, но я выбрал эту, потому что ее было проще всего объяснить.

Разница в 69 секунд вызвана разницей между земным временем и UTC, которая в настоящее время составляет 68,184 секунды. Это связано с разницей в 36 секунд в високосных секундах и историческим смещением в 32,184 секунды.

Хм... дайте мне немного времени, чтобы переварить это. Так всегда ли JD плавно и непрерывно увеличивается на 1/86400 каждую секунду ? Я смотрю на то, что кажется коэффициентом перед Y (365.2425) и количеством дней между, скажем Jan 1 00:00:00 , любым годом и следующим, которое должно быть, 365или 366целыми днями (кроме високосных секунд), и я не понимаю, как это может быть гладкий; плавный.
@uhoh Обратите внимание на скобки вокруг частей с Y. (Функция пола - это наибольшее целое число, меньшее, чем вход). Да, JD всегда плавно и непрерывно увеличивается на 1/86400 каждую секунду, за исключением високосных секунд, которые существуют в UTC, но не в TT.
Хорошо, было бы неплохо добавить, что квадратные скобки также []означают floor()в ответе. Теперь я могу понять, например [0.01Y], что нужно компенсировать пропажу 29 февраля каждый год, который заканчивается на '00.
@uhoh Это правильно. Я добавил это к ответу.
Вторая часть об эпохе спутника Two Line Element - кажется , Юлианский день, но я не уверен. Если вы можете добавить немного об этом, я могу отметить это как ответ (сейчас я не в сети, вернусь в 0.5D) Это большая помощь, спасибо !!!
ОК, отлично - спасибо за вашу помощь! Я выделил вопрос TLE отдельно .
Коррекция между TT и UTC здесь точна только до миллисекунд, верно?

Мне часто приходится читать путеводитель Skyfield по датам и времени , чтобы все было правильно, но вкратце:

  • Дата по юлианскому календарю — это просто альтернативный способ обозначения моментов, более простой, чем наша обычная система «дата плюс время». Обычно для указания даты и времени требуется шесть разных чисел — год, месяц, день, час, минута и секунды, — а сравнение двух дат требует огромного количества математических вычислений, когда вы заимствуете 31 день из некоторых месяцев, а 30 из них. другие, и необходимость держать в голове високосный день, если вы хотите, чтобы математика сработала. Не так с юлианскими датами: они просто присваивают простое число с плавающей запятой каждой дате плюс время в нашем календаре, и с ними гораздо проще выполнять математические операции.

  • Вопрос о том, любите ли вы названия моментов, обозначающие дату и время, или вместо этого любите числа по юлианскому календарю для обозначения моментов, полностью отделен от вопроса о шкале времени — вопроса о том, «сколько сейчас времени» для данного момента? Независимо от того, используете ли вы имя «2457418,5» или имя «2016 31 января 00:00:00,0» (оба полностью эквивалентны) для данного момента, остается вопрос «но как мы договоримся о том, когда был этот момент? ”

  • Шкала времени — это система присвоения имен моментам времени. UT1, UTC, TAI, TT и TDB дают разные ответы на вопрос «Как лучше назвать ПРЯМО СЕЙЧАС?» Независимо от того, выражаете ли вы TT как дату по юлианскому календарю, потому что вам нравятся большие числа, облегчающие математику, или как дату плюс время, потому что большие числа мало что для вас значат, вы просто выражаете ответ на вопрос двумя разными способами. вопрос «Как ТТ называет этот конкретный момент?»

Вы можете задаться вопросом, почему у нас должно быть так много разных имен (потому что на самом деле есть еще несколько, помимо основных пяти, которые я назвал выше) для одного и того же момента. Кратко:

UT1 — потому что нам интересно, где Солнце и звезды над нашими головами.

UTC — потому что мы хотим, чтобы наши боковые часы были как бы синхронизированы с восходом и закатом, но трудно объяснить всем часам, что секунды должны ускоряться и замедляться, чтобы отслеживать движение солнца, поэтому вместо этого давайте оставим секунды постоянной длины и добавить дополнительную секунду, когда мы начинаем отставать.

ТАЙ — просто забудь о солнце. Атомным часам нужны секунды, которые идут прямо вперед без каких-либо вычислений.

ТТ — отличная идея, ребята из TAI! Только у астрономов уже была эта идея много лет назад, и они уже начали проводить расчеты с воображаемыми часами, которые не замедлялись из-за замедления вращения Земли, поэтому лучше, чтобы они поддерживали временную шкалу, параллельную TAI, но которая остается 30+ секунд. разные, поэтому им не нужно переписывать всю свою математику и таблицы.

TDB — но если вас интересует небесный часовой механизм Солнечной системы, все остальные часы бесполезны! Потому что любые земные часы будут ускоряться и замедляться по мере того, как Земля каждый год ускоряется и замедляется, потому что: относительность. Если вы собираетесь изучать движение планет, вы должны использовать воображаемые часы, стационарные в центре Солнечной системы, а не сумасшедшие часы Микки Мауса, которые мы носим на Земле и которые ускоряют ОБОИ наше орбитальное вращение И наше суточное вращение.

Опять же, обратитесь к документации Skyfield, указанной выше, и к циркуляру USNO 179 для более технического описания этих концепций.

Спасибо! Это очень полезно, как и страница документации Skyfield. Но сейчас я просто хочу сосредоточиться на правильном использовании цифр, а не на понимании общей картины. Конечно хочу, но обо всем по порядку. Я разбил вопрос TLE отдельно.