Subject: RINEX: Phase shifts and some other new features From: Werner Gurtner Date: Thu, 02 Apr 2009 11:40:14 +0200 To: UNAVCO Estey Lou , Gurtner Werner , Tim Petersen , Ashtech , EuroNav Jürgen Alberding , Ashtech Robert Snow , Clyde Goad , Frank Takac <"Frank .Takac"@leica-geosystems.com>, EGNOS , ESA Marco Falcone , ESA Michel Tossaint , François Lahaye , Geopp , GFZ Roman Galas , GMV Andres Cruz del Valle , Hans van der Marel , Herbert Landau , Javad , Jean-Marie Sleewaegen , JPL Dave Stowers , Stefan Schaer , Udo Rossbach , Leica Frank Pache , Gerhard Wübbena , NOAA Steve Hilla , Norbert Suard CNES , Novatel , NRCAN Michael Schmidt , Markus Brandl , Tim Springer , Trimble Brian Frohring , Tom Stansell , "Dr. Hans-Juergen Euler" , Astrium Michael Kirchner , Stig Syndergaard , Dietmar Klaehn DLR , Jim Ray , Gerd Gendt , GMV Ricardo Piriz , Thomas Nischan , gerry , Yuki Hatanaka , Torben Schüler , Igor Artushkin , Dmitry Kozlov Dear colleagues, please find here the final proposals for new RINEX versions, both for version 2 (i.e. 2.11 --> 2.12) and version 3 (i.e., 3.00 --> 3.01). The proposal regarding 1/4-cycle phase shifts (or other fractions of cycles) is somewhat a compromise between the two extreme positions - consistent phases in RINEX files - keep original phases, don't apply any corrections We propose - to generate consistent phases for the RINEX files to allow for simple and straight-forward processing of the data by the users - to include the APPLIED corrections in a new header record to allow the computation of the original phase data for special-purpose investigations In addition there are a few other modifications and additions included that have been requested in the past. Summary: New RINEX Features (V 2.12) *************************** - Phase cycle shifts (consistent phases, PHASE SHIFT CORR header record) - New Observation Codes for GPS L1C, L2C and L1(C/A) - Compass Satellite System - Galileo Navigation Message File - Unification of the TIME SYSTEM CORR record for all GNSS Navigation Message Files - Order of data records: Clarifications New RINEX Features (V 3.01) *************************** - Phase cycle shifts (consistent phases, PHASE SHIFT CORR header record) - GLONASS Observation files: List of slot and frequency numbers - GPS L1C - Compass Satellite System - GNSS Navigation Message File: Extend leap seconds record - Order of data records: Clarifications - Clarifications in Galileo Navigation Message File There was also a request to introduce a mechanism to distinguish between MBOC and BOC tracking (Galileo L1). Apparently receivers can track MBOC-modulated signals in BOC mode, too, with different noise characteristics, though. To define new observation codes to keep the two modes apart will inflate the already large number of codes in Version 3. Another possibility would be to define a TRACKING MODE header record or to use the obsolete antispoofing flag of version 2 (bit 4 of the Loss-of-Lock-Indicator) to flag non-standard BOC tracking of an MBOC signal. If you don't have strong feeling against I would include the LLI-solution into Version 3.01. Please find attached the proposals for versions 2.12 and 3.01. Best regards Werner -- _____________________________ Universität Bern Astronomisches Institut Prof. Dr. Werner Gurtner Sidlerstrasse 5 CH-3012 Bern Tel. +41 (0)31 631 85 99 Fax +41 (0)31 631 38 69 mailto:werner.gurtner@aiub.unibe.ch http://www.aiub.unibe.ch New RINEX Features (V 2.12) *************************** Phase Cycle Shifts ------------------ Carrier phases tracked on different signal channels or modulation bands of the same frequency may differ in phase by 1/4 (e.g., GPS: P/Y-code-derived L2 phase vs. L2C-based phase) or, in some exceptional cases, by other fractional parts of a cycle. Phases stored in the RINEX files have to be consistent across all satellites of a satellite system and a specific frequency within the current RINEX file with respect to such cycle shifts: Either one or the other group of phase observations have to be shifted by the respective fraction of a cycle, prior to RINEX file generation to align them to each other. The applied corrections are to be reported in a new PHASE SHIFT CORR header record to the RINEX file header. +--------------------+------------------------------------------+------------+ | PHASE SHIFT CORR | Phase shift correction used to generate | | | | phases consistent w/r to cycle shifts | | | | - Satellite system (G/R/E/S/C) | A1,1X, | | | - Carrier phase observation code | A2,2X, | | | - Type | | | | - Band | | | | - Correction applied (cycles) | F8.5 | | | | | | | Repeat the record for all affected codes.| | +--------------------+------------------------------------------+------------+ Example: G LC -0.25000 PHASE BIAS CORR New Observation Codes for L1C, L2C and L1(C/A) ---------------------------------------------- +--------------------+------------------------------------------+------------+ |# / TYPES OF OBSERV | - Number of different observation types | I6, | | | stored in the file | | | | - Observation types | | | | - Observation code | 9(4X,A1, | | | - Frequency code | A1)| | | If more than 9 observation types: | | | | Use continuation line(s) (including |6X,9(4X,2A1)| | | the header label in cols. 61-80!) | | | | | | | | The following observation types are | | | | defined in RINEX Version 2.12: | | | | | | | | Observation code (use uppercase only): | | | | C: Pseudorange GPS: C/A, L2C | | | | Glonass: C/A | | | | Galileo: All | | | | P: Pseudorange GPS and Glonass: P code| | | | L: Carrier phase | | | | D: Doppler frequency | | | | S: Raw signal strengths or SNR values | | | | as given by the receiver for the | | | | respective phase observations | | | | | | | | Frequency code | | | | GPS Glonass Galileo SBAS Compass| | | | 1: L1 (P.Y) G1 E2-L1-E1 L1 E1 | | | | A: L1 (C/A) -- -- -- | | | | B: L1 (L1C) -- -- -- | | | | 2: L2 (P.Y) G2 -- -- E2 | | | | C: L2 (L2C) -- -- -- | | | | 5: L5 -- E5a L5 | | | | 6: -- -- E6 -- E6 | | | | 7: -- -- E5b -- E5b | | | | 8: -- -- E5a+b -- | | | | | | | | Observations collected under Antispoofing| | | | are converted to "L2" or "P2" and flagged| | | | with bit 2 of loss of lock indicator | | | | (see Table A2). | | | | | | | | Units : Phase : full cycles | | | | Pseudorange : meters | | | | Doppler : Hz | | | | SNR etc : receiver-dependent | | | | | | | | The sequence of the types in this record | | | | has to correspond to the sequence of the | | | | observations in the observation records | | +--------------------+------------------------------------------+------------+ Compass Satellite System ------------------------ +--------------------+------------------------------------------+------------+ |RINEX VERSION / TYPE| - Format version (2.12) | F9.2,11X, | | | - File type ('O' for Observation Data) | A1,19X, | | | - Satellite System: blank or 'G': GPS | A1,19X | | | 'R': GLONASS | | | | 'S': Geostationary | | | | signal payload | | | | 'E': Galileo | | | | 'C': Compass | | | | 'M': Mixed | | +--------------------+------------------------------------------+------------+ snn s: satellite system identifier G or blank : GPS R : GLONASS S : Geostationary signal payload E : Galileo C : Compass nn: - PRN (GPS, Galileo, Compass), - slot number (GLONASS) - PRN-100 (GEO) Galileo Navigation Message File ------------------------------- +----------------------------------------------------------------------------+ | TABLE A19 | | GALILEO NAVIGATION MESSAGE FILE - HEADER SECTION DESCRIPTION | +--------------------+------------------------------------------+------------+ | HEADER LABEL | DESCRIPTION | FORMAT | | (Columns 61-80) | | | +--------------------+------------------------------------------+------------+ |RINEX VERSION / TYPE| - Format version : 2.12 | F9.2,11X, | | | - File type ('N' for navigation data) | A1,19X, | | | - Satellite System: G: GPS | A1,19X | +--------------------+------------------------------------------+------------+ |PGM / RUN BY / DATE | - Name of program creating current file | A20, | | | - Name of agency creating current file | A20, | | | - Date and time of file creation | | | | Format: yyyymmdd hhmmss zone | A20 | | | zone: 3-4 char. code for time zone. | | | | 'UTC ' recommended! | | | | 'LCL ' if local time with un- | | | | known local time system code | | +--------------------+------------------------------------------+------------+ *|COMMENT | Comment line(s) | A60 |* +--------------------+------------------------------------------+------------+ *|IONOSPHERIC CORR | Ionospheric correction parameters | |* | | - Correction type | A4,1X, | | | GAL = Galileo ai0 - ai2 | | | | - Parameters | 4D12.4 | | | GAL: ai0, ai1, ai2, zero | | +--------------------+------------------------------------------+------------+ *|TIME SYSTEM CORR | Corrections to transform the system time | |* | | to UTC or other time systems | | | | - Correction type | A4,1X, | | | GAUT = GAL to UTC a0, a1 | | | | - a0,a1 Coefficients of 1-deg polynomial | D17.10, | | | (a0 sec, a1 sec/sec) | D16.9, | | | CORR(s) = a0 + a1*DELTAT | | | | - T Reference time for polynomial | I7, | | | (Seconds into GAL week) | | | | - W Reference week number | I5, | | | (GAL week, continuous number) | 10X | +--------------------+------------------------------------------+------------+ |END OF HEADER | Last record in the header section. | 60X | +--------------------+------------------------------------------+------------+ +----------------------------------------------------------------------------+ | TABLE A20 | | GALILEO NAVIGATION MESSAGE FILE - DATA RECORD DESCRIPTION | +--------------------+------------------------------------------+------------+ | OBS. RECORD | DESCRIPTION | FORMAT | +--------------------+------------------------------------------+------------+ |SV / EPOCH / SV CLK | - Satellite system (E), satellite number | A1,I2.2, | | | - Epoch: Toc - Time of Clock GAL| | | | - year (4 digits) | 1X,I4, | | | - month,day,hour,minute,second | 5(1X,I2.2),| | | - SV clock bias (seconds) af0| 3D19.12 | | | - SV clock drift (sec/sec) af1| | | | - SV clock drift rate (sec/sec2) af2| *) | | | (see Br.Orbit-5, data source, bits 8+9)| | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 1| - IODnav Issue of Data of the nav batch | 4X,4D19.12 | | | - Crs (meters) | | | | - Delta n (radians/sec) | ***) | | | - M0 (radians) | | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 2| - Cuc (radians) | 4X,4D19.12 | | | - e Eccentricity | | | | - Cus (radians) | | | | - sqrt(a) (sqrt(m)) | | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 3| - Toe Time of Ephemeris (sec of GAL week)| 4X,4D19.12 | | | - Cic (radians) | | | | - OMEGA0 (radians) | | | | - Cis (radians) | | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 4| - i0 (radians) | 4X,4D19.12 | | | - Crc (meters) | | | | - omega (radians) | | | | - OMEGA DOT (radians/sec) | | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 5| - IDOT (radians/sec) | 4X,4D19.12 | | | - Data sources (FLOAT --> INTEGER) | | | | Bit 0 set: I/NAV E1-B | | | | Bit 1 set: F/NAV E5a-I | | | | Bit 2 set: I/NAV E5b-I | | | | Bits 0-2 : non-exclusive | | | | Bit 8 set: af0-af2, Toc, SISA are | | | | for E5a,E1 | | | | Bit 9 set: af0-af2, Toc, SISA are | | | | for E5b,E1 | | | | - GAL Week # (to go with Toe) | ****) | | | - spare | | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 6| - SISA Signal in space accuracy (meters) | 4X,4D19.12 | | | Undefined/unknown: -1.0 | | | | - SV health (FLOAT converted to INTEGER) | *****) | | | 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 | | | | - BGD E5a/E1 (seconds) | | | | - BGD E5b/E1 (seconds) | | +--------------------+------------------------------------------+------------+ | BROADCAST ORBIT - 7| - Transmission time of message **) | 4X,4D19.12 | | | (sec of GAL week, derived | | | | from WN and TOW of page type 1) | | | | - spare | | | | - spare | | | | - spare | | +--------------------+------------------------------------------+------------+ *) In order to account for the various compilers, E,e,D, and d are allowed letters between the fraction and exponent of all floating point numbers in the navigation message files. Zero-padded two-digit exponents are required, however. **) Adjust the Transmission time of message by + or - 604800 to refer to the reported week in BROADCAST ORBIT - 5, if necessary. Set value to 0.9999E9 if not known. ***) Angles and their derivatives transmitted in units of semi-circles and semi-circles/sec have to be converted to radians by the RINEX generator. ****) The GAL week number is a continuous number, aligned to (and hence identical to) the continuous GPS week number used in the RINEX navigation message files. The broadcast 12-bit Galileo System Time week has a roll-over after 4095. It started at zero at the first GPS roll-over (continuous GPS week 1024). Hence GAL week = GST week + 1024 + n*4096 (n: number of GST roll-overs). *****) - If bit 0 or bit 2 of Data sources (BROADCAST ORBIT - 5) is set, E1B DVS & HS, E5b DVS & HS and both BGDs are valid - If bit 1 of Data sources is set, E5a DVS & HS and BGD E5a/E1 are valid - Non valid parameters are set to 0 and to be ignored Unification of the TIME SYSTEM CORR record ------------------------------------------ Replacement for - GPS: DELTA-UTC: A0,A1,T,W - SBAS: D-UTC A0,A1,T,W,S,U - GLONASS: CORR TO SYSTEM TIME +----------------------------------------------------------------------------+ | TABLE A3 | | GPS NAVIGATION MESSAGE FILE - HEADER SECTION DESCRIPTION | +--------------------+------------------------------------------+------------+ *|TIME SYSTEM CORR | Corrections to transform the system time | |* | | to UTC | | | | - Correction type | A4,1X, | | | GPUT = GPS to UTC a0, a1 | | | | - a0,a1 Coefficients of 1-deg polynomial | D17.10, | | | (a0 sec, a1 sec/sec) | D16.9, | | | CORR(s) = a0 + a1*DELTAT | | | | - T Reference time for polynomial | I7, | | | (Seconds into GPS week) | | | | - W Reference week number | I5, | | | (GPS week, continuous number) | 10X | +--------------------+------------------------------------------+------------+ +----------------------------------------------------------------------------+ | TABLE A10 | | GLONASS NAVIGATION MESSAGE FILE - HEADER SECTION DESCRIPTION | +--------------------+------------------------------------------+------------+ *|TIME SYSTEM CORR | Corrections to transform the system time | |* | | to UTC | | | | - Correction type | A4,1X, | | | GLUT = GLO to UTC | | | | - a0 Correction in seconds (a0=TauC) | D17.10, | | | CORR(s) = a0 | 16X, | | | - T Reference time for polynomial | I7, | | | (Seconds into GPS week) | | | | - W Reference week number | I5, | | | (GPS week, continuous number) | 10X | +--------------------+------------------------------------------+------------+ +----------------------------------------------------------------------------+ | TABLE A15 | | GEOSTATIONARY NAVIGATION MESSAGE FILE - HEADER SECTION DESCRIPTION | +--------------------+------------------------------------------+------------+ *|TIME SYSTEM CORR | Corrections to transform the system time | |* | | to UTC | | | | - Correction type | A4,1X, | | | SBUT = SBAS to UTC a0, a1 | | | | - a0,a1 Coefficients of 1-deg polynomial | D17.10, | | | (a0 sec, a1 sec/sec) | D16.9, | | | CORR(s) = a0 + a1*DELTAT | | | | - T Reference time for polynomial | I7, | | | (Seconds into GPS week) | | | | - W Reference week number | I5, | | | (GPS week, continuous number) | | | | - S EGNOS, WAAS, or MSAS ... | 1X,A5,1X | | | (left-justified) | | | | Derived from MT17 service provider. | | | | If not known: Use Snn with | | | | nn = PRN-100 of satellite | | | | broadcasting the MT12 | | | | - U UTC Identifier (0 if unknown) | I2,1X | | | 1=UTC(NIST), 2=UTC(USNO), 3=UTC(SU), | | | | 4=UTC(BIPM), 5=UTC(Europe Lab), | | | | 6=UTC(CRL), >6 = not assigned yet | | +--------------------+------------------------------------------+------------+ 6.10 Order of data records Explicitly exclude multiple epoch data records with identical time tag (exception: Event records). Epochs have to appear ordered in time. Attachments: New_Features_Rinex301.doc New_Features_Rinex212.txt