Документация Engee

gnssconstellation

Положение спутников в заданный момент времени.

Библиотека

EngeeNavigation

Описание

Функция gnssconstellation возвращает координаты и векторы скорости спутников для заданных моментов времени в геоцентрической системе координат, связанной с Землей.

Синтаксис

Вызов функции

  • satPos,satVel,satIDs = gnssconstellation() — возвращает координаты satPos, векторы скорости satVel и идентификаторы satIDs спутников на текущий момент времени в часовом поясе UTC.

  • satPos,satVel,satIDs = gnssconstellation(t) — возвращает координаты, векторы скорости и идентификаторы спутников на момент времени t. Значение t следует задавать в часовом поясе UTC: функция не преобразует дату и время из другого часового пояса и интерпретирует введенное значение как время UTC.

  • satPos,satVel,satIDs = gnssconstellation(t,navData) — возвращает координаты, векторы скорости и идентификаторы спутников на момент времени t, используя данные навигационного сообщения RINEX, содержащиеся в аргументе navData.

  • satPos,satVel,satIDs = gnssconstellation(t,navData,GNSSFileType) — дополнительно задает тип файла GNSS, из которого были получены данные навигационного сообщения. Этот синтаксис позволяет обрабатывать навигационные данные, полученные из файлов форматов RINEX, SEM (альманах) или YUMA (альманах).

Функция gnssconstellation определяет положение и скорость спутников путем экстраполяции текущих орбитальных параметров (взятых из файла RINEX, альманахов SEM или YUMA) на момент запроса. Чтобы получить более точные данные о положении и скорости спутников, убедитесь, что вы используете навигационный файл, актуальный для запрашиваемого момента времени. Дополнительную информацию о сроке действия орбитальных параметров см. в разделе Орбитальные параметры.

Аргументы

Входные аргументы

# t — текущее время для моделирования спутника
массив DateTime

Details

Текущее время для моделирования спутника, заданное как массив DateTime.

Часовым поясом по умолчанию для массива DateTime является UTC.

Начальный момент отсчета времени GPS — 6 января 1980 года, 00:00 (UTC).

Типы данных

DateTime

# navData — навигационные данные
табличные данные

Details

Навигационные данные, заданные как DataFrame.

  • Для файла RINEX табличные данные можно получить из структуры, возвращаемой функцией rinexread.

  • Для файла альманаха SEM можно использовать табличные данные, возвращаемые функцией semread.

  • Для файла альманаха YUMA можно использовать табличные данные, возвращаемые функцией yumaread.

Чтение навигационных данных из файла 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")
Типы данных

DataFrame

# GNSSFileType — тип файла GNSS
"RINEX" | "SEM" | "YUMA"

Details

Тип файла GNSS, заданный одним из следующих значений:

  • "RINEX" — навигационные данные задаются в виде табличных данных, полученных из структуры, возвращаемой функцией rinexread;

  • "SEM" — навигационные данные задаются в виде табличных данных, возвращаемых функцией semread;

  • "YUMA" — навигационные данные задаются в виде табличных данных, возвращаемых функцией yumaread.

Типы данных

String

Выходные аргументы

# satPos — положения спутников
матрица

Details

Положения спутников в метрах в геоцентрической системе координат, связанной с Землей, возвращаемые в виде матрицы размером на , где — количество спутников в группировке.

Типы данных

Float64

# satVel — скорости спутников
матрица

Details

Скорости спутников в м/с в геоцентрической системе координат, связанной с Землей, возвращаемые в виде матрицы размером на , где — количество спутников в группировке.

Типы данных

Float64

# satIDs — идентификационные номера спутников
вектор

Details

Идентификационные номера спутников, возвращаемые в виде вектора-столбца длины , где — количество спутников в группировке.

Типы данных

Int64

Дополнительно

Орбитальные параметры

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.

Литература

  1. Groves, Paul D. Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems. Boston: Artech House, 2013.

  2. 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.

  3. 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.

  4. 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.

  5. 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.