SiGOG: simulated GPS observation generator

For many applications, access to unbiased or error-con-trolled global positioning system (GPS) observations can be very useful. This paper is devoted to the description of simulated GPS observations generator (SiGOG), a software that simulates GPS observations. It presents the results of tests of SiGOG accuracy using GPS processing software


Introduction
The basic observables of the global positioning system (GPS) are the pseudoranges (C/A, P1, and P2 codes) and the carrier phases (L1 and L2).The most common file format to manipulate these observables is the RINEX format (Gurtner 2002).In some instances, it can be desirable to produce simulated GPS observations.Simulated GPS observations generator (SiGOG) is a tool that produces unbiased or error-free code and carrier phase observations for an arbitrary location and epoch.The applications of SiGOG can be, among others: -Mitigation of GPS errors; -Evaluation of the effect of a bad geometry by, for example, generating different scenarios of signal obstruction; -Study of various error sources affecting GPS applications (by means of introducing the error into the observables and processing the simulated RINEX file for the application); -Evaluation of campaign strategies prior to field work.Since the basis of GPS differential GPS corrections (DGPS) (RTCM Special Committee 1994) relies upon the access to unbiased GPS observations, and in order to show SiGOG potential, in this paper we present a procedure to derive differential corrections based on the

Elsa Mohino Mauricio Gende Claudio Brunini Miguel Heraiz
SiGOG: simulated GPS observation generator simulation of GPS observations for a reference station of known coordinates.
The computational flow and main features of the SiGOG software are presented in the first part of this paper while its use as a differential correction provider (DGPS) is discussed in the second part.

SiGOG main features
The SiGOG is a GNU General Public License software implemented in the Fortran 77 language that, for an arbitrary date and interval of time, generates code and carrier phase observations in a RINEX format file, given the fictitious receiver/antenna coordinates as well as real satellite orbits.Depending on the type of orbit used, there are two alternative names for SiGOG: the first one, SiGOGprcs, simulates GPS observations from precise orbits, while SiGOGbcst uses broadcast orbits.Currently, SiGOG only simulates GPS observations, but it can be adapted for the simulation of GLONASS or future GALILEO observations.

Steps taken within the SiGOG software
The SiGOG follows these four steps when creating simulated observations: Step 1 The input data required by SiGOG is read from an input file that must contain: -Monument coordinates and H/E/N offsets to the antenna reference point; -Four-character name of the station; -Flag indicating whether or not to apply tropospheric corrections; -Elevation mask; -Date, initial and final epochs, as well as the interval between consecutive observations.Once the observation date is stated, SiGOG will search for the orbit files for the corresponding date in either the broadcast or precise orbits.If the latter is chosen, in order to avoid extrapolating data for epochs close to the beginning and ending of the day, SiGOGprcs may also require an orbit file for the one day prior to the simulated date and another corresponding to the day following the simulated date; -Types of observables to generate; choosing one or several from the following possibilities: C1, P1, P2, L1, and L2.As SiGOG does not account for ionospheric biases, C1, P1, and P2 are equal, and the corresponding range differences for the L1 and L2 pair are equal.
Step 2 Generation of satellite positions for the observation epochs taking into account the delay between signal transmission at the satellite and signal reception at the station.Corrections for the Sagnac effect (owing to the rotation of the reference frame), satellite clock error, and relativistic effect (due to the eccentricity of satellite orbits) are also included in this step.For a review of Sagnac and other relativistic effects, interested readers are referred to Ashby (2002) or Ashby and Spilker (1996).
Prior to the interpolation process, SiGOGprcs tests the quality of the precise orbits, making sure there are enough data to interpolate satellite positions and clock errors.For the satellite coordinates, a ninth degree Lagrange polynomial with the unknown in the centre is used, while a third degree polynomial interpolation is applied for the satellite clock error.
The SiGOGbcst generates satellite positions from orbit parameters recorded in a RINEX navigation file.For a detailed explanation of the process, interested readers are referred to Grewal et al. (2001) Step 3 Once the antenna reference point and satellite positions are known, SiGOG calculates the elevation and azimuth for each satellite and epoch.In this step, for each epoch, satellites with elevations lower than the elevation mask are rejected.
Step 4 Finally, once the geometric distance between satellite and antenna reference point, satellite clock error, and relativity correction are known, SiGOG generates the observables and records them in a RINEX observation file.The RINEX format was developed as an answer to the need of finding a common format in which to record GPS observations that is both independent of the receiver and compatible with any GPS processing software.Currently, this format includes six different types of files, among which are the observation and navigation formats used in SiGOG.All RINEX files consist of two distinct parts: the header section that registers the metadata (types of observables recorded, information about the receiver, institution, and other important information, as well as any comments) and the data section, with the actual data.For a detailed explanation of the RINEX format, interested readers are referred to Gurtner (2002).

SiGOG usage and compatibility
The SiGOG requires an input file (input.txt)with the data specified in step 1, as well as the orbit files (RINEX navigation format or precise IGS ephemeris).The usage is easy, just fill in the input file, compile the programme, and run it.The output is the RINEX observation file with the specified observables for the hypothetic antenna reference point position, date, and epochs specified in the input data.The SiGOG does not take into account the offsets from the antenna reference point to the L1 and L2 phase centres of the GPS antenna, nor the effect of the antenna phase pattern.
The SiGOG software was developed using the freely distributed G77 compiler, available for Linux and Windows, using CYGWIN in the latter case.The source code was also tested for the Intel Fortran compiler (Version 7.0 for Linux).

Testing SiGOG
In this section we will briefly summarize the results regarding the tests undertaken to check the performance of the SiGOG package.In order to evaluate the accuracy with which we are simulating the observables, they will be processed with a positioning software.The difference between the a priori coordinates and the computed ones will be taken as a maximum value for the SiGOG observation error.The real pseudorange accuracy is better than this value since errors in the coordinates are affected by a geometric dilution of precision factor (Hofmann-Wellenhof et al. 1994).We used the GPSpace (GPSpace, 2000) point positioning software to check the code observables, and the Trimble GPSsurvey (Version 2.35) differential positioning package to check the carrier phase observables.The code observable was tested for the ten stations listed in Table 1 using one day of data.The root mean square differences between the a priori coordinates and epoch by epoch C/A computed coordinates are shown in Table 2. Similar results are obtained when processing simulated P1 and P2 observations.Table 2 shows that, when using precise orbits, the positioning error is less than 1 dm, increasing up to the 2 dm level when using broadcast orbits.Regarding the carrier phase, Table 3 summarizes the root mean square differences between the a priori coordinates and epoch-by-epoch differential L1 computed coordinates.Similar results are obtained when processing differential L2 observations.From this table, we can conclude that, when using either, precise or broadcast orbits, these differences are below the centimetre level for both, the L1 and L2 carrier phase.This difference between the point position and differential position results (one order of magnitude) is related to orbit interpolation, the main error source in the simulation of GPS observables, which is significantly reduced with differencing.

Using SiGOG to provide differential corrections for real observations
In this section we test the performance of the SiGOG software as a DGPS that can be used to improve position estimates of real observational data.Given a reference station position, SiGOG simulates the same observations but free of errors.By differencing both types of observations (real ones minus simulated ones) at this reference station, we get the total amount of error for each satellite and epoch, which can then be used as the correction for the real observations of a receiver at an unknown position.In principle, the closer both stations are, the better the correction will be.
To test the improvement in the position estimates when using the differential corrections provided by SiGOG, we used the stations listed in Table 1 in pairs, one as the receiver of unknown position and the other as the reference station.In this way, the RINEX raw observational data files for BELG, PPT1, LVEG, WROC, and POTS (the unknown stations) were processed with the GPSpace point positioning software with and without the DGPS corrections derived from the reference stations VBCA, CHAB, BARA, GOPE, and BRUS, respectively.Data from three complete geomagnetically non-perturbed days (Disturbance Storm-Time Index, Dst, greater than )24) were processed.Provided with precise coordinate data for the ''unknown'' stations (ITRF2000 coordinates), the root mean square errors of the epoch-by-epoch C/A code observation point position estimates (using GPSpace software) when using precise ephemeris are listed in Table 4 for both the DGPS-corrected and the uncorrected real observational data.In this table the ionospheric free linear combination for the uncorrected real data is also shown.Table 5 lists the root mean square errors obtained when using broadcast ephemeris for the DGPScorrected and uncorrected raw data.
From Tables 4 and 5, it is clear that the use of the DGPS correction provided by SiGOG improves the estimation of all position coordinates, including the last base line with a length of more than 600 km (except for the east component at the POTS station when using precise orbits).The improvement is always more substantial for the vertical component, though the horizontal ones benefit from this DGPS correction, more clearly the smaller the base line.
Comparing in Table 4 the root mean square errors for non-corrected, DGPS-corrected, and ionospheric free linear combined raw observational data, it can be seen that the ionospheric error is the main error source for isolated single frequency receivers.The DGPS correction mitigates not only the ionospheric error but also other sources (ephemeris, mainly), as the root mean  square error corresponding to the ionospheric free combination is systematically bigger than the ones that correspond to the DGPS-corrected data for all base lines but the longest one, for which the base line is too long to guarantee error spatial correlation.
On the whole, a receiver using these DGPS corrections provided by SiGOG in near real time, could expect an improvement ranging between 30 and 90%, depending on the coordinate component and distance to the reference station.For base lines smaller than 130 km, a 70% improvement or better can be expected, achieving an accuracy level of 2 m.

Table 2
Root mean square differences in meters between a priori and epoch-by-epoch computed coordinates from SiGOG simulated C/A code observations

Table 5
Root mean square errors (m) in point positioning when using broadcast orbits for non-corrected and DGPS-corrected real observational data

Table 4
Root mean square errors (m) in point positioning when using precise orbits for non-corrected, DGPS-corrected, and ionospheric free non-corrected (P3) real observational data