Преобразование из даты-времени в время GPS - PullRequest
2 голосов
/ 16 февраля 2020

Я хочу преобразовать массив строк даты и времени (ГГГГ-ММ-ДД чч: мм: сс) в секунды GPS (секунды после 2000-01-01 12:00:00) в среде python.

Чтобы получить секунды GPS для одной даты в Linux BASH, я просто ввожу date2sec datetimestring, и он возвращает число.

Я мог бы сделать это в течение -1 oop в пределах python. Но как мне включить это в сценарий python, поскольку это внешний сценарий?

Или, есть ли другой способ преобразовать массив строк даты-времени (или одиночные строки даты-времени, включенные в for-l oop) в время GPS без использования date2se c?

Ответы [ 2 ]

2 голосов
/ 16 февраля 2020

Обновленный ответ : использует библиотеку Astropy:

from astropy.time import Time

t = Time('2019-12-03 23:55:32', format='iso', scale='utc')
print(t.gps)

Здесь вы устанавливаете дату в UT C, а t.gps преобразует дату и время в секунды GPS.

Дальнейшие исследования показали, что непосредственное использование объектов даты и времени не учитывает дополнительных секунд.

другие полезные ссылки здесь: Как получить текущую дату и время из несегментного GPS время в python

0 голосов
/ 21 февраля 2020

Вот решение, которое я использовал для всего массива даты-времени в for-l oop:

import numpy as _np
J2000 = _np.datetime64('2000-01-01 12:00:00')                    # Time origin
dateTime = [...]                                                 # an array of date-times in 'YYYY-MM-DD hh:mm:ss' format
GPSarray_secs = []                                               # Create new empty array
for i in range(0,len(dateTime)) :                                # For-loop conversion
     GPSseconds = (_np.datetime64(dateTime) - J2000).astype(int) # Calculate GPS seconds
     GPSarray_secs = _np.append(GPSarray_secs , GPSseconds)      # Append array

Простое преобразование для одной записи даты-времени:

import numpy as _np
J2000 = _np.datetime64('2000-01-01 12:00:00')                    # Time origin
GPSseconds = (_np.datetime64(dateTime) - J2000).astype(int)      # Conversion where dateTime is in 'YYYY-MM-DD hh:mm:ss' format

Импорт datetime не требуется.

...