Hi,
DragSensitive
is an interface used to represent the geometry of the spacecraft for the drag perturbation. It has two implementations: IsotropicDrag
assuming that the spacecraft is spherical and BoxAndSolarArraySpacecraft
assuming the spacecraft is a box with solar panels. For a first use, I strongly recommend to use the IsotropicDrag
implementation. Please find an example below showing how to initialize a DragForce
.
final double cd = 2.0; // Use your value
final double area = 1.0; // Use your value
final boolean cdEstimated = true; // You want to estimate it
// Atmosphere model
final MarshallSolarActivityFutureEstimation msafe =
new MarshallSolarActivityFutureEstimation(MarshallSolarActivityFutureEstimation.DEFAULT_SUPPORTED_NAMES,
MarshallSolarActivityFutureEstimation.StrengthLevel.AVERAGE);
final DataProvidersManager manager = DataContext.getDefault().getDataProvidersManager();
manager.feed(msafe.getSupportedNames(), msafe);
final Atmosphere atmosphere = new NRLMSISE00(msafe, CelestialBodyFactory.getSun(), centralBody);
final DragForce drag = new DragForce(atmosphere, new IsotropicDrag(area, cd)), Constants.WGS84_EARTH_MU);
for (final ParameterDriver driver : drag.getParametersDrivers()) {
if (driver.getName().equals(DragSensitive.DRAG_COEFFICIENT)) {
if (cdEstimated) {
driver.setSelected(true);
}
}
}
You can find additional information on the following discussion: https://forum.orekit.org/t/using-nrlmsise-00-with-numerical-propagator/1875/3
Best regards,
Bryan