Question
Hello again, Thank you so much for the explanation on the slant TEC. I tried to continue the questions under the original question but it did not work. 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 pie12440.070.new 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
--
CassandraMendonca - 30 Mar 2009
Answer
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.
Ms Mendonca,
Both DISCFIX and RESCOR read Rinex files and produce ERinex (Enhanced Rinex). If you read the headers in both the original and processed files, you should see that the processed files differ from the original. ERinex only differs from Rinex in that it uses nonstandard variables (like SP which is slant TEC) and that it can add
comments in different places in the code.
Here are my suggestions for how to run these programs. Given a random Rinex observation file from some receiver on day 1 of 2000, data0010.00o. First run DISCFIX to remove any discontinuities within phase measurements and to phase-smooth the pseudorange.
DiscFix? --inputfile data0010.00o --smooth --dt 30.0 --RinexFile dfdata0010.00o --DCWLFixMaxGap=3000 --DCGFFixMaxGap=250 --DCGFFixSigma=3.6
This will produce a new Rinex file called dfdata0010.00, which has replaced the original pseudorange with the phase smoothed values (the noise level is comparable to the noise measurements). Next run,
ResCor? -IF dfdata0010.00o -OF ionodata0010.00o --nav bdrc0010.00n -DSR --RAIM --RAIMhead --Callow -AOSP -AOSR -AOEL -AOAZ -AOLA -AOLO
This creates a new file ionodata0010.00o which contains the new variables
SR= Slant TEC (PR) in TECU
SP= Slant TEC (Ph) in TECU
EL= Elevation Angle in degrees
AZ= Azimuth Angle in degrees
LA= Lat Iono Intercept in degrees
LO= Lon Iono Intercept in degrees
The file bdrc0010.00n is the broadcast navigation message for the day.
You can type either
ResCor? or
DiscFix? to see the help function, and
ResCor? --ROThelp --REChelp is useful. You might find --IonoHt Height a useful command for
ResCor? where Height is the altitude of the ionospheric layer. If no height is given, the program defaults to 400 km.
Please let me know if this isn't helpful.
--
TrevorGarner - 03 Apr 2009
--
YanWei - 07 Apr 2009
--
OctavianAndrei - 31 Aug 2009
Dear Mr. Garner,
Although the
ResCor? help claims that
--nav parameter can be ephemerids in sp3 format, it seems that in practice does not work properly since it plots
0.000 for the last four elements (EL, AZ, LA, LO).
I run this command: ResCor? --IF dfkour1430.02o --OF ionokour1430.02o --nav igs11674.sp3 -DSR --RxXYZ 3839591.397,-5059567.567,579956.996 --Callow --IonoHt 450.0 -AOSP -AOSR -AOEL -AOAZ -AOLA -AOLO
and it outputs
02 5 23 0 0 0.0000000 0 11G05G06G09G15G17G18G21G23G25G29G30
110715941.99619 86272141.26417 21068559.3434 21068564.5524 49.6131
49.612 0.000 0.000 0.000 0.000
123512299.00019 96243325.78415 23503627.1964 23503633.0784 56.0231
56.022 0.000 0.000 0.000 0.000
124496839.02519 97010490.54315 23690985.9454 23690994.0954 77.6231
77.624 0.000 0.000 0.000 0.000
114693765.95619 89371741.34017 21825516.3474 21825522.2914 56.6141
56.613 0.000 0.000 0.000 0.000
113676752.13319 88579264.00516 21631984.3204 21631990.0274 54.3611
54.356 0.000 0.000 0.000 0.000
107301584.71419 83611607.67117 20418825.3224 20418829.4204 39.0331
39.031 0.000 0.000 0.000 0.000
117844402.91919 91826777.85716 22425066.6064 22425073.8374 68.8771
68.871 0.000 0.000 0.000 0.000
113981971.25619 88817097.59716 21690065.2034 21690070.7864 53.1761
53.175 0.000 0.000 0.000 0.000
125842197.45619 98058827.03915 23946995.1784 23947002.0454 65.4091
65.404 0.000 0.000 0.000 0.000
123790007.62819 96459718.33815 23556476.2454 23556483.0504 64.8141
64.813 0.000 0.000 0.000 0.000
106017335.37219 82610893.46618 20174441.1234 20174445.3274 40.0381
40.040 0.000 0.000 0.000 0.000
However, when I use the navigation message, i.e.
--nav kour1430.02n, the output file shows what is expected (elevation, azimuth, lat and lon iono):
02 5 23 0 0 0.0000000 0 11G05G06G09G15G17G18G21G23G25G29G30
110715941.99619 86272141.26417 21068559.3434 21068564.5524 49.6131
49.612 53.345 58.427 6.700 309.563
123512299.00019 96243325.78415 23503627.1964 23503633.0784 56.0231
56.022 21.078 163.761 -2.749 309.504
124496839.02519 97010490.54315 23690985.9454 23690994.0954 77.6231
77.624 17.428 26.672 13.807 311.589
114693765.95619 89371741.34017 21825516.3474 21825522.2914 56.6141
56.613 42.927 226.064 2.509 304.371
113676752.13319 88579264.00516 21631984.3204 21631990.0274 54.3611
54.356 41.057 204.155 1.424 305.490
107301584.71419 83611607.67117 20418825.3224 20418829.4204 39.0331
39.031 70.299 7.870 6.592 307.380
117844402.91919 91826777.85716 22425066.6064 22425073.8374 68.8771
68.871 35.550 334.378 9.769 305.008
113981971.25619 88817097.59716 21690065.2034 21690070.7864 53.1761
53.175 41.084 129.657 2.571 310.400
125842197.45619 98058827.03915 23946995.1784 23947002.0454 65.4091
65.404 17.412 254.826 2.677 297.968
123790007.62819 96459718.33815 23556476.2454 23556483.0504 64.8141
64.813 20.587 65.630 8.693 314.960
106017335.37219 82610893.46618 20174441.1234 20174445.3274 40.0381
40.040 72.584 123.757 4.589 308.179
The
RecCor? log shows:
ResCor?, part of the GPS
ToolKit?, Ver. 3.8 7/11/08 (editor 3.5 6/21/2007), Run 2009/08/31 11:36:17
Could you check and confirm that
RecCor? work properly with sp3 ephemeris?
--
OctavianAndrei - 31 Aug 2009
Related to previous post, everything is fine. I have forgotten to cover with sp3 ephemeris from the previous and following day.
And a few more questions:
- What is the meaning of a negative value for SP (SR)? Could you explain it for me?
- Are SP (SR) the STEC values at the receiver position? or at the ionospheric pierce point (i.e., for LA and LO values)?
- If I would like to calculate the slant iono bias in meters, is this the right formula? iono_bias [m] = 40.3 / (freq * freq) * SP(SR)
- Could SP(SR) be used as reference values in order to compare ionospheric delays derived from other models (e.g. klobuchar, sbas or gims) ?
Thank you.
Mr Andrei,
Let me address each question individually.
- What is the meaning of a negative value for SP (SR)? Could you explain it for me?
The TEC value returned in SP (the solution from the Carrier Phase) and SR (the solution from the pseudorange) is a combination of four physical values: the slant ionospheric electron content, the satellite interfrequency bias, the receiver interfrequency bias and noise. For the SR value, the noise can be large. For the SP value, the noise is very small, but the phase ambiguity can be large (The smooth option on
DiscFix? removes the phase ambiguity in the Carrier Phase). The Slant TEC is a positive definite value, but the interfrequency biases and noise are not. When the SP or SR values are negative, it means that
the interfrequency biases are larger then the ionospheric TEC. The satellite interfrequency biases are calculated by the JPL and broadcast in the navigation message. You can download the biases from the JPL or IGS website (
ftp://cddis.gsfc.nasa.gov/gps/products/ionex
/YYYY/DOY/igsgDOY0.YYi.Z) or use the --Tgd option for
ResCor?. There really isn't a good way to calculate the receiver's interfrequency bias, which is usually larger than the satellite's bias. Typically, you need a Kalman filter and a network of 70+ receivers to determine the receiver biases. When you get negative SP values, it is probably caused by larger receiver biases.
- Are SP (SR) the STEC values at the receiver position? or at the ionospheric pierce point (i.e., for LA and LO values)?
The STEC values represent the integrated electron densities along the line-of-sight between the receiver and the satellite. As such, the location of the STEC measurement can be anywhere along the line-of-sight. The ionospheric pierce point is where the GPS ray crosses a given altitude (for your example it is located at 450 km).
When the STEC is converted to the VTEC, the VTEC does change depending on the altitude that the user uses as a pierce point because the obliquity function contains this altitude.
ResCor? will calculate the VTEC at the height of the ionospheric pierce point specified by the user. The options are --AOVR --AOVP which correspond to SR and SP, respectively.
- If I would like to calculate the slant iono bias in meters, is this the right formula? iono_bias [m] = 40.3 / (freq * freq) * SP(SR)?
That is the right formula, where the frequency is given in Hz and the STEC is given in /m^2. You can also use iono_bias [m] = 0.403 / (freq [GHz} * freq[GHz]) * SP[TECu].
ResCor? will also return the ionospheric delay in meters by setting the RI, PI or XI. RI gives the ionospheric delay in meters for the L1 pseudorange. PI and XI give the ionospheric delay in meters for the L1 phase. L2 values can be obtained by multiplying these solutions by 1.646944 (or better (154/120)^2).
- Could SP(SR) be used as reference values in order to compare ionospheric delays derived from other models (e.g. klobuchar, sbas or gims)?
Probably, I would need to better understand how the comparisons are being made beforemaking a definitive statement. There a couple of caveats to remember. First, most of theionospheric delay models provide VTEC measurements and are independent of the user's geometry. Either the VTEC needs to be computed from the STEC measurements or the model VTEC values need to be converted to STEC along the ray path. Note the Klobuchar model gives a STEC value. Second, the measured STEC will contain interfrequency biases that will confuse the comparison, especially if these biases dominate (negative STEC values).
Good luck with your study and feel free to ask questions.
--
TrevorGarner - 09 Sep 2009
--
PhamHoangLong - 23 Nov 2011
Hello!
I have one question and answer, please!
Could applications "TECmaps" and "Ionobias" be used to determine properly VTEC map for regions, which do not lie in minlatitude=21 and minlongtitude=230???