I’ve been looking at collision probability calculations, both the orekit implementations and the NASA CARA Matlab code, which is on github and is documented in their handbook. The 2D Pc calculation NASA recommends is a judicious choice between the “Elrod” algorithm (I have an orekit implementation almost ready!) and Alfano’s 2005 algorithm. The Elrod algorithm is the same as Alfano’s, just uses Gauss-Chebyshev for the quadrature rather than Simpson’s method.
What’s interesting is the direction chosen for the quadrature vs analytical calculation. In Alfano (and the orekit implementation reflects this), the numerical integration is over the minor axis of the diagonalised covariance. Whereas the NASA algorithm performs quadrature over the major axis. The NASA convention makes sense to me (i.e. numerically integrate over the smoother dimension), but I assume that Alfano would have chosen the minor axis for a reason.
My question … is my interpretation correct? And is the integration axis an option we should offer for the Alfano code?
I have implemented integration over a square region, which I believe matches the method that the US Space Force use. I also have a nice (unpublished) approximate algorithm that is a weighted sum of the Pc from two square Pc’s outside and inside the hard body radius, based on moment matching to the circular integral. It’s literally just Pc_outer * pi/8 + Pc_inner * pi/4 and gives a few digits of accuracy most of the time, with Pc_outer and Pc_inner being (coarse) upper and lower bounds on the true Pc.
Glad to hear about that ! By the way, my implementation of the collision package was my first “architectural” thingy in orekit so there are surely things to improve about it. Feel free to tag me on those.
I guess it does, @Serrof is much more proficient on this subject than me.
It would be interesting to run some tests with this other mode.
Can’t wait to see the paper and the (Orekit) implementation as well .
Thanks @Vincent! Your collision package structure has made it super easy to extend with a different 2D algorithm.
I’ve started with a small Hipparchus pull request for the quadrature scheme that Elrod uses.
To be fair to Elrod, the algorithm was described in his doctoral thesis and wasn’t a separate publication. The NASA CARA team are using the name to distinguish between a fixed-order quadrature (Elrod) and an adaptive quadrature (Alfano).
Ha, definitely. The implementation is almost trivial.