Orbit Determination with Initial TLE and GNSS from receiver

Hi. It’s my first time using Orekit, and I find it really cool.
I am doing a project for my class, and we want to do Orbit determination of a satellite that uses data from it’s GNSS receiver.
The GNSS data is in ECEF format. Position and Velocity.

Or more correct. Updating it’s TLE based on the GNSS Data. So I’m guessing propagation in some form?
This is for reentry, when TLE can’t be updated from the Ground Station.
Is there a tutorial for that or something similar?

Hi @Salla100,

Welcome to Orekit!

There’s a tutorial that does almost exactly what you need: TLEBasedOrbitDetermination.
The only difference is that it uses a SP3 file for the measurements, so only the positions in ITRF (or ECEF).

What you will have to do is parse your GNSS receiver file, and convert the positions/velocities into a list of Orekit PV measurements.
Beware that PV measurements must be created in the propagation/estimation frame, so in your case, you will have to convert the position/velocity of your GNSS data from ITRF/ECEF to TEME before creating the measurement (see here how a SP3 is handled in the tutorials as an example).



I’m getting a 403 Forbidden error for all the gitlab documentation for the orekit python wrapper, including the tutorial you linked here. Could you please look into the permissions settings?


Hi @noaahhh
This is expected. The forge is being migrated from one provider to another one.
See gitlab forge migration on monday february 12.
It seems it takes a little longer than expected.

1 Like

Migration of this service is now complete. Gitlab is back. Enjoy! :smiley:

1 Like

Thank you!

Thanks for the answers.
The examples also work with the python wrapper?

Hi @Salla100,

No it’s a Java example, you will have to write your own conversion to Python.
There’s an example of OD in Python here to help you, although this one is based on range measurements and uses a numerical propagator.