Main Content

rinexread

Read data from RINEX file

Since R2022a

Description

data = rinexread(filename) reads data from the RINEX version 3 file filename and returns a structure, data. The content of data depends on the RINEX file type and the satellite system in the file.

example

[___,header] = rinexread(filename) gets the header information from the specified RINEX version 3 file filename, and returns it as a structure, header. The contents of header depend on the RINEX file type and the satellite system in the file.

example

Examples

collapse all

Read navigation data from a RINEX file that contains GPS navigation message data.

filename = "GODS00USA_R_20211750000_01D_GN.rnx"; 
data = rinexread(filename)
data = struct with fields:
    GPS: [178×32 timetable]

View the GPS data read from the RINEX file.

data.GPS(1:4,:)
ans=4×32 timetable
            Time            SatelliteID    SVClockBias    SVClockDrift    SVClockDriftRate    IODE      Crs       Delta_n        M0          Cuc        Eccentricity        Cus        sqrtA        Toe            Cic        OMEGA0         Cis          i0        Crc       omega       OMEGA_DOT        IDOT       L2ChannelCodes    GPSWeek    L2PDataFlag    SVAccuracy    SVHealth        TGD        IODC    TransmissionTime    FitInterval    BRDCOrbit7Spare3    BRDCOrbit7Spare4
    ____________________    ___________    ___________    ____________    ________________    ____    _______    __________    ______    ___________    ____________    ___________    ______    __________    ___________    _______    ___________    _______    ______    ________    ___________    __________    ______________    _______    ___________    __________    ________    ___________    ____    ________________    ___________    ________________    ________________

    24-Jun-2021 01:59:44        27         -0.00015208    -6.1391e-12            0             15      72.312    4.3363e-09    2.0809     3.5968e-06      0.009451      -1.4156e-07    5153.7    3.5278e+05    -1.6764e-07     1.2866    -1.8626e-08    0.97551    389.44     0.63488    -8.3371e-09    1.8715e-10          1            2163           0             2            0         1.8626e-09     15        3.5214e+05            4               NaN                 NaN       
    24-Jun-2021 01:59:44        32          1.7294e-05    -1.5916e-12            0              4      13.344     5.122e-09    2.8368     6.4075e-07     0.0050207        5.506e-06    5153.7    3.5278e+05    -4.4703e-08    -1.8617     -9.872e-08    0.95692    270.06     -2.3609    -8.0468e-09    2.6001e-10          1            2163           0             2            0         4.6566e-10      4        3.4779e+05            4               NaN                 NaN       
    24-Jun-2021 02:00:00         5         -4.5857e-05    -1.1369e-12            0             85     -72.969    4.4023e-09    2.5741    -3.7141e-06     0.0061384       1.2752e-05    5153.9     3.528e+05    -4.2841e-08    -2.9385    -6.5193e-08    0.95703    132.41     0.91319    -7.6064e-09    6.7574e-10          1            2163           0             2            0        -1.1176e-08     85        3.4566e+05            4               NaN                 NaN       
    24-Jun-2021 02:00:00         8         -2.6249e-05    -1.4779e-12            0            118      68.562     4.488e-09    2.1771     3.4925e-06      0.006354      -3.8743e-07    5153.6     3.528e+05    -2.9802e-08     1.2691     1.1362e-07    0.96693    390.12    0.060807    -8.4093e-09    1.4572e-10          1            2163           0             2            0         5.1223e-09    118        3.4944e+05            4               NaN                 NaN       

Read mixed observation data from a RINEX file that contains GPS, GLONASS, Galileo, and BeiDou observation message data.

filename = "GODS00USA_R_20211750000_01H_30S_MO.rnx";
data = rinexread(filename)
data = struct with fields:
     BeiDou: [1303×45 timetable]
    Galileo: [859×38 timetable]
    GLONASS: [1102×38 timetable]
        GPS: [1245×45 timetable]

View the GPS data read from the RINEX file.

data.GPS(1:4,:)
ans=4×45 timetable
       Time        SatelliteID    EpochFlag    ReceiverClockOffset       C1C        C1C_SSI       L1C        L1C_LLI    L1C_SSI     S1C     S1C_SSI       C1W        C1W_SSI       L1W        L1W_LLI    L1W_SSI     S1W     S1W_SSI       C2X        C2X_SSI       L2X        L2X_LLI    L2X_SSI    S2X     S2X_SSI       C2W        C2W_SSI       L2W        L2W_LLI    L2W_SSI     S2W     S2W_SSI       C5X        C5X_SSI       L5X        L5X_LLI    L5X_SSI    S5X    S5X_SSI    C1X    C1X_SSI    L1X    L1X_LLI    L1X_SSI    S1X    S1X_SSI
    ___________    ___________    _________    ___________________    __________    _______    __________    _______    _______    _____    _______    __________    _______    __________    _______    _______    _____    _______    __________    _______    __________    _______    _______    ____    _______    __________    _______    __________    _______    _______    _____    _______    __________    _______    __________    _______    _______    ___    _______    ___    _______    ___    _______    _______    ___    _______

    24-Jun-2021         5             0            -0.00047787         2.266e+07      NaN      1.1908e+08      NaN         7          45      NaN       2.266e+07      NaN      1.1908e+08      NaN         7          43      NaN       2.266e+07      NaN      9.2788e+07      NaN          7      42.5      NaN       2.266e+07      NaN      9.2788e+07      NaN         7          43      NaN             NaN      NaN             NaN      NaN        NaN      NaN      NaN      NaN      NaN      NaN      NaN        NaN      NaN      NaN  
    24-Jun-2021        10             0            -0.00047787        2.4266e+07      NaN      1.2752e+08      NaN         6       37.25      NaN      2.4266e+07      NaN      1.2752e+08      NaN         4       25.25      NaN      2.4266e+07      NaN      9.9367e+07      NaN          7      42.5      NaN      2.4266e+07      NaN      9.9367e+07      NaN         4       25.25      NaN      2.4266e+07      NaN      9.5226e+07      NaN          7       47      NaN      NaN      NaN      NaN      NaN        NaN      NaN      NaN  
    24-Jun-2021        13             0            -0.00047787        2.1788e+07      NaN       1.145e+08      NaN         7       47.25      NaN      2.1788e+07      NaN       1.145e+08      NaN         6       36.25      NaN             NaN      NaN             NaN      NaN        NaN       NaN      NaN      2.1788e+07      NaN      8.9217e+07      NaN         6       36.25      NaN             NaN      NaN             NaN      NaN        NaN      NaN      NaN      NaN      NaN      NaN      NaN        NaN      NaN      NaN  
    24-Jun-2021        15             0            -0.00047787             2e+07      NaN       1.051e+08      NaN         8          50      NaN           2e+07      NaN       1.051e+08      NaN         7          46      NaN           2e+07      NaN      8.1898e+07      NaN          8      51.5      NaN           2e+07      NaN      8.1898e+07      NaN         7          46      NaN             NaN      NaN             NaN      NaN        NaN      NaN      NaN      NaN      NaN      NaN      NaN        NaN      NaN      NaN  

Read observation and navigation data from the RINEX files.

[obsdata,obshdr] = rinexread("GODS00USA_R_20211750000_01H_30S_MO.rnx");
[navmsg,navhdr] = rinexread("GODS00USA_R_20211750000_01D_GN.rnx");

Get GNSS measurements from the observation and navigation data.

meas = gnssmeasurements(obsdata.GPS,navmsg.GPS);

Estimate the receiver position from the GNSS measurements and display the receiver position for the first time stamp of the RINEX file.

lla = receiverposition(meas);
lla(1,:)
ans = 1×3

   39.0205  -76.8273   36.6238

Input Arguments

collapse all

Name of the RINEX version 3 file to read data from, specified as a string scalar or character vector.

Example: "GODS00USA_R_20211750000_01D_GN.rnx"

Data Types: string | char

Output Arguments

collapse all

Satellite system data from the RINEX version 3 file, returned as a structure. The structure has a timetable containing different fields depending on the type of RINEX file and the header entries in the file.

FieldData TypeDescription
TimedatetimeGPS clock time
SatelliteIDdoubleSatellite system (G) number (PRN)
SVClockBiasdoubleSV clock bias in seconds
SVClockDriftdoubleSV clock drift in seconds per second
SVClockDriftRatedoubleSV clock drift rate in seconds per second squared
IODEdoubleIssue number of the satellite ephemeris data set, Issue of Data, Ephemeris (IODE)
CrsdoubleAmplitude of the sine harmonic correction term to the orbit radius, in meters
Delta_ndoubleMean motion difference from the computed value at reference time, in radians per second.
M0doubleMean anomaly at the reference time, in radians
CucdoubleAmplitude of the cosine harmonic correction term to the argument of latitude, in radians
EccentricitydoubleEccentricity
CusdoubleAmplitude of the sine harmonic correction term to the argument of latitude, in radians
sqrtAdoubleSquare root of the semimajor axis (sqrt(m))
ToedoubleTime of ephemeris (seconds of respective satellite week)
CicdoubleAmplitude of the cosine harmonic correction term to the angle of inclination, in radians
OMEGA0doubleLongitude of ascending node of orbit plane at weekly epoch, in radians.
CisdoubleAmplitude of the sine harmonic correction term to the angle of inclination, in radians.
i0doubleInclination angle at reference time, in radians
CrcdoubleAmplitude of the cosine harmonic correction term to the orbit radius, in meters
omegadoubleArgument of perigee, in radians
OMEGA_DOT doubleReference rate of right ascension, in radians per second
IDOT doubleRate of inclination angle, in radians per second
L2ChannelCodes doubleCodes on L2 channel
GPSWeek doubleGPS week number, with time of ephemeris. This is a continuous number, not mod(1024)
L2PDataFlag doubleL2P data flag
SVAccuracy doubleSV accuracy in meters
SVHealth doubleSV health indicated by bits 17-22 (See GPS ICD Section 20.3.3.3.1.4)
TGD doubleTiming group delay in seconds
IODC doubleIssue number of the satellite clock data set, Issue of Data, Clock (IODC). (See GPS ICD Section 20.3.3.3.1.5)
TransmissionTime doubleTransmission time of the message
FitInterval doubleFit interval in hours. Bit 17 w 10 sf 2 + IODC and Table 20-XII of the GPS ICD.
BRDCOrbit7Spare3 doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare4 doubleSpare entry. May be used in a future version.

Data Types: struct

FieldData TypeDescription
TimedatetimeGalileo (GAL) clock time
SatelliteIDdoubleSatellite system (E) number
SVClockBiasdoubleSV clock bias in seconds
SVClockDriftdoubleSV clock drift in seconds per second
SVClockDriftRatedoubleSV clock drift rate in seconds per second squared
IODnavdoubleIssue of data of the navigation batch
CrsdoubleAmplitude of the sine harmonic correction term to the orbit radius, in meters
Delta_ndoubleMean motion difference from the computed value at reference time, in radians per second.
M0doubleMean anomaly at the reference time, in radians
CucdoubleAmplitude of the cosine harmonic correction term to the argument of latitude, in radians
EccentricitydoubleEccentricity
CusdoubleAmplitude of the sine harmonic correction term to the argument of latitude, in radians
sqrtAdoubleSquare root of the semimajor axis (sqrt(m))
ToedoubleTime of ephemeris (seconds of respective satellite week)
CicdoubleAmplitude of the cosine harmonic correction term to the angle of inclination, in radians
OMEGA0doubleLongitude of ascending node of orbit plane at weekly epoch, in radians.
CisdoubleAmplitude of the sine harmonic correction term to the angle of inclination, in radians.
i0doubleInclination angle at reference time, in radians
CrcdoubleAmplitude of the cosine harmonic correction term to the orbit radius, in meters
omegadoubleArgument of perigee, in radians
OMEGA_DOT doubleReference rate of right ascension, in radians per second
IDOT doubleRate of inclination angle, in radians per second
DataSources double

Data sources

  • Bit 0 set: I/NAV E1-B

  • Bit 1 set: F/NAV E5a-I

  • Bit 2 set: I/NAV E5b-I

  • Bits 0 and 2 : Both can be set if the navigation messages were merged, however, bits 0-2 cannot all be set, as the I/NAV and F/NAV messages contain different information.

  • Bit 3 reserved for Galileo internal use

  • Bit 4 reserved for Galileo internal use

  • Bit 8 set: af0-af2, Toc, SISA are for E5a,E1

  • Bit 9 set: af0-af2, Toc, SISA are for E5b,E1

  • Bits 8-9 : exclusive (only one bit can be set)

GALWeek doubleGAL week number, with Toe. Continuous number, not mod(1024).
BRDCOrbit5Spare4 doubleSpare entry. May be used in a future version.
SISAccuracydoubleSignal in space accuracy in meters (-1.0 – no accuracy prediction available (NAPA) or unknown)
SVHealth double

SV health (See Galileo ICD Section 5.1.9.3)

  • Bit 0: E1B DVS

  • Bits 1-2: E1B HS

  • Bit 3: E5a DVS

  • Bits 4-5 :E5a HS

  • Bit 6: E5b DVS

  • Bits 7-8: E5b HS

BGDE5aE1 doubleBGD E5a/E1 in seconds
BGDE5bE1 doubleBGD E5b/E1 in seconds
TransmissionTime doubleTransmission time of the message
BRDCOrbit7Spare2 doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare3 doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare4 doubleSpare entry. May be used in a future version.

Data Types: struct

FieldData TypeDescription
TimedatetimeUTC clock time
SatelliteIDdoubleSatellite system (R) number
SVClockBiasdoubleSV clock bias in seconds
SVFrequencyBiasdoubleSV relative frequency bias in hertz
MessageFrameTimedoubleMessage frame time in seconds of the UTC week
PositionXdoubleSatellite position X in kilometers
VelocityXdoubleSatellite velocity X dot in kilometers per second
AccelerationXdoubleSatellite acceleration X in kilometers per second squared
HealthdoubleSatellite health (0 = healthy, 1 = unhealthy)
PositionYdoubleSatellite position Y in kilometers
VelocityYdoubleSatellite velocity Y dot in kilometers per second
AccelerationYdoubleSatellite acceleration Y in kilometers per second squared
FrequencyNumberdoubleFrequency number (ICD 5.1)
PositionZdoubleSatellite position Z in kilometers
VelocityZdoubleSatellite velocity Z dot in kilometers per second
AccelerationZdoubleSatellite acceleration Z in kilometers per second squared
AgeOperationInfodoubleAge of operation information in days
StatusFlagsdouble

Status flags, 9-bit binary number:

  • M ; bit 7-8, GLO type indicator (00=GLO, 01=GLO-M/K)

  • P4 ; bit 6, GLO-M/K only, 1=data updated, 0=data not updated

  • P3 ; bit 5, num of satellites in current frame almanac (0 = 4 sats, 1 = 5 sats)

  • P2 ; bit 4, indicate even (0) or odd (1) of time interval

  • P1 ; bit 2-3, update and validity interval (00 = 0 min, 01 = 30 min, 10=45 min, 11=60 min)

  • P ; bit 0-1, GLO-M/K only, time offset parameters tc, tGPS source (00 =ground, 01 = tc ground, tGPS onboard, 10 = tc on-board, tGPS ground, 11 = on-board)

GroupDelaydoubleL1/L2 group delay difference in seconds
URAIdoubleRaw accuracy index
HealthFlagsdouble

Health flags, 3-bit binary number

  • l(3) ; bit 2, GLO-M/K only, health bit of string 3

  • AC ; bit 1, 1 = almanac health reported in ephemerides record, 0 = not reported

  • C ; bit 0, almanac health bit (1 = healthy, 0 = not healthy)

Data Types: struct

FieldData TypeDescription
TimedatetimeBeiDou (BDT) time. This is a combination of entries from the record (Time of clock year, month, day, hour, minute, second).
SatelliteIDdoubleSatellite system (C) number
SVClockBiasdoubleSV clock bias in seconds
SVClockDriftdoubleSV clock drift in seconds per second
SVClockDriftRatedoubleSV clock drift rate in seconds per second squared
AODEdoubleAge of satellite ephemeris data, Age of Data, Ephemeris (AODE). See BeiDou ICD Table Section 5.2.4.11 Table 5-8) and field range is: 0-31.
CrsdoubleAmplitude of the sine harmonic correction term to the orbit radius, in meters
Delta_ndoubleMean motion difference from the computed value at reference time, in radians per second.
M0doubleMean anomaly at the reference time, in radians
CucdoubleAmplitude of the cosine harmonic correction term to the argument of latitude, in radians
EccentricitydoubleEccentricity
CusdoubleAmplitude of the sine harmonic correction term to the argument of latitude, in radians
sqrtAdoubleSquare root of the semimajor axis (sqrt(m))
ToedoubleTime of ephemeris (seconds of respective satellite week)
CicdoubleAmplitude of the cosine harmonic correction term to the angle of inclination, in radians
OMEGA0doubleLongitude of ascending node of orbit plane at weekly epoch, in radians.
CisdoubleAmplitude of the sine harmonic correction term to the angle of inclination, in radians.
i0doubleInclination angle at reference time, in radians
CrcdoubleAmplitude of the cosine harmonic correction term to the orbit radius, in meters
omegadoubleArgument of perigee, in radians
OMEGA_DOT doubleReference rate of right ascension, in radians per second
IDOT doubleRate of inclination angle, in radians per second
BRDCOrbit5Spare2doubleSpare entry. May be used in a future version.
BDTWeekdoubleBDT week number
BRDCOrbit5Spare4doubleSpare entry. May be used in a future version.
SVAccuracydoubleSV accuracy in meters (See BDS ICD Section 5.2.4)
SatH1doubleSatH1
TGD1doubleTGD1 B1/B3 in seconds
TGD2doubleTGD2 B2/B3 in seconds
TransmissionTime doubleTransmission time of the message
AODCdoubleAge of satellite clock data, Age of Data, Clock (AODC). See BeiDou ICD Table Section 5.2.4.9 Table 5-6) and field range is: 0-31.
BRDCOrbit7Spare3doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare4doubleSpare entry. May be used in a future version.

Data Types: struct

FieldData TypeDescription
Timedatetime

NavIC/IRNSS clock time (same as GPS time)

SatelliteIDdoubleSatellite system (I) number (PRN)
SVClockBiasdoubleSV clock bias in seconds
SVClockDriftdoubleSV clock drift in seconds per second
SVClockDriftRatedoubleSV clock drift rate in seconds per second squared
IODECdoubleIssue number of the satellite ephemeris and clock data sets, Issue of Data, Ephemeris and Clock (IODEC)
CrsdoubleAmplitude of the sine harmonic correction term to the orbit radius, in meters
Delta_ndoubleMean motion difference from the computed value at reference time, in radians per second.
M0doubleMean anomaly at the reference time, in radians
CucdoubleAmplitude of the cosine harmonic correction term to the argument of latitude, in radians
EccentricitydoubleEccentricity
CusdoubleAmplitude of the sine harmonic correction term to the argument of latitude, in radians
sqrtAdoubleSquare root of the semimajor axis (sqrt(m))
ToedoubleTime of ephemeris (seconds of respective satellite week)
CicdoubleAmplitude of the cosine harmonic correction term to the angle of inclination, in radians
OMEGA0doubleLongitude of ascending node of orbit plane at weekly epoch, in radians.
CisdoubleAmplitude of the sine harmonic correction term to the angle of inclination, in radians.
i0doubleInclination angle at reference time, in radians
CrcdoubleAmplitude of the cosine harmonic correction term to the orbit radius, in meters
omegadoubleArgument of perigee, in radians
OMEGA_DOT doubleReference rate of right ascension, in radians per second
IDOT doubleRate of inclination angle, in radians per second
BRDCOrbit5Spare2doubleSpare entry. May be used in a future version.
IRNWeekdoubleIRN week number, with Toe. Continuous number, not mod(1024), counted from 1980 (same as GPS)
BRDCOrbit5Spare4doubleSpare entry. May be used in a future version.
UserRangeAccuracydoubleUser range accuracy in meters. See NavIC/IRNSS ICD Section 6.2.1.4
HealthFlagsdoubleHealth (Sub frame 1, bits 155(most significant) and 156(least significant)), where 0 = L5 and S healthy, 1 = L5 healthy and S unhealthy, 2= L5 unhealthy and S healthy, 3= both L5 and S unhealthy
TGDdoubleTiming group delay in seconds
BRDCOrbit6Spare4doubleSpare entry. May be used in a future version.
TransmissionTime doubleTransmission time of the message
BRDCOrbit7Spare2doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare3doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare4doubleSpare entry. May be used in a future version.

Data Types: struct

FieldData TypeDescription
Timedatetime QZSS clock time
SatelliteIDdoubleSatellite system (J) Satellite PRN-192
SVClockBiasdoubleSV clock bias in seconds
SVClockDriftdoubleSV clock drift in seconds per second
SVClockDriftRatedoubleSV clock drift rate in seconds per second squared
IODEdoubleIssue number of the satellite ephemeris data set, Issue of Data, Ephemeris (IODE)
CrsdoubleAmplitude of the sine harmonic correction term to the orbit radius, in meters
Delta_ndoubleMean motion difference from the computed value at reference time, in radians per second.
M0doubleMean anomaly at the reference time, in radians
CucdoubleAmplitude of the cosine harmonic correction term to the argument of latitude, in radians
EccentricitydoubleEccentricity
CusdoubleAmplitude of the sine harmonic correction term to the argument of latitude, in radians
sqrtAdoubleSquare root of the semimajor axis (sqrt(m))
ToedoubleTime of ephemeris (seconds of respective satellite week)
CicdoubleAmplitude of the cosine harmonic correction term to the angle of inclination, in radians
OMEGA0doubleLongitude of ascending node of orbit plane at weekly epoch, in radians.
CisdoubleAmplitude of the sine harmonic correction term to the angle of inclination, in radians.
i0doubleInclination angle at reference time, in radians
CrcdoubleAmplitude of the cosine harmonic correction term to the orbit radius, in meters
omegadoubleArgument of perigee, in radians
OMEGA_DOT doubleReference rate of right ascension, in radians per second
IDOT doubleRate of inclination angle, in radians per second
L2ChannelCodesdoubleCodes on L2 channel (fixed to 2, see IS-QZSS-PNT 4.1.2.7)
GPSWeekdoubleGPS week number, with Toe. Continuous number, not mod(1024).
L2PDataFlagdoubleL2 P data flag set to 1 since QZSS does not track L2P
SVAccuracydoubleSV accuracy (m) (See IS-QZSS-PNT Section 5.4.3.1)
SVHealthdoubleSV health (bits 17-22 w 3 sf 1) (See IS-QZSS-PNT 5.4.1)
TGDdoubleTiming group delay (s) (The QZSS ICD specifies a do not use bit pattern “10000000”, this condition is represented by a blank field.)
IODCdoubleIssue number of the satellite clock data set, Issue of Data, Clock (IODC)
TransmissionTime doubleTransmission time of the message
FitIntervalFlagdoubleFit interval flag (0/1) (See IS-QZSS-PNT, 4.1.2.4(3) 0 – two hours), 1 – more than 2 hours.
BRDCOrbit7Spare3doubleSpare entry. May be used in a future version.
BRDCOrbit7Spare4doubleSpare entry. May be used in a future version.

Data Types: struct

FieldData TypeDescription
TimedatetimeSBAS clock time
SatelliteIDdoubleSatellite system (S) number
SVClockBiasdoubleSV clock bias in seconds
SVFrequencyBiasdoubleSV relative frequency bias in hertz
TransmissionTime doubleTransmission time of the message
PositionXdoubleSatellite position X in kilometers
VelocityXdoubleSatellite velocity X dot in kilometers per second
AccelerationXdoubleSatellite acceleration X in kilometers per second squared
HealthdoubleHealth: SBAS: See RINEX 3.05 Standard section 5.4.4 for: health, health availability and User Range Accuracy.
PositionYdoubleSatellite position Y in kilometers
VelocityYdoubleSatellite velocity Y dot in kilometers per second
AccelerationYdoubleSatellite acceleration Y in kilometers per second squared
AccuracyCodedoubleAccuracy code (URA, m)
PositionZdoubleSatellite position Z in kilometers
VelocityZdoubleSatellite velocity Z dot in kilometers per second
AccelerationZdoubleSatellite acceleration Z in kilometers per second squared
IODNdoubleIssue number of the satellite navigation data set, Issue of Data, Navigation (IODN). See reference RTCA DO-229, 8 first bits after Message Type if MT9

Data Types: struct

Mixed observation data may have multiple timetables in the output structure. Unlike the navigation messages, the most of the fields of the mixed observation files change depending on the observation types in the observation data. However, all observation data contains the same first fields.

Main Observation Data Fields

FieldData TypeDescription
TimedatetimeSatellite clock time.
SatelliteIDdoubleSatellite system number.
EpochFlagnonnegative integer

Epoch flag indicating the status of the satellite system.

  • 0 — OK.

  • 1 — Power failure between previous epoch and current epoch.

  • >1 — Special event. See RINEX Version 3.05 File Section 5.3.2 for more information.

ReceiverClockOffsetdoubleReceiver clock offset in seconds

The rest of the headers are observation codes comprised of three digits that represent type, band, and attribute. See Observation Type Descriptors for more information about the possible types, bands, and attributes.

Each descriptor code has corresponding field for signal strength indicator (SSI) and, if the observation type is phase (L), a field for loss-of-lock indicator (LLI). For example, type L, band 1, and attribute X has the field L1X and has two additional fields, L1X_SSI and L1X_LLI.

The SSI fields are ratios specified as an integer in the range [1, 9]. A ratio of 1 is considered unreliable, above 5 is considered good, and 9 is the maximum possible signal strength.

The LLI fields are three-bit codes that are specified as an integer in the range [0, 7]. A value of 0 indicates no loss of lock or unknown. The least significant bit indicates a lost lock between the previous and current observations, the second bit indicates half-cycle ambiguity or slip is possible, and the most significant bit indicates binary offset carrier (BOC) tracking of a multiplexed BOC (MBOC) modulated signal.

Data Types: struct

Data Types: struct

RINEX file contents, returned as a structure. The structure has different fields depending on the type of RINEX file and the header entries in the file.

If the specified RINEX file is a navigation message file, the fileinfo output is a structure with these fields:

FieldTypeDescription
FileVersiondoubleFormat Version
FileSatelliteSystemchar

  • 'G' — GPS

  • 'R' — GLONASS

  • 'S' — SBAS

  • 'E' — Galileo

  • 'C' — BeiDou

  • 'J' — QZSS

  • 'I' — IRNSS

  • 'M' — Mixed

FileTypecharFile type, specified as either 'N' for navigation message files and 'O' for observation data files.
PGMstringName of the program that created the file
RunBystringName of the agency that created the file
CreationDatestringDate and time of file creation
Comments (Optional)stringComment lines from file header
IonosphericCorrections (Optional)structure array

An array of structures with a number of elements equal to the number of IONOSPHERIC CORR header lines in the file. Each structure has the CorrectionType, Parameters, TimeMark, and SVID fields.

TimeMark and SVID are optional for all satellite systems except BeiDou.

Correction type:

  • GAL — Galileo ai0 to ai2

  • GPSA — GPS alpha0 to alpha3

  • GPSB — GPS beta0 to beta3

  • QZSA — QZS alpha0 to alpha3

  • QZSB — QZS beta0 to beta3

  • BDSA — BDS alpha0 to alpha3

  • BDSB — BDS beta0 to beta3

  • IRNA — NavIC/IRNSS alpha0 to alpha3

  • IRNB — NavIC/IRNSS beta0 to beta3

Parameters:

  • GAL — ai0, ai1, ai2, Blank

  • GPS — alpha0 to alpha3 or beta0 to beta3

  • QZS — alpha0 to alpha3 or beta0 to beta3

  • BDS — alpha0 to alpha3 or beta0 to beta3

  • IRN — alpha0 to alpha3 or beta0 to beta3

  • Time mark, Transmission Time (seconds of week) converted to hours of day and then to A—X. A is 00h—01h, B is 01h—02h, …, X is 23—24h satellite system time.

  • SV ID, identify which satellite provided the ionospheric parameters

TimeSystemCorrectionsstructure

An array of structures with a number of elements equal to the number of TIME SYSTEM CORR header lines in the file. Each structure has the CorrectionType, Parameters, ReferenceTime, ReferenceWeekNumber, SVID, and UTCID fields.

Correction type:

  • GPUT = GPS - UTC (a0, a1)

  • GLUT = GLO - UTC (a0 = -TauC, a1 = zero)

  • GAUT = GAL - UTC ( a0, a1)

  • BDUT = BDS - UTC (a0 = A0UTC, a1 = A1UTC )

  • QZUT = QZS - UTC (a0, a1)

  • IRUT = IRN - UTC (a0 = A0UTC, a1 = A1UTC )

  • SBUT = SBAS - UTC (a0, a1)

  • GLGP = GLO - GPS (a0 = -TauGPS, a1 = zero)

  • GAGP = GAL - GPS (a0 = A0G, a1 = A1G for GAL INAV/FNAV; a0 = –A0GGTO, a1 = –A1 GGTO for GPS CNAV)

  • QZGP = QZS - GPS (a0, a1)

  • IRGP = IRN - GPS (a0 = A0, a1 = A1 )

Parameters:

  • a0, a1 coefficients of linear polynomial Δt = a0 + a1 · (t - tref) for fractional part (excluding leap seconds) of time system difference (a0; sec, a1; sec/sec)

  • Reference time (T) for polynomial (Seconds into GPS/GAL/BDS/QZS/IRN/SBAS week)

  • Reference week number (W)

  • GPS/GAL/QZS/IRN/SBAS week aligned to GPS, continuous number from 6-Jan-1980

  • GLONASS T and W zero.

  • BDS week, continuous from: 1-Jan-2006

  • SV ID, System identifier and PRN/slot number ‘snn’ of the GNSS satellite broadcasting the time system difference or SBAS satellite broadcasting the MT12. Use EGNOS, WAAS, or MSAS for SBAS time differences from MT17.

  • UTC Identifier

  • 0 if unknown

  • 1 = UTC(NIST)

  • 2 = UTC(USNO)

  • 3 = UTC(SU)

  • 4 = UTC(BIPM)

  • 5 = UTC(Europe Lab)

  • 6 = UTC(CRL)

  • 7 = UTC(NTSC) (BDS)

  • >7 = not assigned yet.

LeapSecondParameters (Optional)structure

Leap second parameters in a structure with fields LeapSeconds, DeltaTimeLeapSeconds, WeekNumber, DayNumber, and TimeSystemID .

  • LeapSeconds — Current number of leap seconds.

  • DeltaTimeLeapSeconds — Future or past leap seconds. For example, it is future leap seconds if the week and day numbers are in the future.

  • WeekNumber — For GPS, GAL, QZS, and IRN, number of weeks since January 6, 1980. For BDS, it is number of weeks since January 1, 2006.

  • DayNumber — The day number is the GPS or BeiDou day before the leap second. For GPS, this number is in the range [1, 7]. For Beidou, this number is in the range [0, 6].

  • TimeSystemID — Only "GPS" and "BDT" are valid values. If blank the field defaults to "GPS".

Note that optional fields are not present in the structure unless specified in the RINEX file.

Data Types: struct

If the specified RINEX file is an observation data file, the output is a structure with these fields:

FieldTypeEntry
FileVersiondoubleFormat Version
FileSatelliteSystemchar

  • 'G' — GPS

  • 'R' — GLONASS

  • 'S' — SBAS

  • 'E' — Galileo

  • 'C' — BeiDou

  • 'J' — QZSS

  • 'I' — IRNSS

  • 'M' — Mixed

FileTypecharFile type, specified as either 'N' for navigation message files and 'O' for observation data files.
PGMstringName of the program that created the file
RunBystringName of the agency that created the file
CreationDatestringDate and time of file creation
Comments (Optional)stringComment lines from file header
MarkerNamestringName of antenna marker
MarkerNumber (Optional)stringNumber of antenna marker
MarkerType (Optional for GEODETIC and NON_GEODETIC marker types)stringType of marker
ObserverstringName of observer
AgencystringName of agency
ReceiverNumberstringReceiver number
ReceiverTypestringReceiver type
ReceiverVersionstringReceiver version
AntennaNumberstringAntenna number
AntennaTypestringAntenna type
ApproxPositiondoubleApproximate marker position in meters.
AntennaDeltaHENdoubleHeight of the antenna reference point (ARP) above marker, and horizontal eccentricity of ARP relative to marker (East/North) in meters.
AntennaDeltaXYZdoublePosition of antenna reference point for antenna on vehicle in meters.
AntennaPhaseCenter (Optional)structure array

A structure array with number of elements equal to the number of ANTENNA: PHASECENTER header lines in the file. Each structure has SatelliteSystem, ObservationCode, and PhaseCenterfields. Where:

SatelliteSystem — The specified satellite system.

ObservationCode — The observation code. See the Observation Type Descriptors section for more information.

PhaseCenter — The average phase center position with respect to the antenna reference point, in meters, North/East/Up for fixed station, XYZbody-fixed system for a vehicle.

AntennaBSightXYZdoubleDirection of the vertical antenna axis toward the GNSS satellites. If the antenna is on a vehicle, the direction is a unit vector in a body-fixed coordinate system. If the antenna is a tilted antenna on fixed station, the direction is a unit vector in East-North-Up (ENU) left-handed system.
AntennaZeroDirXYZ (Optional)doubleZero direction of the antenna. If the antenna is on a vehicle, the zero direction is unit vector is in a body-fixed coordinate system. If the tilted antenna is on a fixed station, the zero direction is a unit vector in East-North-Up (ENU) left-handed system.
CenterOfMassXYZdoubleCurrent center of mass of the vehicle in a body-fixed coordinate system, in meters.
ObservationTypesstructure array

A structure array with number of elements equal to the number of satellite systems in the file. Each structure has SatelliteSystem and Descriptors fields. Where:

SatelliteSystem — String specifying the satellite system.

Descriptors — String array of 3-element observation descriptors. The first element is the Type, the second is the Band, and the third is the Attribute. See the Observation Type Descriptors section for more information.

SignalStrengthUnit (Optional)stringUnit of the carrier to noise ratio observables SNN (if present) DBHZ: S/N given in dbHz.
Interval (Optional)doubleObservation interval in seconds.
FirstObsTime (Optional, unless RINEX file is a mixed GNSS file)datetime

Time of first observation record. Time systems are:

  • GPS — GPS time system

  • GLO — UTC time system

  • GAL — Galileo time system

  • QZS — QZSS time system

  • BDT — BDS time system

  • IRN — NavIC/IRNSS time system

HasReceiverClockOffset (Optional, unless, the epoch lines of the data section reports clock offsets)logicalEpoch, code, and phase are corrected by applying the real-time-derived receiver clock offset.
DCBS (Optional)structure array

An array with number of elements equal to number of satellite systems in the file. Each structure has SatelliteSystem, Program, and Source fields. Where:

SatelliteSystem — String specifying satellite system

Program — String specifying the program used to apply differential code bias corrections (DCBS)

Source — String URL of source of corrections

PCVS (Optional)structure array

An array with number of elements equal to number of satellite systems in the file. Each structure has SatelliteSystem, Program, and Source fields. Where:

SatelliteSystem — String specifying satellite system

Program — String specifying the program used to apply phase center variation corrections (PCVS)

Source — String URL of source of corrections

ScaleFactorstructure array

An array with number of elements equal to number of “SYS / SCALE FACTOR” header lines in the file. Each structure has SatelliteSystem, Factor, and ObservationTypes fields. Where:

SatelliteSystem — String specifying satellite system

Factor — is a factor to divide stored observations with before use

ObservationTypes — is a list of observation types

PhaseShift (Optional)structure array

An array with number of elements equal to number of “SYS / PHASE SHIFT” header lines in the file. Each structure has SatelliteSystem, ObservationType, Correction, SatelliteIDs fields. Where:

SatelliteSystem — String specifying the satellite system.

ObservationType — String specifying carrier phase observation code.

Correction — Value of correction applied (cycles).

SatelliteIDs — String array of satellites where correction is applied.

GLONASSFrequencyNumbers (Optional unless using files with GLONASS satellites)structure

A structure with fields Slot and FrequencyNumber. Where:

Slot — String array of satellite numbers (system code (R), slot)

FrequencyNumber — Vector of integer doubles.

GLONASSCodePhaseBiasstructure

A structure with fields ObservationTypes and Bias. Where:

ObservationTypes — String array of observation types. Valid values are “C1C”, “C1P”, “C2C”, or “C2P”.

Bias — Vector of code phase bias corrections in meters.

LeapSecondParameters (Optional)structure

Leap second parameters in a structure with fields LeapSeconds, DeltaTimeLeapSeconds, WeekNumber, DayNumber, and TimeSystemID .

  • LeapSeconds — Current number of leap seconds.

  • DeltaTimeLeapSeconds — Future or past leap seconds. For example, it is future leap seconds if the week and day numbers are in the future.

  • WeekNumber — For GPS, GAL, QZS, and IRN, number of weeks since January 6, 1980. For BDS, it is number of weeks since January 1, 2006.

  • DayNumber — The day number is the GPS or BeiDou day before the leap second. For GPS, this number is in the range [1, 7]. For Beidou, this number is in the range [0, 6].

  • TimeSystemID — Only "GPS" and "BDT" are valid values. If blank the field defaults to "GPS".

NumSatellites (Optional)doubleNumber of satellites, for which observations are stored in the file.
TotalObservations (Optional)structure arrayAn array of structure with the number of elements equal to the number of PRN / # OF OBS header lines in the file. Each structure has a SatelliteID and NumObservations field.

Note that optional fields are not present in the structure unless specified in the RINEX file.

Data Types: struct

Data Types: struct

More About

collapse all

References

[1] International GNSS Service (for Daily 30-Second GPS Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed June 25, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_n_001.

[2] International GNSS Service (for Daily 30-Second Galileo Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed June 25, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_l_001.

[3] International GNSS Service (for Daily 30-Second GLONASS Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed August 19, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_g_001.

[4] International GNSS Service (for Daily 30-Second BeiDou Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed August 19, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_f_001.

[5] International GNSS Service (for Daily 30-Second NavIC/IRNSS Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed August 19, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_i_001.

[6] International GNSS Service (for Daily 30-Second QZSS Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed August 19, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_q_001.

[7] International GNSS Service (for Daily 30-Second SBAS Broadcast Ephemeris Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed August 19, 2021). https://dx.doi.org/10.5067/GNSS/gnss_daily_h_001.

[8] International GNSS Service (for Hourly 30-Second Observation Data, NASA Crustal Dynamics Data Information System (CDDIS), Greenbelt, MD, USA, Jun. 24, 2021; accessed August 19, 2021). https://dx.doi.org/10.5067/GNSS/gnss_hourly_o_001.

[9] Romero, Ignacio, ed. RINEX The Receiver Independent Exchange Format Version 3.05. Darmstadt, Germany: IGS/RTCM ESA/ESOC/Navigation Support Office. December, 2020. Accessed on: Dec. 22, 2021. https://files.igs.org/pub/data/format/rinex305.pdf .

Version History

Introduced in R2022a