Use mean drag coefficient in extrapolation after estimation

Hi everyone,

During orbit restitution, I estimate several drag coefficicients (using TimeSpanDragForce).
When I finally perform an orbit extrapolation, the last estimated drag coefficient will be considered (If I’m rigth, as I use the method addDragSensitiveValidAfter(), the last estimated Cd is valid for the extrapolation part)

My question is what is the best method to use a different drag coefficient for extrapolation, for example, the mean of all estimated drag coefficients.

To perform the final extrapolation, I use this piece of code:
Propagator[] od_propagators = estimator.estimate();
Propagator propagator = od_propagators[0];

propagator.propagate(ephem_start_date, ephem_stop_date);

I thought about updating the variable “propagator” by updating a Cd valid for extrapolation part, but I don’t think this is possible.
Another method would be to construct a whole new propagator using NumericalPropagatorBuilder, but this seems kind of tedious.
What would be the best approach ?

Many thanks,
Anthony

Hi @Anthony-C3,

Welcome back to the forum !

The new propagator from builder would be the cleanest approach since you’re changing the model.

However, there are quickest methods. For example, you can get the last ParameterDriver of TimeSpanDragForceusing its name and change its value directly.
Something like:
estimator.getPropagatorParametersDrivers(true or false).findByName("myDriverName").setValue(myNewValue);

Or directly in the force model of the estimated propagator:

for (ParameterDriver driver : TimeSpanDragForce.getParametersDrivers()) {
    if (driver.getName().equals("myDriverName") {
        driver.setValue(myNewValue);
    }
}

(Note that I haven’t tested this code)

Hope this helps,
Maxime

Hi Maxime,
Thanks for your reply
I implemented the second solution and it’s working just fine!
Anthony