I’m trying to propagate using a step handler added to the propagator and I wanted to know if it is possible to propagate without a final date. I mean, I want to propagate until the satellite reaches a certain altitude that will be checked with an AltitudeDetector. Is it always the final date a requirement for the .propagate method?
This use case is a classical one for lifetime analysis: estimating when the satellite will reach typically 100km altitude, at which time it will fall within the next orbit.
You must set up an end date, but you can user either AbsoluteDate.FUTURE_INFINITY or some date really far in the future (say 100 years), and set the event handler of the altitude detector to stop when the event occurs, for example using the predefined StopOnEvent handler.
In fact, I need the values of these elements
Could you give us the values of initialState, cs, and cd?
I think you can increase the integration step. 10 * SatInitialState.getKeplerianPeriod() is OK. Especially in that case because the propagation will stop based on an event detection. So, it can take some time.
I don’t know how Celetrak estimate the B* value and how much we can trust the value in the TLE to determine a Cd…
I think your problem is because Cd is small. So the drag effect has a small impact and the satellite altitude reduce slowly.
Could you try with a Cd value of 1.0?
Estimate drag drag coefficient is very difficult. Mainly because of the uncertainties of the solar activity. It can be estimated during an orbit determination. But I don’t know if it’s the method employed to compute TLE’s B*.
Did you use AbsoluteDate.FUTURE_INFINITY as recommended by Luc. I’m surprised that the propagation doesn’t stop for 100km.