          Extensions for GLONASS and Mixed GPS/GLONASS RINEX Files
          --------------------------------------------------------


                              Werner Gurtner
                          Astronomical Institute
                            University of Bern

                                April 1997


This text contains all changes and extensions for RINEX Version 2 needed to
include GLONASS observations and navigation messages into RINEX files.
It is a result of discussions with people engaged in GPS/GLONASS hardware and
software developments performed in March 1997.

The following modifications to the original GLONASS proposal were performed:

Observation Files:
  * Introduction of an optional LEAP SECOND header line
  * Format of EPOCH / PRN continuation lines (if more than 12 prns per epoch)
  * Satellite system indicators for GLONASS satellites are always required
    (blank defaults to GPS only!)

GLONASS Navigation Files:
  * Sign of satellite clock and frequency offsets changed to be compatible with
    the corresponding GPS values
  * Message frame time now in the PRN / EPOCH / SV CLK line of the GLONASS
    navigation message block


1. RINEX Observation Files
**************************

The RINEX Version 2 observation files have been defined in view of a possible
inclusion of GLONASS pseudorange and phase observations. GLONASS observables
are very similar to the GPS ones: There are also phase observations L1,L2 on
the two carriers as well as a C/A code (C1) and two P-code (P1,P2)
pseudoranges, and, for special cases, Doppler frequency observations.

1.1 Time System Identifier
==========================

RINEX Version 2 needs one major supplement, the explicit definition of the time
system:

GLONASS is basically running on UTC (or, more precisely, GLONASS system time
linked to UTC(SU)), i.e. the time tags are given in UTC and not GPS time.
In order to remove possible misunderstandings and ambiguities, the header
records "TIME OF FIRST OBS" and (if present) "TIME OF LAST OBS" in GLONASS and
GPS observation files _can_, in mixed GLONASS/GPS observation files _must_
contain a time system identifier defining the system that all time tags in the
file are referring to. Pure GPS files default to GPS and pure GLONASS files
default to GLO (=UTC time system):

Example:

  1994     3    24     0     0    0.000000      GPS         TIME OF FIRST OBS
  1994     3    24    23    59   30.000000      GPS         TIME OF LAST  OBS

or

  1994     3    24     0     0   21.000000      GLO         TIME OF FIRST OBS
  1994     3    24    23    59   51.000000      GLO         TIME OF LAST  OBS

Format:

 +--------------------+------------------------------------------+------------+
 |TIME OF FIRST OBS   | - Time of first observation record       | 5I6,F12.6, |
 |                    |   (4-digit-year, month,day,hour,min,sec) |            |
 |                    | - Time system: GPS (=GPS time system)    |   6X,A3    |
 |                    |                GLO (=UTC time system)    |            |
 |                    |   compulsory in mixed GPS/GLONASS files  |            |
 |                    |   Defaults: GPS for pure GPS files       |            |
 |                    |             GLO for pure GLONASS files   |            |
 +--------------------+------------------------------------------+------------+
*|TIME OF LAST OBS    | - Time of last  observation record       | 5I6,F12.6, |*
 |                    |   (4-digit-year, month,day,hour,min,sec) |            |
 |                    | - Time system: GPS (=GPS time system)    |   6X,A3    |
 |                    |                GLO (=UTC time system)    |            |
 |                    |   compulsory in mixed GPS/GLONASS files  |            |
 |                    |   Defaults: GPS for pure GPS files       |            |
 |                    |             GLO for pure GLONASS files   |            |
 +--------------------+------------------------------------------+------------+
*|LEAP SECONDS        | Number of leap seconds since 6-Jan-1980  |     I6     |*
 +--------------------+------------------------------------------+------------+

                        Records marked with * are optional

          (Modification of Table A1 in the RINEX Version 2 document)

Hence, the two possible time tags differ by the current number of leap seconds.

In order to have the current number of leap seconds available we recommend
to include a LEAP SECOND line into the RINEX header.

If there are known non-integer biases between the "GPS receiver clock"
and "GLONASS receiver clock" in the same receiver, they should be applied.
In this case the respective code and phase observations have to be corrected,
too (c * bias if expressed in meters).

Unknown such biases will have to be solved for during the post processing

The small differences (modulo 1 second) between GLONASS system time, UTC(SU),
UTC(USNO) and GPS system time have to be dealt with during the post-processing
and not before the RINEX conversion. It may also be necessary to solve for
remaining differences during the post-processing.

1.2 Pseudorange Definition
==========================

The pseudorange (code) measurement is defined to be equivalent to the
difference of the time of reception (expressed in the time frame of the
receiver) and the time of transmission (expressed in the time frame of the
satellite) of a distinct satellite signal.

If a mixed-mode GPS/GLONASS receiver refers all pseudorange observations to
one receiver clock only,

- the raw GLONASS pseudoranges will show the current number of leap seconds
  between GPS time and GLONASS time if the receiver clock is running in the
  GPS time frame

- the raw GPS pseudoranges will show the negative number of leap seconds
  between GPS time and GLONASS time if the receiver clock is running in the
  GLONASS time frame

In order to avoid misunderstandings and to keep the code observations within
the format fields the pseudoranges must be corrected in this case as follows:

  PR(GPS) := PR(GPS) + c * leap_seconds   if generated with a receiver clock
                                          running in the GLONASS time frame

  PR(GLO) := PR(GLO) - c * leap_seconds   if generated with a receiver clock
                                          running in the GPS time frame

to remove the contributions of the leap seconds from the pseudoranges.

"leap_seconds" is the actual number of leap seconds between GPS and GLONASS
(UTC) time, as broadcast in the GPS almanac and distributed in Circular T
of BIPM.

1.3 More than 12 satellites per epoch
=====================================

The format of the epoch / satellite line in the observation record part of
the RINEX Observation Files has only been defined for up to 12 satellites
per epoch. We explicitly define the continuation lines as follows:

 +----------------------------------------------------------------------------+
 |                                   TABLE A2                                 |
 |               OBSERVATION DATA FILE - DATA RECORD DESCRIPTION              |
 +-------------+-------------------------------------------------+------------+
 | OBS. RECORD | DESCRIPTION                                     |   FORMAT   |
 +-------------+-------------------------------------------------+------------+
 | EPOCH/SAT   | - Epoch :                                       | 5I3,F11.7, |
 |     or      |     year (2 digits), month,day,hour,min,sec     |            |
 | EVENT FLAG  | - Epoch flag 0: OK                              |     I3,    |
 |             |              1: power failure between           |            |
 |             |                 previous and current epoch      |            |
 |             |             >1: Event flag                      |            |
 |             | - Number of satellites in current epoch         |     I3,    |
 |             | - List of PRNs (sat.numbers) in current epoch   | 12(A1,I2), |
 |             | - receiver clock offset (seconds, optional)     |    F12.9   |
 |             |                                                 |            |
 |             |   If more than 12 satellites in current epoch:  |            |
 |             |   Use continuation lines with (32X,12(A1,I2)).  |            |
 |             |                                                 |            |
 +-------------+-------------------------------------------------+------------+

          (Modification of Table A2 in the RINEX Version 2 document)


1.4 Satellite Numbers in Observation Files
==========================================

Satellites of the different systems are distinguished by preceding the 2-digit
satellite number with a system identifier:

        snn                  s:    satellite system identifier
                                   G or blank : GPS
                                   R          : GLONASS
                            nn:    PRN (GPS), almanac number (GLONASS)

        Note: G is mandatory in mixed GPS/GLONASS files


2. RINEX Navigation Files for GLONASS
*************************************

As the GLONASS navigation message differs in contents from the GPS message
too much, a special GLONASS navigation message file format has been defined.

The header section and the first data record (epoch, satellite clock
information) is similar to the GPS navigation file. The following records
contain the satellite position, velocity and acceleration, the clock and
frequency biases as well as auxiliary information as health, satellite
frequency (channel), age of the information.

In order to use the same sign conventions for the time and frequency bias as
in the GPS navigation files the broadcast GLONASS values are multiplied by -1.

The time tags in the GLONASS navigation files are given in UTC (i.e. _not_
Moscow time or GPS time).

We recommend using the following naming convention for the GLONASS
navigation message files:

        ssssdddf.yyt      ssss:    4-character station or center name
                                   designator
                           ddd:    day of the year of first record
                             f:    file sequence number within day
                                   0: file contains all the collected
                                      messages of the current day
                            yy:    year
                             t:    file type:
                                   G: GLONASS navigation message file

 +----------------------------------------------------------------------------+
 |                                   TABLE A10                                |
 |        GLONASS NAVIGATION MESSAGE FILE - HEADER SECTION DESCRIPTION        |
 +--------------------+------------------------------------------+------------+
 |    HEADER LABEL    |               DESCRIPTION                |   FORMAT   |
 |  (Columns 61-80)   |                                          |            |
 +--------------------+------------------------------------------+------------+
 |RINEX VERSION / TYPE| - Format version (2)                     |   I6,14X,  |
 |                    | - File type ('G' = GLONASS nav mess data)|   A1,39X   |
 +--------------------+------------------------------------------+------------+
 |PGM / RUN BY / DATE | - Name of program creating current file  |     A20,   |
 |                    | - Name of agency  creating current file  |     A20,   |
 |                    | - Date of file creation (dd-mmm-yy hh:mm)|     A20    |
 +--------------------+------------------------------------------+------------+
*|COMMENT             | Comment line(s)                          |     A60    |*
 +--------------------+------------------------------------------+------------+
*|CORR TO SYSTEM TIME | - Time of reference for system time corr |            |*
 |                    |   (year, month, day)                     |     3I6,   |
 |                    | - Correction to system time scale (sec)  |  3X,D19.12 |
 |                    |   to correct GLONASS system time to      |            |
 |                    |   UTC(SU)                                |            |
 +--------------------+------------------------------------------+------------+
*|LEAP SECONDS        | Number of leap seconds since 6-Jan-1980  |     I6     |*
 +--------------------+------------------------------------------+------------+
 |END OF HEADER       | Last record in the header section.       |    60X     |
 +--------------------+------------------------------------------+------------+

                        Records marked with * are optional


 +----------------------------------------------------------------------------+
 |                                  TABLE A11                                 |
 |         GLONASS NAVIGATION MESSAGE FILE - DATA RECORD DESCRIPTION          |
 +--------------------+------------------------------------------+------------+
 |    OBS. RECORD     | DESCRIPTION                              |   FORMAT   |
 +--------------------+------------------------------------------+------------+
 |PRN / EPOCH / SV CLK| - Satellite almanac number               |     I2,    |
 |                    | - Epoch of ephemerides             (UTC) |            |
 |                    |          - year (2 digits)               |    5I3,    |
 |                    |          - month                         |            |
 |                    |          - day                           |            |
 |                    |          - hour                          |            |
 |                    |          - minute                        |            |
 |                    |          - second                        |    F5.1,   |
 |                    | - SV clock bias (sec)              (-tau)|   D19.12   |
 |                    | - SV relative frequency bias     (-gamma)|   D19.12   |
 |                    | - message frame time (sec of day UTC)    |   D19.12   |
 +--------------------+------------------------------------------+------------+
 | BROADCAST ORBIT - 1| - Satellite position X      (km)         | 3X,4D19.12 |
 |                    | -           velocity X dot  (km/sec)     |            |
 |                    | -           X acceleration  (km/sec2)    |            |
 |                    | -           health (0=OK)            (Bn)|            |
 +--------------------+------------------------------------------+------------+
 | BROADCAST ORBIT - 2| - Satellite position Y      (km)         | 3X,4D19.12 |
 |                    | -           velocity Y dot  (km/sec)     |            |
 |                    | -           Y acceleration  (km/sec2)    |            |
 |                    | -           frequency number (1-24)      |            |
 +--------------------+------------------------------------------+------------+
 | BROADCAST ORBIT - 3| - Satellite position Z      (km)         | 3X,4D19.12 |
 |                    | -           velocity Z dot  (km/sec)     |            |
 |                    | -           Z acceleration  (km/sec2)    |            |
 |                    | - Age of oper. information  (days)   (E) |            |
 +--------------------+------------------------------------------+------------+


3. Examples
***********

+------------------------------------------------------------------------------+
|                                   TABLE A12                                  |
|                  GLONASS NAVIGATION MESSAGE FILE - EXAMPLE                   |
+------------------------------------------------------------------------------+

----|---1|0---|---2|0---|---3|0---|---4|0---|---5|0---|---6|0---|---7|0---|---8|

     2              GLONASS NAVMESS DATA                    RINEX VERSION / TYPE
XXRINEXN V1.3 VAX   University of Berne 30-AUG-93 17:57     PGM / RUN BY / DATE
  1993     8     7    -0.141188502312D-04                   CORR TO SYSTEM TIME
                                                            END OF HEADER
 1 93  8  7 15 15  0.0 0.161942094564D-03-0.181898940355D-11 0.542700000000D+05
    0.129469794922D+05-0.130014419556D+01 0.186264514923D-08 0.000000000000D+00
   -0.380712744141D+04 0.266516971588D+01 0.000000000000D+00 0.170000000000D+02
    0.216525634766D+05 0.124328994751D+01-0.186264514923D-08 0.000000000000D+00
17 93  8  7 15 15  0.0-0.717733055353D-04-0.272848410532D-11 0.542700000000D+05
    0.305286718750D+04 0.311648464203D+01 0.000000000000D+00 0.000000000000D+00
   -0.108431787109D+05-0.317855834961D+00 0.000000000000D+00 0.210000000000D+00
    0.229024404297D+05-0.575817108154D+00-0.186264514923D-08 0.000000000000D+00
 7 93  8  7 15 15  0.0 0.902833417058D-04-0.181898940355D-11 0.542700000000D+05
   -0.548300732422D+04-0.442504882813D+00-0.931322574615D-09 0.000000000000D+00
    0.227251596680D+05 0.131087875366D+01-0.931322574615D-09 0.130000000000D+00
    0.998504833984D+04-0.323978710175D+01-0.931322574615D-09 0.000000000000D+00
 2 93  8  7 15 15  0.0 0.975374132395D-04-0.181898940355D-11 0.542700000000D+05
    0.138356103516D+05-0.716581344604D+00 0.279396772385D-08 0.000000000000D+00
   -0.190140761719D+05 0.116566944122D+01 0.000000000000D+00 0.500000000000D+01
    0.991978125000D+04 0.322995281219D+01 0.000000000000D+00 0.000000000000D+00
 8 93  8  7 15 15  0.0 0.292631797493D-03-0.363797880709D-11 0.542700000000D+05
    0.419437841797D+04-0.111876964569D+01 0.000000000000D+00 0.000000000000D+00
    0.141901040039D+05 0.262095737457D+01-0.931322574615D-09 0.200000000000D+01
    0.207799843750D+05-0.155530166626D+01-0.186264514923D-08 0.000000000000D+00
24 93  8  7 15 15  0.0-0.176711939275D-03-0.109139364213D-10 0.544500000000D+05
    0.204199819336D+05 0.176556110382D+01 0.279396772385D-08 0.000000000000D+00
   -0.796999316406D+04-0.311827659607D+00 0.000000000000D+00 0.100000000000D+01
    0.130460561523D+05-0.295512390137D+01-0.931322574615D-09 0.000000000000D+00

----|---1|0---|---2|0---|---3|0---|---4|0---|---5|0---|---6|0---|---7|0---|---8|

+------------------------------------------------------------------------------+
|                                   TABLE A13                                  |
|                      GLONASS OBSERVATION FILE - EXAMPLE                      |
+------------------------------------------------------------------------------+

----|---1|0---|---2|0---|---3|0---|---4|0---|---5|0---|---6|0---|---7|0---|---8|

     2              OBSERVATION DATA    R (GLONASS)         RINEX VERSION / TYPE
XXRINEXO V1.1       AIUB                27-AUG-93 07:23     PGM / RUN BY / DATE
TST1                                                        MARKER NAME
VIEWEG              BRAUNSCHWEIG                            OBSERVER / AGENCY
100                 XX-RECEIVER         1.0                 REC # / TYPE / VERS
101                 XX-ANTENNA                              ANT # / TYPE
  3844808.114    715426.767   5021804.854                   APPROX POSITION XYZ
         .0000         .0000         .0000                  ANTENNA: DELTA H/E/N
     1     1                                                WAVELENGTH FACT L1/2
     2    C1    L1                                          # / TYPES OF OBSERV
    10                                                      INTERVAL
  1993     8    23    14    24   40.049000      GLO         TIME OF FIRST OBS
                                                            END OF HEADER
 93  8 23 14 24 40.0490000  0  3  2  1 21
  23986839.824       20520.565 5
  23707804.625       19937.231 5
  23834065.096       -9334.581 5
 93  8 23 14 24 50.0490000  0  3  2  1 21
  23992341.033       49856.525 5
  23713141.002       48479.290 5
  23831189.435      -24821.796 5
 93  8 23 14 25   .0490000  0  3  2  1 21
  23997824.854       79217.202 5
  23718494.110       77092.992 5
  23828329.946      -40219.918 5
 93  8 23 14 25 10.0490000  0  5  2  5 17  1 21
  24003328.910      108602.422 5
  24933965.449      -19202.780 5
  22203326.578       -2987.327 5
  23723851.686      105777.849 5
  23825485.526      -55529.205 5
 93  8 23 14 25 20.0490010  0  5  2  5 17  1 21
  24008828.023      138012.178 5
  24927995.616      -51188.500 5
  22202547.907       -7213.298 5
  23729236.758      134533.636 5
  23822662.277      -70749.590 5
 93  8 23 14 25 30.0490000  0  5  2  5 17  1 21
  24014330.779      167446.477 5
  24922041.288      -83151.666 5
  22201767.457      -11388.909 5
  23734633.024      163360.131 5
  23819848.894      -85881.102 5

----|---1|0---|---2|0---|---3|0---|---4|0---|---5|0---|---6|0---|---7|0---|---8|

+------------------------------------------------------------------------------+
|                                   TABLE A14                                  |
|                MIXED GPS/GLONASS OBSERVATION FILE - EXAMPLE                  |
+------------------------------------------------------------------------------+

----|---1|0---|---2|0---|---3|0---|---4|0---|---5|0---|---6|0---|---7|0---|---8|

     2              OBSERVATION DATA    M (MIXED)           RINEX VERSION / TYPE
YYRINEXO V2.8.1 VM  AIUB                19-FEB-97 13:59     PGM / RUN BY / DATE
TST2                                                        MARKER NAME
001-02-A                                                    MARKER NUMBER
JIM                 Y-COMPANY                               OBSERVER / AGENCY
1                   YY-RECEIVER         2.0.1               REC # / TYPE / VERS
1                   GEODETIC L1                             ANT # / TYPE
  3851178.1849   -80151.4072  5066671.1013                  APPROX POSITION XYZ
        1.2340        0.0000        0.0000                  ANTENNA: DELTA H/E/N
     1     0                                                WAVELENGTH FACT L1/2
     2    C1    L1                                          # / TYPES OF OBSERV
    10                                                      INTERVAL
    11                                                      LEAP SECONDS
  1997     2     6    11    53    0.000000      GPS         TIME OF FIRST OBS
                                                            END OF HEADER
 97  2  6 11 53  0.0000000  0 14G23G07G02G05G26G09G21R20R19R12R02R11
                                R10R03
  22576523.586   -11256947.60212
  22360162.704   -16225110.75413
  24484865.974    14662682.882 2
  21950524.331   -13784707.24912
  22507304.252     9846064.848 2
  20148742.213   -20988953.712 4
  22800149.591   -16650822.70012
  19811403.273   -25116169.741 3
  23046997.513    -3264701.688 2
  22778170.622  -821857836.745 1
  22221283.991  -988088156.884 2
  19300913.475   -83282658.19013
  20309075.579  -672668843.84713
  23397403.484  -285457101.34211
 97  2  6 11 53 10.0000000  0 14G23G07G02G05G26G09G21R20R19R12R02R11
                                R10R03
  22578985.016   -11244012.910 2
  22359738.890   -16227337.841 2
  24490324.818    14691368.710 2
  21944376.706   -13817012.849 2
  22512598.731     9873887.580 2
  20147322.111   -20996416.338 4
  22798942.949   -16657163.594 2
  19812513.509   -25110234.795 3
  23053885.702    -3227854.397 2
  22770607.029  -821898566.774 1
  22222967.297  -988079145.989 2
  19297913.736   -83298710.38413
  20313087.618  -672647337.04113
  23392352.454  -285484291.40311

----|---1|0---|---2|0---|---3|0---|---4|0---|---5|0---|---6|0---|---7|0---|---8|

