Меня смущают многочисленные противоречивые описания того, как учитываются дополнительные секунды UTC. Я понимаю, что в обычной практике существуют различные способы их обработки, и я видел множество формальных определений. Но кажется, что в научной практике они просто опускаются : не существует юлианского дня UTC (то есть нет значения JD (UTC)), соответствующего любому времени в течение дополнительной секунды, и такие вещи, как эфемериды, обычно не сообщаются для дополнительных секунд . Есть, конечно, события, которые происходят во время високосных секунд, но если кто-то хочет сослаться на время, в которое они происходят, он использует другую систему хронометража (например, UT1 или TT).
Это правильно? Это имеет смысл как способ приспособиться к двусмысленности, которую вносят дополнительные секунды, и фактически соответствует тому, как некоторые системы (например, POSIX ) реализуют их; но это не совсем соответствует определениям, которые я видел.
Как вы знаете, астрономы используют для расчетов не UT, а юлианские дни (JD). После того, как расчет выполнен, полученный JD преобразуется обратно в UT, UTC или желаемый часовой пояс для информирования общественности.
Високосные секунды можно взять из исторических данных (например, NASA http://eclipse.gsfc.nasa.gov/SEhelp/deltat2004.html или US Navy ftp://maia.usno.navy.mil/ser7/deltat.data ) или если они недоступны, их можно рассчитать http://eclipse.gsfc.nasa.gov/SEhelp/deltatpoly2004.html . Они обозначаются как ΔT.
Затем к JD добавляется ΔT, и это время называется JDE (Юлианский день эфемерид). Или, другими словами, JD рассчитывается из UT, а JDE рассчитывается из динамического времени (TD = UT + ΔT).
С начала 1990-х некоторые публикации, такие как Minor Planet Circulars (http://www.minorplanetcenter.net/iau/services/MPCServices.html), переименовали JDE в JDT, где T означает отношение к земному динамическому времени.
Вы совершенно правы: при присвоении календарным датам UTC действительных чисел JD просто невозможно назвать какой-либо момент в течение дополнительной секунды — в то время как аналоговый рендеринг времени UTC может сказать «23:59:60,25», JD предоставит нет имени ни для одного момента всей этой секунды.
В этом можно убедиться, если посетить стандартную систему JPL HORIZONS:
http://ssd.jpl.nasa.gov/horizons.cgi
Если вы введете время начала 2012-6-30 23:59:58
и время окончания 2012-7-1 0:00:02
и запросите размер шага в 5 «равных интервалов», вы могли бы, честно говоря, ожидать, что 5 секунд между этими двумя интервалами будут вашими пятью равными интервалами. Но, выбрав «Delta-T» и «формат даты-времени: Оба» в настройках таблицы, вместо этого вы увидите, что HORIZONS забывает о дополнительной секунде при делении запрошенного вами периода на 5 частей:
$$SOE
2012-Jun-30 23:59:58.000 2456109.499976852 *m 66.184122
2012-Jun-30 23:59:58.800 2456109.499986111 *m 66.184122
2012-Jun-30 23:59:59.600 2456109.499995370 *m 66.184122
2012-Jul-01 00:00:00.400 2456109.500004630 *m 67.184122
2012-Jul-01 00:00:01.200 2456109.500013889 *m 67.184122
2012-Jul-01 00:00:02.000 2456109.500023148 *m 67.184122
$$EOE
Здесь явно присутствует дополнительная секунда — вы можете увидеть скачок значения Delta-T на 1 секунду! Но дробь JD явно не имеет «места» для обозначения дополнительной секунды, как и ГОРИЗОНЫ: она включена в последующие вычисления, но не может быть названа входом в систему.
оромэ
пользователь11266
оромэ
пользователь11266