Convenience method to get standard covariance matrix from BatchLSEstimator
As the getOptimum() method returns a view of the low level mathematical
object
provided by the optimizer, all the data it contains is in the units as
seen by
the optimizer, i.e. rescaled.
So currently, the way to unscale this covariance matrix and get it back
to physical
scale exists but is not easy. Here is how you could do that:
- get all the drivers for estimated orbital parameters by calling
estimator.getOrbitalParametersDrivers(true) - get all the drivers for estimated propagators parameters by calling
estimator.getPropagatorParametersDrivers(true) - get all the drivers for estimated measurements parameters by calling
estimator.getMeasurementsParametersDrivers(true) - from these three lists, and in the retrieval order (i.e. orbit
drivers,
followed by propagators drivers, followed by measurements drivers),
build an unscaling array by using driverslist.getDrivers(),
and driver.getScale() - for each element (i, j) in the mathematical matrix from the optimum,
you should get the corresponding physical element by multiplying
by array[i] * array[j].
We should provide a convenience method in the estimator to do all
these parameters retrieval, scale extraction and multiplication
for users.
(from redmine: issue id 353, created on 2017-08-18, closed on 2017-11-25)