Hi experts, I’m new to Orekit.
I’m trying to develop a pipeline to do IOD from optical observations, then use all the thousands of data points for refining the Keplarian elements, then output usable TLEs. For the current stage, it’s a traditional single station, angle-only observation.
My testing camera is quite simple and cheap, gives me 8 arcsec resolution. With manual control, I can cover an arc of over 10 minutes for a single pass (> 120 deg distance on the sky). I suppose it is enough for the testing of the orbit determination pipeline and for generating an OD result with not too bad precision?
I searched the Orekit forum and found some example scripts to do orbit determination. Based on them, I produced my script, attached here: Dropbox - Forum - Simplify your life
(as you can see, my data is of quite high quality, with very low scattering, on the scale of one pixel.)
Now the script can do IodGooding and gave reasonable results. (I have a small function to estimate the range of the satellite. But with or without it, IodGooding always works to different extent.)
But in the batch LS part, it never succeeded.
I have tried different parameters, feeding different numbers of data points. (from just using a few data points, to a few dozens, to hundreds, till all of the 3000+ points.)
But it’s either a “true anomaly -109.956 out of hyperbolic range (e = 1, -3.142 < v < 3.142)” or a “Jacobian matrix for type KEPLERIAN is singular with current orbit”. (This particular satellite pass had a highest altitude of ~40 deg, so I’m not in the orbit plane, there shouldn’t be a singularity problem as I understood.)
I have tried to switch on/off the perturbations one by one but it does not affect the faulty result.
Is there anything obvious (or not so obvious) got wrong in my code?
Thank you for any help and comments!
==============
BTW, though I’m not using the Atmospheric Drag part of the code now, but when I tried to do so, there will be a bug report on this line:
msafe = MarshallSolarActivityFutureEstimation(‘DEFAULT_SUPPORTED_NAMES’,MarshallSolarActivityFutureEstimation.StrengthLevel.AVERAGE)
It seems maybe I’m writing ‘DEFAULT_SUPPORTED_NAMES’ in a wrong way. But I cannot find an example showing the correct way. Any suggestions on this?
===============
BTW, what do people normally do when the size and shape of a satellite is unknown but they still need to propagate the orbit? Any empirical formula? Maybe a correlation with brightness?