Преобразовать даты в число юлианских дней в астропии?

Я использую астропию, и мне нужно преобразовать даты следующим образом: 2012.06.22_17:56:15_TAI в номер дня по юлианскому календарю. Я пытался:

from astropy.time import Time
hmitime = hminew['MidTime']
i=0
print(hmitime[i])
hmi0=Time(hmitime[i],scale='tai')
print(hmi0.jd)

где hmitime это просто матрица с моими датами. Но python показывает мне это:

ValueError: Input values did not match any of the formats where the format keyword is optional [u'datetime', u'iso', u'isot', u'yday', u'fits', u'byear_str', u'jyear_str']

Кто-нибудь знает, что не так? Как я могу преобразовать свои даты?? Спасибо

Я думаю, что фактический дословный пример ваших входных данных, включая пробелы и т. д., может иметь решающее значение для выявления вашей проблемы... в конце концов, это ValueError.
что такое словарь hmenew? Можете ли вы создать минимальный пример, который я мог бы скопировать и вставить, чтобы создать эту ошибку?

Ответы (2)

Допустимые строковые форматы для date-hms:

Format  Class    Example argument

fits    TimeFITS    ‘2000-01-01T00:00:00.000’
iso     TimeISO     ‘2000-01-01 00:00:00.000’
isot    TimeISOT    ‘2000-01-01T00:00:00.000’

https://docs.astropy.org/en/stable/time/index.html

Вы можете либо изменить один из них, либо определить свой собственный формат, создав класс для формата из класса TimeFormat. https://docs.astropy.org/en/stable/api/astropy.time.TimeFormat.html#astropy.time.TimeFormat

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

Существует алгоритм преобразования текущей даты и времени в дату по юлианскому календарю. Ссылка на это здесь. У меня также есть очень короткий код на фортране, который также вычисляет JD.

Вы можете добавить это в свой скрипт Python.