gnssconstellation
Положение спутников в заданный момент времени.
| Библиотека |
|
Описание
Функция gnssconstellation возвращает координаты и векторы скорости спутников для заданных моментов времени в геоцентрической системе координат, связанной с Землей.
Синтаксис
Вызов функции
Функция gnssconstellation определяет положение и скорость спутников путем экстраполяции текущих орбитальных параметров (взятых из файла RINEX, альманахов SEM или YUMA)
на момент запроса. Чтобы получить более точные данные о положении и скорости спутников, убедитесь, что вы используете навигационный файл, актуальный для запрашиваемого момента времени. Дополнительную информацию о сроке действия орбитальных параметров см. в разделе Орбитальные параметры.
|
Аргументы
Входные аргументы
#
t —
текущее время для моделирования спутника
массив DateTime
Details
Текущее время для моделирования спутника, заданное как массив DateTime.
Часовым поясом по умолчанию для массива DateTime является UTC.
Начальный момент отсчета времени GPS — 6 января 1980 года, 00:00 (UTC).
| Типы данных |
|
Details
Навигационные данные, заданные как DataFrame.
Чтение навигационных данных из файла RINEX
Функция gnssconstellation может обрабатывать данные GPS или Galileo, считанные из файла RINEX. Содержимое структуры, возвращаемой функцией rinexread, зависит от типа спутниковой системы, описанной в файле RINEX. Дополнительную информацию о содержимом структуры см. в описании аргумента data функции rinexread.
Чтобы прочитать данные навигационного сообщения GPS из файла RINEX, извлеките поле GPS из возвращаемой структуры. Например:
import EngeeNavigation.Functions: rinexread
rinexData = rinexread("GODS00USA_R_20211750000_01D_GN.rnx")
navData = rinexData.GPS
Чтобы прочитать данные навигационного сообщения Galileo из файла RINEX, извлеките поле Galileo из возвращаемой структуры. Например:
rinexData = rinexread("GODS00USA_R_20211750000_01D_EN.rnx")
navData = rinexData.Galileo
Чтобы прочитать данные навигационного сообщения ГЛОНАСС из файла RINEX, извлеките поле GLONASS из возвращаемой структуры. Например:
rinexData = rinexread("GODS00USA_R_20211750000_01D_RN.rnx")
navData = rinexData.GLONASS
Чтобы прочитать данные навигационного сообщения Бэйдоу из файла RINEX, извлеките поле BeiDou из возвращаемой структуры. Например:
rinexData = rinexread("GODS00USA_R_20211750000_01D_CN.rnx")
navData = rinexData.BeiDou
Чтобы прочитать данные навигационного сообщения NavIC/IRNSS из файла RINEX, извлеките поле NavIC из возвращаемой структуры. Например:
rinexData = rinexread("ARHT00ATA_R_20211750000_01D_IN.rnx")
navData = rinexData.NavIC
Чтобы прочитать данные навигационного сообщения QZSS из файла RINEX, извлеките поле QZSS из возвращаемой структуры. Например:
rinexData = rinexread("ARHT00ATA_R_20211750000_01D_JN.rnx")
navData = rinexData.QZSS
Чтобы прочитать данные навигационного сообщения SBAS из файла RINEX, извлеките поле SBAS из возвращаемой структуры. Например:
rinexData = rinexread("GOP600CZE_R_20211750000_01D_SN.rnx")
navData = rinexData.SBAS
| При чтении данных Galileo в формате RINEX номер недели привязан к неделе GPS. Неделя GPS начинается в полночь с 5 на 6 января 1980 года. |
Чтение навигационных данных из файла альманаха SEM
Функция gnssconstellation может обрабатывать данные GPS, считанные из файла альманаха SEM. Табличные данные, возвращаемые функцией semread, содержат параметры каждого спутника из файла альманаха, соответствующие указанной дате. Дополнительную информацию о содержимом табличных данных см. в описании аргумента data функции semread.
Поскольку функция semread возвращает табличные данные, в качестве ее выходного аргумента можно напрямую указать navData. Например:
import EngeeNavigation.Functions: semread
navData = semread("semalmanac_2022-1-18.al3")
Чтение навигационных данных из файла альманаха YUMA
Функция gnssconstellation может обрабатывать данные GPS и QZSS, считанные из файла альманаха YUMA. Табличные данные, возвращаемые функцией yumaread, содержат параметры каждого спутника из файла альманаха, соответствующие указанной дате. Дополнительную информацию о содержимом табличных данных см. в описании аргумента data функции yumaread.
Поскольку функция yumaread возвращает табличные данные, в качестве ее выходного аргумента можно напрямую указать navData. Например:
import EngeeNavigation.Functions: yumaread
navData = yumaread("yumaalmanac_2022-4-20.alm")
| Типы данных |
|
#
GNSSFileType —
тип файла GNSS
"RINEX" | "SEM" | "YUMA"
Details
Тип файла GNSS, заданный одним из следующих значений:
-
"RINEX"— навигационные данные задаются в виде табличных данных, полученных из структуры, возвращаемой функциейrinexread; -
"SEM"— навигационные данные задаются в виде табличных данных, возвращаемых функциейsemread; -
"YUMA"— навигационные данные задаются в виде табличных данных, возвращаемых функциейyumaread.
| Типы данных |
|
Выходные аргументы
#
satPos —
положения спутников
матрица
Details
Положения спутников в метрах в геоцентрической системе координат, связанной с Землей, возвращаемые в виде матрицы размером на , где — количество спутников в группировке.
| Типы данных |
|
#
satVel —
скорости спутников
матрица
Details
Скорости спутников в м/с в геоцентрической системе координат, связанной с Землей, возвращаемые в виде матрицы размером на , где — количество спутников в группировке.
| Типы данных |
|
#
satIDs —
идентификационные номера спутников
вектор
Details
Идентификационные номера спутников, возвращаемые в виде вектора-столбца длины , где — количество спутников в группировке.
| Типы данных |
|
Дополнительно
Орбитальные параметры
Details
Орбитальные параметры определяют начальные положения и скорости спутника и позволяют рассчитывать его прошлые и будущие положения и скорости на основе этих начальных данных. Эти параметры обеспечивают точность расчетов в определенном временном интервале относительно момента времени, к которому относятся эфемериды (или начального момента времени для спутников, не фиксирующих время эфемерид). Для получения точных результатов расчета положения и скорости убедитесь, что вы используете корректные орбитальные параметры для соответствующего момента времени запроса.
Ниже приведены временные интервалы, в течение которых орбитальные параметры пригодны для расчета положения и скорости:
-
GPS, Galileo, Бэйдоу, NavIC, QZSS:
-
ГЛОНАСС, SBAS:
где — время эфемерид или начальный момент времени для спутников, не фиксирующих время эфемерид.
Для спутников GPS, Galileo, Бэйдоу, NavIC и QZSS в таблице A.2-2 стандарта GPS SPS Performance Standard определены положения и скорости спутников в геоцентрической системе координат, связанной с Землей. Расчет положений выполняется с использованием уравнений из таблицы 30-II спецификации интерфейса IS-GPS-200M. Расчет скоростей производится по уравнениям 8.21–8.27 из [1].
Для спутников ГЛОНАСС и SBAS уравнения для расчета положений и скоростей в геоцентрической системе координат, связанной с Землей, определены в разделе A.3.1.2 GLONASS ICD Edition 5.1 2008.
Литература
-
Groves, Paul D. Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems. Boston: Artech House, 2013.
-
International GNSS Service (IGS), Daily 30-Second GPS Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021. Accessed Jun. 25, 2021. https://dx.doi.org/10.5067/GNSS/gnss_daily_n_001.
-
United States Coast Guard. GPS Almanacs, NANUs, and OPS Advisories Archives. US Coast Guard Navigation Center. Accessed May 6, 2022. https://www.navcen.uscg.gov/archives.
-
QZSS almanac archives, Quasi-Zenith Satellite System(QZSS). QZSS (Quasi-Zenith Satellite System) - Cabinet Office (Japan) Accessed September 20, 2022. https://sys.qzss.go.jp/dod/en/archives/pnt.html.
-
European GNSS Service Centre (GSC). Galileo Open Service Signal-In-Space Interface Control Document. Accessed March 13, 2023. https://www.gsc-europa.eu/sites/default/files/sites/all/files/Galileo_OS_SIS_ICD_v2.1.pdf.