Inertial to LOF conversions

I’m a bit confused about the transformations from inertial to LOF (and vice-versa). I think there’s a mismatch between my expectations and the orekit implementation that I would like some help understanding.

I’ve been playing with Cartesian covariance transformations (implemented in StateCovariance) from inertial to LOFType.VNC. When comparing the original covariance with the transformed covariance, my expectations were that

  • the covariance transformation would be a rotation (which it is)
  • the position component (top LHS 3x3) would have the same shape (e.g. same eigenvalues), but different orientation (which it does)
  • the velocity component (bottom RHS 3x3) would have the same shape, but different orientation (which it doesn’t)

In my tests the eigenvalues of the velocity part are different from the original. I had a look at Vallado, but I couldn’t see an explicit mention of LOF/inertial velocity transformation. Could someone please point me in the direction of a suitable reference, or even better, explain why there’s this mismatch in the velocity parts?

I’ve had a look at the latest develop code, and I think what I need is the new “frozen” local orbital frames introduced by @Vincent? i.e. I need to use LOFType.VNC_INERTIAL rather than LOFType.VNC.

Hi @markrutten, it is indeed as you explained in your posts.

If you want a more detailed explanation, i suggest you to look at this paper from Vallado :
Covariance Transformations.pdf (333.8 KB). Beware that (from what i’ve read so far) LOF are often considered pseudo-inertial. It is also the case in the linked paper above.

Unfortunately you’ll have to wait for the 12.0 to be able to easily switch between inertial and frozen LOF frame for the StateCovariance.


Thanks @Vincent. That paper is really helpful!

So, if I understand correctly, the current inertial to LOF frame transformation doesn’t use (20) from the paper (with Pcart = Peci), it uses something like (18), where the Earth rotation rate is included (and J1 = [RSW]')? But the new inertial LOF frames use Pcart=Peci in (20) directly?

No worries about waiting for 12.0. It’s very useful to know the difference between the current LOF frames and the inertial ones.

Yep, that’s exactly it !