Batch orbit estimation covariance matrix

Hi @AlessandroV

What type of estimator do you use? Recursive filter or least squares algorithms?

In both case, you can access the covariance matrix for each estimator step (i.e., each measurement for the recursive filter or each iteration for the least squares) by adding an observer to the estimator.
For the batch least squares the observer is represented by the BatchLSObserver class. For the recursive filter it is represented by the KalmanObserver class.
Both class is called by its corresponding estimator just after an estimation step. Therefore, it will provide fresh estimated parameters. Just not that both classes are interface, and Orekit doesn’t provide implementations. As a result, you will have to implement the interface.

An example of BatchLSObserver implementation in Python is available here: Custom BatchLSObserver with Python wrapper - #7 by Anthony-C31 The covariance information for the processed iteration is stored in the lspEval parameter. The covariance is available using lspEval.getCovariances(1.0e-10) (Note that you can access other iteration information like the RMS)

An example of KalmanObserver implementation in Python is available here: KalmanEstimator : KalmanObserver and negative eccentricity with NumericalPropagatorBuilder - #2 by aerow610 The covariance information for the processed measurement is stored in the estimation parameter. The covariance is available by using estimation.getPhysicalEstimatedCovarianceMatrix() (Note that you can access other parameters like the Kalman gain, the value of the estimated parameters, the predicted and corrected measurements, etc.)

Best regards,
Bryan