Issues with IodGooding

I am trying to use IodGooding for initial orbit determination with 3 azimuth/elevation readings but the results are quite unsatisfactory regardless of what values I use for the rho1init and rho3init parameters. Would anyone who has used this feature be willing to share their experiences or sample code?

I am initializing the 3 line of sight vectors as follows. Is this correct? azi and ele are arrays with 3 az/el readings in radians.

for (int i = 0; i < 3; i++)
los[i] = new Vector3D(FastMath.cos(ele[i])*FastMath.sin(azi[i]),
FastMath.cos(ele[i])*FastMath.cos(azi[i]), FastMath.sin(ele[i]));

Thanks in advance!


Hi Shiva,

Welcome to the forum!

I personally never used it so I’m not be the person you’re looking for.


  • There is one test (only…) in IodGoodingTest that may help set you up. It is not very thorough since all the stations are taken at the center of the Earth…We’ll have to improve that.
    It is said at the end of the test that “the problem is very sensitive, and unless one can provide the exact initial range estimate, the estimate may be far off the truth…”.
    So your issue may come from that ;
  • Your definition of the line of sight seems good to me provided you’re using the axis convention from the TopocentricFrame class;
  • When calling the estimate method be sure to convert all the vectors to the same inertial frame you used to create the class;
  • Finally, we have a known unresolved issue in the IodLambert algorithm (see issue #533 on the forge).
    Since IodGooding uses IodLambert to initialize the estimate, you may just have run into this issue…
  • If you think your problem comes from the latter point, and if you have time, we’ll be happy to have some sample code that shows the bug.


Thank you for the pointers, Maxime! I’ll look into these and see if I might be able to improve on the results.

Best wishes,


Hi Maxime
I needed to use Gooding method and I think I could fix the bug in IodLambert class. How can I submit my patch?


Hi @gabb

Welcome on the Orekit forum. Thank you for trying to solve the issue. Here you have a link that explain how contributing to Orekit. If you have any question, do not hesitate to ask them.