I currently have an Orekit Kalman Filter setup and am successfully running it. Since it can take a couple of minutes to run the orbit determination, I added an update function to the KalmanObserver’s evaluationPerformed method so that I can see the progress. Specifically I am using a Python module called tqdm (https://github.com/tqdm/tqdm) which has a very low overhead.
While running through ~1500 measurements spanning 1 week (Position, Range, RangeRate, & AngularAzEl types), I noticed that the time for each step to be performed takes longer and longer. For example, it starts out processing ~30 iterations per second, however by the time it gets to the end, this number drops to 2-3 iterations per second. When I processed 2 weeks worth of data (~3700 measurements) it slowed to less than 1 iteration per second by the end, and took ~40 minutes.
I have tried initializing the JVM with more memory, running without tqdm, deleting Orekit-class variables after their use, and using the toString method to output my state vectors. However none of this has resulted in any noticeable speed increase. Is there anything that I am missing or ways to streamline the processing?
Happy to provide a code sample/measurements if it helps.