Orbit Determination Performance

Hi all,

In order to see if Orekit is able to perform orbit determination for an important set of measurements (i.e. millions of measurements), I want to process performance testing on Orekit Orbit Determination features. To do that, I built a benchmark in my own fork of the Orekit tutorials project. It is in od-performance-testing branch, inside estimation.performance package.

Benchmark is able to:

  • Use user-defined measurements of generate measurements. The measurement generation has no limits: It generates measurements from a start date to an end date with a time step between measurements, all are user-defined. Therefore, a user can easily generate an important set of measurements (or a small set).

  • Take into consideration perturbation effects in the measurement generation (troposphere, ionosphere, satellite clock offset, station clock offset, satellite antenna offset, measurement biases and random noise).

  • Use all Orekit force models for dynamic modelling.

  • Use all Orbit Determination features of Orekit (i.e. selecting parameters to estimate, statistical results, etc.).

  • Perform Orbit Determination using Orekit’s Kalman Filter of Orekit’s Batch Least Squares Algorithm.

Benchmark is just 3 classes: one for measurement generation, one for orbit determination and one to handle the two previous. The user has just to use the third one.

To initialize the 3 classes of the benchmark, I wrote 3 input files using YAML format. Currently, these three files are adapted to my case of test (i.e. 40 ground station, noisy measurements, etc.). However, be free to change the values and play with the tool :slightly_smiling_face: An important point is that you can just change the values in the input files, not the name of the keys (This is a YAML drawback …).

Be careful that, if you generate an important set of measurements, measurement generation and orbit determination will take a lot of time.

I hope to get some results about Orekit OD performance next week.

Regards,
Bryan

This is great @bcazabonne ! :+1:

We were definitely lacking this test bench to test the limits of our OD algorithms.
With this we will be able to check the performance but also the accuracy with real measurements (like RINEX).

I don’t have time these days but I can’t wait to play with it! :grinning:

Maxime

Wow, this is great!

Any chance it will end up in the official tutorials?

Thank you Luc and Maxime!

Yes I will merge it in the official repository for tutorials.

Bryan