DOUBLE DIFFERENCE PSEUDORANGE, KINEMATIC

Dennis Milbert

Updated:  2-may-02

The program, gpr1f, takes a gmerge file, a precise orbit in SP3 format, and computes the position series for point 2 using single frequency (L1), double difference pseudoranges.

Contents




Operation

The program operates in the DOS window. Alternatively, you can simply run "gpr1f.exe" with a double click or with "Run..." in your "Start" menu. (I use the DOS window myself.)

Two files are needed for input. Two files are generated as output. The names are fixed. The files must be in the subdirectory where you are working.

Input Files:

gmerge.out -- ASCII, "gmerge" format. This is merged pseudorange and carrier phase, at a common interval and data rate. The first station (point1) is assumed fixed, and the second station (point 2) can be fixed or moving. Follow the link for information on making a gmerge file.

orbit.sp3 -- ASCII, SP3 format, precise orbit.

Output Files:

gpr1f.lst -- ASCII, listing. Just a simple log file confirming processing.

gpr1f.out -- ASCII, position listing. This contains the coordinate solution for each epoch of the L1 phase center.

Discussion:

The double difference pseudorange is something of a "classic" solution. The double difference cancels clock error in the GPS satellites (tiny) and in the GPS receivers (not tiny). What's left is orbit error, atmospheric error, and local (multipath and noise). Bottom line, double differences have a slow increase in error when increasing station separation. This makes double difference pseudorange superior to DGPS, and why some manufacturers use it as a post-processing option. Precise orbits are very good, leaving atmosphere error (iono and tropo) and multipath error in the residuals.

This version, gpr1f, is a kinematic solution.


gmerge Format

This is a simple ASCII, flat file. The header contains exactly 14 records. The 14-th record indicates how many epoch sets follow.

Each epoch set consists of an epoch header and a number of data records. There is one data record for each satellite in the epoch.

Here is the detailed gmerge format file. Follow the link for more information on making a gmerge file.

Here is a sample gmerge.out file. It was generated between two CORS stations, SEAT to SEAW, for 3 epochs of data. Note the null values (99999999.999) generated whenever a given data element is not available. Time is in seconds from midnight (GPS time) of the day in the first record of the file (20jan2002).


SP3 Format

Precise orbits are distributed in a format called SP3. The format is available from NGS and here. If you need the orbits themselves, they are easy to get from NGS at their CORS site.

Here is a sample igs10711.sp3 (316K) SP3 orbit. It is a precise orbit solution computed by the International GPS Service (IGS). (It was also concatenated with the next day's orbit.) Note that if there is an entry of "999999.999999" in the clock field, then that satellite can't be used for that epoch.


Output Format

This is a simple ASCII, flat file. Two records per station. The file name is very simple, "pos" -- no extention. This file functions as a mini-database of authoritative coordinates. The file is mandatory. However, if a given station is not found in the pos file, then the RINEX header is used for station coordinates instead.

The format is a simple adaptation of the National Geodetic Survey "Blue Book" format.

01-08  time, seconds past midnight, GPS time
09-23  geodetic latitude,  decimal degrees, positive north
24-38  geodetic longitude, decimal degrees, positive east
39-48  ellipsoidal height, meters, positive up
49-52  number of double differences in epoch

Here is an example gpr1f.out file. It was extracted from results from the CORS stations SEAT to SEAW for 20jan2002.


Shortcomings

This is "no frills" software. There are no warranties of any sort. No Windows GUI. Just the core function.

You must have the 2 input files with the names above. The program will overwrite any existing "gpr1f.lst" and "gpr1f.out" file in the working directory.

The program does not currently apply phase center variation with vertical angle. The program does not currently apply any ionosphere correction, or a troposphere model. Results will degrade with distance. Also, the double differences are treated as uncorrelated.


Source Code and Binary Executable

The Fortran source code is gpr1f.for.

The compiled executable (zipped) is gpr1f.exe.


Links to Other Pages

Sources of SP3 GPS precise orbit data




To Contact Me

My e-mail user name is the first initial of my first name followed by all the letters of my last name (see above). My ISP is "comcast", and it is a "dot-net", not a "dot-com". Sorry for not spelling out my e-mail address, but I try to keep the spam-bots from fingering me. But, just so the spam-bots don't feel left out, they can always go to abuse@comcast.net


Back To Home