Hello, I am a graduate student at the University of New Mexico doing research into the ionosphere. I am an Electrical Engineer and so I have never worked with RINEX files before. I was directed to your toolbox suite and I have been looking over that. I want to find the absolute slant TEC from the observation files. I have learned that the ambiguities and biases of the carrier phase and pseudorange play a huge role. when your tool solves for the TEC does it ignore this? I was wondering if there is someone I might discuss this with? It may be easier over the phone? I have spent a lot of time pouring over the different Kalman filters and such and I would like to know if there is an easy fix to this problem so I can get on with the rest of my research.

Cassandra Mendonca

-- CassandraMendonca - 19 Feb 2009


ALERT! If you answer a question - or have a question you asked answered by someone - please remember to edit the page and set the status to answered. The status is in a drop-down list below the edit box.

Dear Ms. Mendonca,

I am going to provide you with a short background for how the slant TEC can be obtained from GPS measurements and a discussion of the different biases that are involved. I will explain what GPStk does and does not do in calculating the TEC, and explain why it does not do what it does not do. Because there are a few different ways to calculate the slant TEC in GPStk, I may not address your specific question. If you have a question about a specific process, I will need to know the details of your processing. Please excuse the introductory primer if you are familiar with the physics behind the GPS TEC measurement, but it helps me to define all of the possible errors in the measurement.

As the GPS signal passes through the ionospheric plasma, it is refracted and slowed. This bending and time delay is minuscule, but the GPS system is designed to be sensitive to tenths of nanoseconds. Typical ionospheric delays are in the tens of nanoseconds. Plasma is a dispersive medium, and delays the two GPS frequencies differently. GPS receivers are able to distinguish two separate observables at each frequency. These are the carrier phase and the psuedorange. The carrier phase is just the count of the number of waves that the receiver sees after it has acquired a lock on a given satellite. The second measurement is the psuedorange, which is a speed of light in a vacuum times the difference in the clock time from the decoded GPS message and the receivers clock time. Basically it is the time difference between when the signal left the satellite and when it gets to the receiver. However, there is no way to ensure that the clocks on the satellites and the receivers all start at the same time. So every satellite and receiver has an unknown clock bias. Similarly, the phase lock loops (PLL) used to count the carrier phase all begin counting with a random integer which is the phase ambiguity.

The slant ionospheric TEC can be obtained by differencing either the psuedoranges between the frequencies or the product of the wavelength and the carrier phase. The psuedorange difference is the most direct measurement of the TEC in that it is just the TEC (expressed in meters) plus the interfrequency bias in the satellite and the receiver and the differences between psuedorange noise terms between the channels. The phase difference is the negative of the TEC (in meters) plus the interfrequency biases, the phase noise difference and the difference in the phase ambiguities on each channel. The interfrequency biases are the time delays within the hardware caused by different path lengths from the receiver through the PLLs to the computer. They can also be viewed as the difference between the clock biases in L1 and L2. All total there are 2 equations for the slant TEC and 5 unknowns (the TEC, the differences in the interfrequency biases, the 2 noise difference and the phase ambiguity differences). Thus, the true absolute slant TEC cannot be known from a single slant measurement, and some form of solver is needed to calculate all of the unknowns.

The phase ambiguities have two problems. The first is discontinuities in the phase caused by cycle slips (where the PLL skips a few cycles) and short loss-of-lock events (where the PLL restarts counting the cycles from a new random number). These discontinuities are fixed in a linear continuity of the phase and psuedorange measurements that removes the ionospheric term. The second problem is that the magnitude of the phase ambiguities tends to be millions of cycles. The phase ambiguities can be removed by debiasing the phase, which is a process of subtracting the mean of the phase from the phase and adding the mean psuedorange. In GPStk, the phase discontinuity correction and phase debiasing are performed in the program DISCFIX.

The noise in phase in at least two orders of magnitude less than the noise in the psuedorange. So a more precise slant TEC is obtained from the debiased phase. However, this measurement will still contain the satellite and receiver interfrequency biases. The navigation message contains Tgd values, which are the official estimates of the satellite interfrequency biases. The GPStk program RESCOR will calculate the ionospheric TEC. There is a flag in RESCOR that removes the Tgd reported in the navigation message. The errors on the satellite interfrequency biases tend to less than 0.5 nanoseconds. However, there is not an easy way in which to remove the receivers interfrequency bias. They need treated by a solver and the GPStk does not have a method for estimating the receiver bias.

So the short answer to your question is:
  1. Run DISCFIX to correct for phase discontinuities and ambiguities.
  2. Run RESCOR to calculate the slant TEC and remove the satellite interfrequency bias.
  3. Create your own solver to calculate the receiver bias.
Please let me know if this does not answer your question.

-- TrevorGarner - 20 Feb 2009

An uncommonly clear explanation! Very helpful thanks

-- DominicFuller - 15 Mar 2009

Hello again, Thank you so much for the explanation. I want to ask some more questions. I have installed and tested the build which has gone well and I also ran some the first two example codes which went well. I am now trying to run the DISCFIX and the RESCOR. Do I need to read and write the file first and then the DISCFIX? I ran just the Discfix by itself and gave it an obs file but I am not sure what myprn is. I followed the instructions and just gave myprn 1. when I compile I don't get any errors but when I ./example it says the actual file name on the next line and when I look at this it is just like a RINEX file. Would you be able to give instructions on how I run the discfix and rescor and then how do I output the files to look at?

Thanks again,

Cassandra Mendonca action_save=1

-- CassandraMendonca - 30 Mar 2009

Dear TrevorGarner!

First, thanks for your great explaination about ionospheric . I'm interest in SlantTec these days, and here is a question for you.

I calculate SlantTec with a PPP strategy. That mean I estimate SlantTEC along with receiver position, clock, tropospheric and ambiguities from "P1 P2 L1 and L2". the receiver bias and satellite interfrequency are remove by the DCB file from CODE. My question is how can I know the estimated SlantTEC is right? Some one check it with zero baseline, and do you know any better way to check it?

Thank you in advance.

Wei Yan

-- YanWei - 23 Mar 2010

Dear GPSTK, Thanks for providing full sophisticated programmes to compute somany gps applications, we have been trying to retrieve TEC from gps reciver data, we could not get output file of ResCor?, we have followed following syntax, please kindly help to get Slant TEC and its spatial maps. DiscFix? --inputfile bela1500.14o --smooth --dt 30.0 --forceCA --Rinexfile dfbela150.14o ResCor? --IF dfbela150.14o --OF iono150.14o --nav igs17424.sp3 --DSR --RxXYZ 1919020.1485 5511052.6614 2565510.704 --Callow --IonoHt 450.0 Rescor:Getcommandline caught an unkown exception end ResCOr? So please kindly help us to run both DiscFIx? and ResCor? successfully and get TEC values regards c.p.simha,Scientist

-- CPrasannaSimhaSimha - 30 Dec 2014

-- PanagiotisElias - 26 Jan 2015 No such template def TMPL:DEF{PROMPT:supportquery}

Topic revision: r9 - 26 Jan 2015, PanagiotisElias

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback