Hello everyone!

There is a small task. We need to calculate satelite coordinates at dispatch time. As the input we have RINEX obs file and RINEX navigation files (GPS and GLONASS).

I've made two estimations of needed coordinates: 1. by using PreciseRange Class and its ComputeAtTransmitTime method (unfortunately class doesn't work with GLONASS) 2. by tracing satellit coordinates in RAIM solver (PRSolution2 class).

The problem is that these solutions are very different, look:

G02 02/05/2013 03:02:41

-19747667.494 14216022.844 10179121.612

-19749080.595 14215978.826 10176342.614

What is the reason? Which method is right? Is there better way for this task which works with GLONASS too?

Thank you!

-- AntonScherbakov - 24 May 2013


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.

Hello Anton,

I am currently researching the reason for your differing solutions. I did have a question, how did you determine that GLONASS did not work with either class? Once navigation data has been read, it can be stored in the appropriate EphemerisStore variable, which can be passed to either class in place of the XvtStore parameter. This should work for both GPS(GPSEphemerisStore) and GLONASS(GloEphemerisStore).


-- BryanParsons - 28 May 2013

Yes, you are right. I was wrong. It seemed me that I saw comment like "for GPS only" in implementation of ComputeAtTransmitTime method. Apparently it was in other pice of code. PreciseRange should be working for GLONASS too.

-- AntonScherbakov - 29 May 2013

Hello again. Here some intermidiate results. I compared ComputeAtTransmitTime method of PreciseRange with SP3 final data. There is difference of ~100 meters. Is it normal result for navigation data?

Epoch 02/05/2013 03:15:00 GPS

SP3: -4106662.189 26098819.538 216849.545

NAV: -4106512.677 26098843.012 216849.445

P.S. As PR param of ComputeAtTransmitTime I set zero (to obtain position accurately at 03:15:00 GPS).

-- AntonScherbakov - 03 Jun 2013

Hello Anton,

The ComputeAtTransmitTime method was not written for easy transmit time computation at a specific time, in which transmit time and receive time are equal. Using a PR of zero will not give you an accurate result, as other bias' and delays that affect the time calculations aside from the pseudorange will cause offsets in your final nav data, which is calculated in an iterative fashion. As the code is now, it seems the coded number of iterations result in your difference in ~100 meters. If the number of iterations is increased, in order for the data to converge, then you may see data that matches up to your final SP3 data.

In order to verify the accuracy of ComputeAtTransmitTime, I suggest suggest you reverse your process (if possible). Rather than try to compute range at a specific SP3 time, you should acquire SP3 data for the final transmit time of the resulting nav data. To do this, just add code into the method to print the final transmit time used to calculate the final navigation data. Then compare the SP3 final data at the printed final transmit time to verify accuracy.

If it is not possible to reverse the process, then increasing the iterations should decrease the difference between the nav data and SP3 final data to marginal values.

I hope this was helpful.


-- BryanParsons - 07 Jun 2013

Thank you.

It was really helpful! I have compared XvtStore::getXvt with SP3 data at 15 minute intervals - it is almost the same.

So for computation position at transmit time I will use PreciseRange class. I doubt a bit about its proper work. Is there right way how to estimate precision of ComputeAtTransmit time? Ideally reference solution shoul be done without using of PreciseRange class.

-- AntonScherbakov - 10 Jun 2013

I have compared PreciseRange class results with several precise numbers. It works fine!

Question could be closed. Thanks to everyone especially to Bryan Parsons.

-- AntonScherbakov - 21 Jun 2013 No such template def TMPL:DEF{PROMPT:supportquery}

Topic revision: r9 - 12 Jun 2015, UnknownUser

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