Orbit determination from measured PV data in ECEF

I’m a total newbee of Orekit Python wrapper.

Inspired by the code of GorgiAstro, I want to use the PV data (in WGS84) to determine a LEO satellite orbit.

The TLE is used for the IOD and the PV data has been transformed to ECI to feed the estimator.

However, when I use the bounded propagator to predict the future position after OD date, the errors goes up to several hundreds meters even several kilometers in 5 days compared to the real measured data.

Even within the time span of the feeded measurements before the OD date, the error between the bound propagator generated PV and the real measurements is still high I think (several hundreds meters).

I don’t know what is the problem, or, is it normal?

  • beacause of the API changes of Orekit 12.0, I have modified some code from GorgiAstro

  • I have tried different Cd and Cr values, some improves, but error is still in hundreds meters level

  • the measured PV data accuracy should be 10m level

the OD date is July-23 in screenshot. It’s almost the best result I got by far.

QuestionOfOD - copy.py (10.0 KB)

Hi @stevenxmas

Welcome to the Orekit forum! :slight_smile:

What is diff-od? Is it the difference between pv_tle and pv_od?

Best regards,

no it’s the difference between OD predicted PV and the measured PV (after the OD date)

i.e. pv_od and pv_tm in the code

I tried another set of data which was generated by a series of TLEs, the problem is still there. The OD predicted position error is much higher than the single TLE file.

For better understanding, the attached files includes the runnable code and input data file.
QuestionOfOD-technosat.py (10.3 KB)
cpfdata.csv (110.9 KB)