Мне нужно преобразовать время в UT в сочетании с долготой в местное время. Я работаю над анализом будущей спутниковой миссии по наблюдению за Землей, и мне нужно сделать это преобразование, чтобы продолжить.
Я нашел общее решение этой проблемы здесь: T( lt) = T(ut) + lon/(360/24), однако его реализация сводит меня с ума.
Мои данные являются объектами даты и времени:
In[9]: sattime[0]
Out[9]: datetime.time(18, 0)
и координаты долготы от 0 до 360 градусов.
Мне нужно взять этот объект и использовать приведенное выше уравнение для преобразования в местное время. Я ТОЛЬКО забочусь о времени относительно полуночи, а НЕ о дате (на самом деле остальная часть моего кода в настоящее время использует только объект datetime.time, и предпочтительно, чтобы вывод локального времени был тем же типом объекта).
Я пробовал следующее из здесь, но я застрял, возвращая локальную переменную обратно в объект времени.
test = 4
for (i,j) in zip(sattime, satloncor):
td = datetime.datetime.combine(datetime.datetime.min, i) - datetime.datetime.min
seconds = td // datetime.timedelta(milliseconds=1)
local = (seconds + (j/(360/86400)))/1000
print (local)
if test<0:
break
test-=1
Тестовая часть кода просто гарантирует, что я не трачу время на преобразование всех ~ 400 000 точек данных.
Подводя итог, я хочу взять объект datetime.time в UT в сочетании с соответствующей долготой и преобразовать его в местное солнечное время как объект datetime.time.
Все это кажется очень запутанным и кажется, что должен быть более простой способ. Любая помощь приветствуется! Спасибо!