Hello everyone !
I’m currently using the Orekit Python wrapper. I want to perform orbit determination from a TDM file, with a reference TLE.
I read the content of my TDM file, which contains AZEL
angles (the ANGLE_1
and ANGLE_2
field, in the ObservationType
Orekit Enum), a DOPPLER_INSTANTANEOUS
field and RANGE
field. To be more precise, it’s like :
ANGLE_1 = 2021-05-08T02:43:51.3006590 106.100186
ANGLE_2 = 2021-05-08T02:43:51.3006590 20.694046
DOPPLER_INSTANTANEOUS = 2021-05-08T02:43:51.3006590 6.702923828
RANGE = 2021-05-08T02:43:51.3006590 540.789500
and I’ve got something like 1000 measurements in my TDM file.
So I build a Tdm
object from these measurements. I take a TLE file, of course from the same satellite, and I build a TLEPropagator
. I propagate the TLE, and finally I can get a KeplerianOrbit
. This KeplerianOrbit
is my reference orbit.
After that, I create an estimator, with a DormandPrince
integrator, a NumericalPropagatorBuilder
from my reference orbit, a matrix decomposer and an optimizer to use a BatchLSEstimator
to perform orbit determination.
I add all of my measurements contained in my TDM file in the estimator, and I run estimator.estimate()
.
Finally, I get an error :
the Jacobian matrix associated to the KEPLERIAN type is singular for the current orbit
.
I’m new on Orekit, so I’m not sure to understand everything of what I’m doing ahah but I don’t think that I’m doing something wrong, because finally the reference orbit obtained from the TLE is more precise than an IOD, and the measurements from the TDM file can improve the precision of the final orbit determination.
Here is my code, joined in the topic.
Thank you very much for reading my post !
Cheers,
Paul
Détermination d’orbite avec TDM et TLE de référence.py (15.7 KB)