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

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.

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???

Topic revision: r8 - 23 Nov 2011, PhamHoangLong
 

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