Main Content

rinexread

R2026b

Read data from RINEX v3 or RINEX v4 file

Since R2022a

Description

The rinexread function reads data from a RINEX v3 or RINEX v4 navigation or observation file. rinexread fully supports RINEX files up to version 3.05 and version 4.02.

data = rinexread(filename) reads data from the RINEX v3 or RINEX v4 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 v3 or RINEX v4 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

rinexread fully supports RINEX versions up to 3.05 and 4.02. Files from later RINEX versions can still be read, but data fields introduced after these versions may not be returned.

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:
        GPS: [1245×45 timetable]
    GLONASS: [1102×38 timetable]
    Galileo: [859×38 timetable]
     BeiDou: [1303×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 or version 4 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 file, returned as a structure. The structure contains one or more timetables that store navigation and observation data, with fields that vary depending on the RINEX file version, the satellite systems present in the file, and the header entries that describe the available data.

This table shows the structure of the data output structure for RINEX version 3 and RINEX version 4 files.

RINEX v3RINEX v4

Data Types: struct

RINEX file header information, returned as a structure. The structure contains metadata parsed from the file header and includes different fields depending on the type and version of the RINEX file and the header entries present in the file.

Unlike navigation data returned in the data argument, the header argument uses a mostly consistent structure across RINEX versions, with RINEX version 4 including additional header entries depending on the contents of the file.

For detailed field descriptions, see RINEX File Header Information.

Data Types: struct

Limitations

  • Meteorological RINEX files are not supported.

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

expand all