Я пытаюсь понять взаимосвязь (количественно) между 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 (если захочу)?
JulianDate в основном подсчитывает количество дней с 1 января 4713 г. до н.э. 12:00 UTC по юлианскому календарю. Однако это немного сложно понять, так как это было так давно, используется другой календарь, и вы должны принять во внимание переход от BC к AD.
Поэтому мы используем Reduced JulianDate, еще один официальный стандарт, связанный с . Это подсчитывает количество дней с 16 ноября 1858 года, 12:00 TT (земное время) в (обычном) григорианском календаре.
Затем мы можем добавить 45,5 дней, чтобы достичь 1 января 1859 года в 00:00 UTC. Мы можем добавить еще 51499 дней, чтобы достичь 1 января 2000 года, 00:00 (по земному времени), начала нового 400-летнего цикла.
Теперь мы можем вычислить:
Где:
Это просто формула, которая работает. Есть много других формул, которые могли бы работать, но я выбрал эту, потому что ее было проще всего объяснить.
Разница в 69 секунд вызвана разницей между земным временем и UTC, которая в настоящее время составляет 68,184 секунды. Это связано с разницей в 36 секунд в високосных секундах и историческим смещением в 32,184 секунды.
Мне часто приходится читать путеводитель 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 для более технического описания этих концепций.
ооо
(365.2425)
и количеством дней между, скажемJan 1 00:00:00
, любым годом и следующим, которое должно быть,365
или366
целыми днями (кроме високосных секунд), и я не понимаю, как это может быть гладкий; плавный.вифагор
ооо
[]
означаютfloor()
в ответе. Теперь я могу понять, например[0.01Y]
, что нужно компенсировать пропажу 29 февраля каждый год, который заканчивается на '00.вифагор
ооо
ооо
честный_вивер