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!

Shiva

Hi Shiva,

Welcome to the forum!

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

But:

  • 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.

Maxime

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,

Shiva