GPS Standard Formats Part 1

Since individual GPS manufacturers have their own proprietary formats for storing GPS measurements, it can be difficult to combine data from different receivers. A similar problem is encountered when interfacing various devices, including the GPS system. To overcome these limitations, a number of research groups have developed standard formats for various user needs. This topic discusses the most widely used standard formats, namely, RINEX, NGS-SP3, RTCM SC-104, and NMEA 0183.

RINEX format

To save storage space, proprietary formats developed by GPS receiver manufacturers are mostly binary, which means that they are not directly readable when displayed [1]. This creates a problem when combining data (in the postprocessing mode) from different GPS receivers. To overcome this problem, a group of researchers have developed an internationally accepted data exchange format [1]. This format, known as the RINEX format, is in the standard ASCII format (i.e., readable text). Although a file in the ASCII format is known to take more storage space than a file in the binary format, it provides more distribution flexibility.

A RINEX file is a translation of the receiver’s own compressed binary files. A draft version of the RINEX format was introduced in 1989 followed by a number of updates to accommodate more data types (e.g., GLONASS data) and other purposes [1]. The current RINEX version 2.10 defines six different RINEX files; each contains a header and data sections: (1) observation data file, (2) navigation message file, (3) meteorological file, (4) GLONASS navigation message file, (5) geostationary satellites (GPS signal payloads) data file, and (6) satellite and receiver clock data file. A new version 2.20 is currently proposed to accommodate data from low Earth orbit (LEO) satellites equipped with GPS or GPS/GLONASS receivers [2]. For the majority of GPS users, the first three files are the most important, and therefore will be the only ones discussed here. The record, or line, length of all RINEX files is restricted to a maximum of 80 characters.


The recommended naming convention for RINEX files is "ssssdddf.yyt." The first four characters, "ssss," represent the station name; the following three characters, "ddd," represent the day of the year of first record; the eighth character, "f," represents the file sequence number within the day. The file extension characters "yy" and "t" represent the last two digits of the current year and the file type, respectively. The file type takes the following symbols: "O" for observation file, "N" for navigation file, "M" for meteorological data file, "G" for GLONASS navigation file, and "H" for geostationary GPS payload navigation message file. For example, a file with the name "abcd032.01o" is an observation file for a station "abcd," which was observed on February 1, 2001.

The observation file contains in its header information that describes the file’s contents such as the station name, antenna information, the approximate station coordinates, number and types of observation, observation interval in seconds, time of first observation record, and other information. The observation types are defined as L1 and L2, and represent the phase measurements on L1 and L2 (cycles); C1 represents the pseudorange using C/A-code on L1 (meters); P1 and P2 represent the pseudorange using P-code on L1 and L2 (meters); D1 and D2 represent the Doppler frequency on L1 and L2 (Hertz). The GPS time frame is used for the GPS files, while the UTC time frame is used for GLONASS files. The header section may contain some optional records such as the leap seconds. The last 20 characters of each record (i.e., columns 61 to 80) contain textual descriptions of that record. The last record in the header section must be "END OF HEADER." Figure 8.1 shows an example of a RINEX observation file for single-frequency data, which was created using the Ashtech Locus processor software.

The data section is divided into epochs; each contains the time tag of the observation (the received-signal receiver time, in the GPS time frame for GPS files), the number and list of satellites, the various types of measurements in the same sequence as given in the header, and the signal strength. Other information, such as the loss of lock indicator, is also included in the data section. The data section may optionally contain the receiver clock offset in seconds (see Figure 8.1).

In its header, the navigation message contains information such as the date of file creation, the agency name, and other relevant information. Similar to the observation file, the last record in the header section of the navigation file must be "END OF HEADER."

Example of a RINEX observation file for single-frequency data.

Figure 8.1 Example of a RINEX observation file for single-frequency data.

Optionally, the header section may contain additional information such as the parameters of the ionospheric model for single-frequency users.As well, almanac parameters relating GPS time and UTC and the leap seconds may optionally be included in the header section of the navigation message. The first record in the data section contains the satellite PRN number, the time tag, and the satellite clock parameters (bias, drift, and drift rate). The subsequent records contain information about the broadcast orbit of the satellite, the satellite health, the GPS week, and other relevant information (see Figure 8.2).

The meteorological file contains time-tagged information such as the temperature (in degrees Celsius), the barometric pressure (in millibars), and the humidity (in percent) at the observation site. The meteorological file starts with a header section containing the observation types (e.g., pressure), the sensors-related information, the approximate position of the meteorological sensor, and other related information. As with the other files, the last record in the header section must be "END OF HEADER." The data section contains the time tags (in GPS time) followed by the meteorological data arranged in the same sequence as specified in the header (see Figure 8.3).

Example of a RINEX navigation file.

Figure 8.2 Example of a RINEX navigation file.

Most GPS receiver manufacturers have developed postprocessing software packages that accept GPS data in the RINEX format. Most of these ackages are also capable of translating the GPS data in the manufacturer’s proprietary format to the RINEX format. The users should, however, be aware that some software packages change the original raw observations in the translation process (e.g., smoothing the raw pseudorange measurements).

NGS-SP3 format

To facilitate exchanging such precise orbital data, the U.S. NGS developed the SP3 format, which later became the international standard [3]. The SP3 is an acronym for Standard Product #3, which was originally introduced as SP1 in 1985. The SP3 file is an ASCII file that contains information about the precise orbital data (in the ITRF reference frame) and the associated satellite clock corrections. The line length of the SP3 files is restricted to 60 columns (characters). All times are referred to the GPS time system in the SP3 data standards.

Example of a RINEX meteorological file.

Figure 8.3 Example of a RINEX meteorological file.

A precise ephemeris file in the SP3 format consists of two sections: a header and data. The header section is a 22-line section (see Figure 8.4). The first line starts with the version symbols (#a) and contains information such as the Gregorian date and time of day of the first epoch of the orbit, and the number of epochs in the ephemeris file. Line 2 starts with the symbols (##) and shows the GPS week number, the seconds of the week, the epoch interval, and the modified Julian day. Lines 3-7 start with the symbol (+) and show the total number of satellites (on line 3) as well as list the satellites by their respective identifiers (PRN number). Lines 8-12 start with the symbols (++) and show the accuracy exponents for the satellites shown on lines 3-7. The meaning of the accuracy exponent (ae) is explained as follows: the standard deviation of the orbital error for a particular satellite = 2ae mm. For example, as shown in Figure 8.4, satellite PRN 1 has an accuracy exponent of 6, which means that the standard deviation of its orbital error is 26 = 64 mm or 6.4 cm. Lines 13-19 of the SP3 header are reserved for future modification, while lines 19-22 are used freely for comments.

Example of header section of an SP3 file.

Figure 8.4 Example of header section of an SP3 file.

The data section of the precise ephemeris in the SP3 format starts at line 23, which contains the data and time of the first record (epoch). In fact, this is the same time shown in the first line of the header section. Subsequent lines contain the satellite coordinates and the satellite clock data for the current epoch. Each line is assigned for a particular satellite and starts with the character "P," which means a position line. The character "P" is followed by the satellite PRN number, the x, y, and z coordinates of the satellite in kilometers, and the satellite clock correction in microseconds (see Figure 8.5). In some cases, satellite velocity values and the rate of clock corrections are mixed with this information. To handle this, the position and clock correction record will be on one line, followed by a line containing the velocity and the rate of clock correction record for the same satellite. The line containing the velocity record starts with the letter "V." Subsequent epochs will have the same structure, and the file ends with the symbol "EOF."

Example of data section of an SP3 file.

Figure 8.5 Example of data section of an SP3 file.

Next post:

Previous post: