Engee documentation

gnssconstellation

The position of the satellites at a given time.

Library

EngeeNavigation

Description

Function gnssconstellation returns the coordinates and velocity vectors of the satellites for the specified time points in the geocentric coordinate system associated with the Earth.

Syntax

Function call

  • satPos,satVel,satIDs = gnssconstellation(t) — returns coordinates, velocity vectors, and satellite IDs at a given time t. Meaning t it should be set in the UTC time zone: the function does not convert the date and time from another time zone and interprets the entered value as UTC time.

  • satPos,satVel,satIDs = gnssconstellation(t,navData) — returns coordinates, velocity vectors, and satellite IDs at a given time t using the RINEX navigation message data contained in the argument navData.

  • satPos,satVel,satIDs = gnssconstellation(t,navData,GNSSFileType) — additionally specifies the type of GNSS file from which the navigation message data was received. This syntax allows you to process navigation data obtained from files in the RINEX, SEM (almanac) or YUMA (almanac) formats.

Function gnssconstellation determines the position and speed of the satellites by extrapolating the current orbital parameters (taken from the RINEX file, SEM or YUMA almanacs) at the time of the request. To get more accurate data on the position and speed of the satellites, make sure that you are using a navigation file that is relevant to the requested time. For more information about the validity period of the orbital parameters, see Orbital parameters.

Arguments

Input arguments

# t is the current time for satellite simulation

+ DateTime array

Details

The current time for satellite simulation, set as an array DateTime.

The default time zone for the array DateTime it is UTC.

The starting point of the GPS time is January 6, 1980, 00:00 (UTC).

Типы данных

DateTime

# NavData — navigation data

+ tabular data

Details

Navigation data set as DataFrame.

  • For the RINEX file, the tabular data can be obtained from the structure returned by the function rinexread.

  • For the SEM almanac file, you can use the tabular data returned by the function semread.

  • For the YUMA almanac file, you can use the tabular data returned by the function yumaread.

The reading of navigation data from the RINEX file

Function gnssconstellation It can process GPS or Galileo data read from a RINEX file. The contents of the structure returned by the function rinexread, depends on the type of satellite system described in the RINEX file. For more information about the contents of the structure, see the description of the argument. data functions rinexread.

To read the GPS navigation message data from the RINEX file, extract the field GPS from the returned structure. For example:

import EngeeNavigation.Functions: rinexread

rinexData = rinexread("GODS00USA_R_20211750000_01D_GN.rnx")
navData = rinexData.GPS

To read the Galileo navigation message data from the RINEX file, extract the field Galileo from the returned structure. For example:

rinexData = rinexread("GODS00USA_R_20211750000_01D_EN.rnx")
navData = rinexData.Galileo

To read the GLONASS navigation message data from the RINEX file, extract the field GLONASS from the returned structure. For example:

rinexData = rinexread("GODS00USA_R_20211750000_01D_RN.rnx")
navData = rinexData.GLONASS

To read the data of the Beidou navigation message from the RINEX file, extract the field BeiDou from the returned structure. For example:

rinexData = rinexread("GODS00USA_R_20211750000_01D_CN.rnx")
navData = rinexData.BeiDou

To read the NavIC/IRNSS navigation message data from the RINEX file, extract the field NavIC from the returned structure. For example:

rinexData = rinexread("ARHT00ATA_R_20211750000_01D_IN.rnx")
navData = rinexData.NavIC

To read the QZSS navigation message data from the RINEX file, extract the field QZSS from the returned structure. For example:

rinexData = rinexread("ARHT00ATA_R_20211750000_01D_JN.rnx")
navData = rinexData.QZSS

To read the SBAS navigation message data from the RINEX file, extract the field SBAS from the returned structure. For example:

rinexData = rinexread("GOP600CZE_R_20211750000_01D_SN.rnx")
navData = rinexData.SBAS
When reading Galileo data in RINEX format, the week number is linked to the GPS week. GPS week begins at midnight from January 5 to January 6, 1980.

The reading of navigation data from the SEM almanac file

Function gnssconstellation It can process GPS data read from the SEM almanac file. Tabular data returned by the function semread, contain the parameters of each satellite from the almanac file corresponding to the specified date. For more information about the contents of the tabular data, see the description of the argument. data functions semread.

Because the function semread returns tabular data, which can be directly specified as its output argument. navData. For example:

import EngeeNavigation.Functions: semread

navData = semread("semalmanac_2022-1-18.al3")

The reading of navigation data from the YUMA almanac file

Function gnssconstellation It can process GPS and QZSS data read from the YUMA almanac file. Tabular data returned by the function yumaread, contain the parameters of each satellite from the almanac file corresponding to the specified date. For more information about the contents of the tabular data, see the description of the argument. data functions yumaread.

Because the function yumaread returns tabular data, which can be directly specified as its output argument. navData. For example:

import EngeeNavigation.Functions: yumaread

navData = yumaread("yumaalmanac_2022-4-20.alm")
Типы данных

DataFrame

# GNSSFileType — the type of GNSS + file "RINEX" | "SEM" | "YUMA"

Details

The GNSS file type specified by one of the following values:

  • "RINEX" — navigation data is set as tabular data obtained from the structure returned by the function rinexread;

  • "SEM" — navigation data is set as tabular data returned by the function semread;

  • "YUMA" — navigation data is set as tabular data returned by the function yumaread.

Типы данных

String

Output arguments

# satPos — satellite positions

+ the matrix

Details

Satellite positions in meters in the geocentric coordinate system associated with the Earth, returned as a matrix of the size on , where — the number of satellites in the grouping.

Типы данных

Float64

# satVel — satellite speeds

+ the matrix

Details

Satellite velocities in m/s in the geocentric coordinate system associated with the Earth, returned as a matrix of the size on , where — the number of satellites in the grouping.

Типы данных

Float64

# satIDs — satellite identification numbers

+ vector

Details

Satellite identification numbers returned as a column vector of length , where — the number of satellites in the grouping.

Типы данных

Int64

Additional Info

Orbital parameters

Details

The orbital parameters determine the initial positions and velocities of the satellite and allow you to calculate its past and future positions and velocities based on these initial data. These parameters ensure the accuracy of calculations in a certain time interval relative to the time point to which the ephemeris relate (or the initial time point for satellites that do not record the time of the ephemeris). To obtain accurate position and velocity calculation results, make sure that you use the correct orbital parameters for the appropriate time in the request.

The time intervals during which the orbital parameters are suitable for calculating position and velocity are shown below.:

  • GPS, Galileo, Beidou, NavIC, QZSS:

    чч
  • GLONASS, SBAS:

    минмин

where — ephemeris time or the starting point of time for satellites that do not record ephemeris time.

For GPS, Galileo, Beidou, NavIC, and QZSS satellites, see Table A.2-2 standards GPS SPS Performance Standard defines the positions and velocities of satellites in a geocentric coordinate system associated with the Earth. The positions are calculated using the equations in Table 30-II of the interface specification. IS-GPS-200M. The velocities are calculated according to equations 8.21–8.27 from [1].

For GLONASS and SBAS satellites, the equations for calculating positions and velocities in the geocentric coordinate system associated with the Earth are defined in section A.3.1.2 GLONASS ICD Edition 5.1 2008.

Literature

  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.