NodeDetector.estimateNodesTimeSeparation fails for hyperbolic orbits
Hyperbolic orbits still have one or two nodes so it is reasonable to try to detect it. The constructor for NodeDetector
attempts to create two different KeplerianOrbit
s with true anomaly separated by pi, which is the problem since some values of true anomaly are invalid. Workaround is to call the NodeDetector
constructor with an elliptical orbit and then withMaxCheck()
.
Back trace from a decidedly extreme test case:
org.orekit.errors.OrekitIllegalArgumentException: true anomaly 3.165 out of hyperbolic range (e = 592,962.934, -1.571 < v < 1.571)
at org.orekit.orbits.KeplerianOrbit.<init>(KeplerianOrbit.java:263)
at org.orekit.orbits.KeplerianOrbit.<init>(KeplerianOrbit.java:163)
at org.orekit.propagation.events.NodeDetector.estimateNodesTimeSeparation(NodeDetector.java:137)
at org.orekit.propagation.events.NodeDetector.<init>(NodeDetector.java:74)
at org.orekit.propagation.events.NodeDetector.<init>(NodeDetector.java:61)