To briefly re-introduce the issue, the goal of this issue is to implement the possibility to interpolate state covariances using the blending method introduced in "EFFICIENT COVARIANCE INTERPOLATION USING BLENDING OF APPROXIMATE STATE ERROR TRANSITIONS" by Sergei Tanygin. Ultimately, this will be used inside the
Ephemeris class through a "getCovariance(interpolating date)" method.
To do so cleanly, I created a completely new architecture for interpolation through the addition of a
TimeInterpolator interface as well as its field equivalent. It is then implemented by classes specialized in interpolating specific objects. This new architecture is very modular and also redefine the architecture of
I think that with this addition, we could completely delete the existing
TimeInterpolable interface. I already talked about this with @pascal and @MaximeJ but I would like to hear your thoughts on this @luc, @bryan and @Serrof please
TimeInterpolable interface but I will not delete it until I have your go.
Finally, this merge request needs Hipparchus issue 244 in order to be implemented.
You'll also find attached a short technical paper explaining the implementation and results obtained using this blending method compared to standard interpolation : Implementation_of_covariance_interpolation_in_Orekit-1.pdf
UPDATE: This merge request is almost done. In addition to the review of @Jasquier (many thanks to him for this tremendous task !), i'll put below a task list of what i've personally checked :
Added TimeInterpolator interface and its implementations for all classes implementing the
TimeInterpolableinterface (except for
Added warning about Runge's phenomenon to all Hermite interpolators
Copy specific javadoc of old interpolate methods to the interpolate method of new equivalent interpolator classes.
Moved tests of old interpolate methods to their new equivalent interpolator tests classes.
TimeInterpolableInterface and associated interpolate method in implementing classes (except for
Ensure a test coverage of > 95% for added code
Fix state covariance (velocity part) interpolation expressed in local orbital frame that are not considered pseudo-inertial. EDIT : It turns out that it was not an issue but the normal behaviour after investigation.