Commit 4543c03e authored by Bryan Cazabonne's avatar Bryan Cazabonne
Browse files

Merge branch 'develop' of https://gitlab.orekit.org/orekit/orekit-tutorials.git into develop

parents 68bce980 4cf60daa
......@@ -141,7 +141,7 @@ public class EarthObservation {
// Register the switching events to the propagator
attitudesSequence.registerSwitchEvents(propagator);
propagator.setMasterMode(180.0, (currentState, isLast) -> {
propagator.getMultiplexer().add(180.0, currentState -> {
final DecimalFormatSymbols angleDegree = new DecimalFormatSymbols(Locale.US);
angleDegree.setDecimalSeparator('\u00b0');
final DecimalFormat ad = new DecimalFormat(" 00.000;-00.000", angleDegree);
......
......@@ -23,6 +23,8 @@ import java.io.PrintStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
......@@ -51,6 +53,15 @@ import org.orekit.data.DataContext;
import org.orekit.data.DataProvidersManager;
import org.orekit.data.DirectoryCrawler;
import org.orekit.errors.OrekitException;
import org.orekit.files.ccsds.definitions.BodyFacade;
import org.orekit.files.ccsds.definitions.FrameFacade;
import org.orekit.files.ccsds.definitions.TimeSystem;
import org.orekit.files.ccsds.ndm.WriterBuilder;
import org.orekit.files.ccsds.ndm.odm.oem.OemMetadata;
import org.orekit.files.ccsds.ndm.odm.oem.OemWriter;
import org.orekit.files.ccsds.ndm.odm.oem.StreamingOemWriter;
import org.orekit.files.ccsds.section.Header;
import org.orekit.files.ccsds.utils.generation.KvnGenerator;
import org.orekit.forces.gravity.HolmesFeatherstoneAttractionModel;
import org.orekit.forces.gravity.ThirdBodyAttraction;
import org.orekit.forces.gravity.potential.GravityFieldFactory;
......@@ -190,10 +201,13 @@ public class Phasing {
final double mst = TimeComponents.parseTime(inputData.getMeanSolarTime()).getSecondsInUTCDay() / 3600;
final int degree = inputData.getGravity().getDegree();
final int order = inputData.getGravity().getOrder();
final String gridOutput = inputData.getOutputBaseName();
final String objectName = inputData.getObjectName();
final String objectId = inputData.getObjectId();
final List<TutorialGrid> grids = inputData.getGrids();
final double[] gridLatitudes = new double[grids.size()];
final boolean[] gridAscending = new boolean[grids.size()];
final double oemStep = inputData.getOemStep();
final double oemDuration = inputData.getOemDuration();
// Fill arrays
int index = 0;
......@@ -236,7 +250,7 @@ public class Phasing {
double deltaV = Double.POSITIVE_INFINITY;
int counter = 0;
while (deltaP > 1.0e-3 || deltaV > 1.0e-6) {
while (deltaP > 1.0 || deltaV > 1.0e-3) {
final CircularOrbit previous = orbit;
......@@ -277,11 +291,47 @@ public class Phasing {
eccentricityFitter.cx, eccentricityFitter.cy);
// generate the ground track grid file
try (PrintStream output = new PrintStream(new File(input.getParent(), gridOutput), StandardCharsets.UTF_8.name())) {
final File gridFile = new File(input.getParent(), objectName + ".grd");
try (PrintStream output = new PrintStream(gridFile, StandardCharsets.UTF_8.name())) {
for (int i = 0; i < gridLatitudes.length; ++i) {
printGridPoints(output, gridLatitudes[i], gridAscending[i], orbit, propagator, nbOrbits);
}
}
System.out.println(gridFile.getAbsolutePath() + " generated");
if (oemStep > 0) {
// generate ephemeris
// prepare header
Header header = new Header(3.0);
header.setCreationDate(new AbsoluteDate(LocalDateTime.now(ZoneId.of("Etc/UTC")).toString(), TimeScalesFactory.getUTC()));
header.setOriginator("CS GROUP");
// prepare template for metadata
OemMetadata metadataTemplate = new OemMetadata(4);
metadataTemplate.setObjectName(objectName);
metadataTemplate.setObjectID(objectId);
metadataTemplate.setCenter(new BodyFacade("EARTH", CelestialBodyFactory.getCelestialBodies().getEarth()));
metadataTemplate.setReferenceFrame(FrameFacade.map(orbit.getFrame()));
metadataTemplate.setTimeSystem(TimeSystem.UTC);
final String oemName = objectName + ".oem";
final File oemFile = new File(input.getParent(), oemName);
try (PrintStream output = new PrintStream(oemFile, StandardCharsets.UTF_8.name());
KvnGenerator generator = new KvnGenerator(output, OemWriter.KVN_PADDING_WIDTH, oemName, -1);
StreamingOemWriter sw = new StreamingOemWriter(generator,
new WriterBuilder().buildOemWriter(),
header, metadataTemplate)) {
// let the propagator generate the ephemeris
propagator.resetInitialState(new SpacecraftState(orbit));
propagator.getMultiplexer().clear();
propagator.getMultiplexer().add(oemStep, sw.newSegment());
propagator.propagate(orbit.getDate().shiftedBy(oemDuration));
}
System.out.println(oemFile.getAbsolutePath() + " generated");
}
}
......@@ -352,8 +402,8 @@ public class Phasing {
final AbsoluteDate start = initial.getDate();
// sample orbit for one phasing cycle
propagator.setMasterMode(60,
(state, isLast) -> observed.add((CircularOrbit) OrbitType.CIRCULAR.convertType(state.getOrbit())));
propagator.getMultiplexer().clear();
propagator.getMultiplexer().add(60, state -> observed.add((CircularOrbit) OrbitType.CIRCULAR.convertType(state.getOrbit())));
propagator.propagate(start, tEnd);
// compute mean semi-major axis and mean inclination
......@@ -850,6 +900,12 @@ public class Phasing {
*/
public static class TutorialPhasing {
/** Name of the object. */
private String objectName;
/** Id of the object. */
private String objectId;
/** Orbit data. */
private TutorialOrbit orbit;
......@@ -877,8 +933,43 @@ public class Phasing {
/** List of grid data. */
private List<TutorialGrid> grids;
/** Name of the ground track grid file. */
private String outputBaseName;
/** OEM step size. */
private double oemStep;
/** OEM duration. */
private double oemDuration;
/**
* Get the name of the object.
* @return the name of the object.
*/
public String getObjectName() {
return objectName;
}
/**
* Set the name of the object.
* @param outputBaseName name of the ground track grid file
*/
public void setObjectName(final String objectName) {
this.objectName = objectName;
}
/**
* Get the id of the object.
* @return id of the object.
*/
public String getObjectId() {
return objectId;
}
/**
* Set the id of the object.
* @param objectId id of the object
*/
public void setObjectId(final String objectId) {
this.objectId = objectId;
}
/**
* Get the orbit data.
......@@ -1025,19 +1116,35 @@ public class Phasing {
}
/**
* Get the name of the ground track grid file.
* @return the name of the ground track grid file.
* Set the OEM step size.
* @param oemStep OEM step size
*/
public String getOutputBaseName() {
return outputBaseName;
public void setOemStep(final double oemStep) {
this.oemStep = oemStep;
}
/**
* Set the name of the ground track grid file.
* @param outputBaseName name of the ground track grid file
* Get the OEM step size.
* @return OEM step size
*/
public double getOemStep() {
return oemStep;
}
/**
* Set the OEM duration.
* @param oemStep OEM duration
*/
public void setOemDuration(final double oemDuration) {
this.oemDuration = oemDuration;
}
/**
* Get the OEM duration.
* @return OEM duration
*/
public void setOutputBaseName(final String outputBaseName) {
this.outputBaseName = outputBaseName;
public double getOemDuration() {
return oemDuration;
}
}
......
......@@ -153,8 +153,8 @@ public class PropagatorConversion {
// Set up operating mode for the propagator as master mode
// with fixed step and specialized step handler
numProp.setMasterMode(60., numStepHandler);
kepProp.setMasterMode(60., kepStepHandler);
numProp.getMultiplexer().add(60., numStepHandler);
kepProp.getMultiplexer().add(60., kepStepHandler);
// Extrapolate from the initial to the final date
numProp.propagate(initialDate, initialDate.shiftedBy(10. * period));
......@@ -243,7 +243,7 @@ public class PropagatorConversion {
}
/** {@inheritDoc} */
public void handleStep(final SpacecraftState currentState, final boolean isLast) {
public void handleStep(final SpacecraftState currentState) {
// add the current state
states.add(currentState);
......
......@@ -123,7 +123,7 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setGravity(final DSSTPropagatorBuilder propagatorBuilder,
final OneAxisEllipsoid body) {
final OneAxisEllipsoid body) {
// tesseral terms
final DSSTForceModel tesseral = new DSSTTesseral(body.getBodyFrame(),
......@@ -137,7 +137,7 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
// gather all drivers
final List<ParameterDriver> drivers = new ArrayList<>();
drivers.addAll(tesseral.getParametersDrivers());
drivers.addAll(zonal.getParametersDrivers());
drivers.addAll(tesseral.getParametersDrivers());
return drivers;
}
......@@ -145,9 +145,9 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setOceanTides(final DSSTPropagatorBuilder propagatorBuilder,
final IERSConventions conventions,
final OneAxisEllipsoid body,
final int degree, final int order) {
final IERSConventions conventions,
final OneAxisEllipsoid body,
final int degree, final int order) {
throw new OrekitException(LocalizedCoreFormats.SIMPLE_MESSAGE,
"Ocean tides not implemented in DSST");
}
......@@ -155,9 +155,9 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolidTides(final DSSTPropagatorBuilder propagatorBuilder,
final IERSConventions conventions,
final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final IERSConventions conventions,
final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
throw new OrekitException(LocalizedCoreFormats.SIMPLE_MESSAGE,
"Solid tides not implemented in DSST");
}
......@@ -165,7 +165,7 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setThirdBody(final DSSTPropagatorBuilder propagatorBuilder,
final CelestialBody thirdBody) {
final CelestialBody thirdBody) {
final DSSTForceModel thirdBodyModel = new DSSTThirdBody(thirdBody, gravityField.getMu());
propagatorBuilder.addForceModel(thirdBodyModel);
return thirdBodyModel.getParametersDrivers();
......@@ -174,7 +174,7 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setDrag(final DSSTPropagatorBuilder propagatorBuilder,
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final DSSTForceModel dragModel = new DSSTAtmosphericDrag(atmosphere, spacecraft, gravityField.getMu());
propagatorBuilder.addForceModel(dragModel);
return dragModel.getParametersDrivers();
......@@ -183,7 +183,7 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolarRadiationPressure(final DSSTPropagatorBuilder propagatorBuilder, final CelestialBody sun,
final double equatorialRadius, final RadiationSensitive spacecraft) {
final double equatorialRadius, final RadiationSensitive spacecraft) {
final DSSTForceModel srpModel = new DSSTSolarRadiationPressure(sun, equatorialRadius,
spacecraft, gravityField.getMu());
propagatorBuilder.addForceModel(srpModel);
......@@ -200,7 +200,7 @@ public class DSSTOrbitDetermination extends AbstractOrbitDetermination<DSSTPropa
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setPolynomialAcceleration(final DSSTPropagatorBuilder propagatorBuilder,
final String name, final Vector3D direction, final int degree) {
final String name, final Vector3D direction, final int degree) {
throw new OrekitException(LocalizedCoreFormats.SIMPLE_MESSAGE,
"Polynomial acceleration not implemented in DSST");
}
......
......@@ -117,7 +117,7 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setGravity(final NumericalPropagatorBuilder propagatorBuilder,
final OneAxisEllipsoid body) {
final OneAxisEllipsoid body) {
final ForceModel gravityModel = new HolmesFeatherstoneAttractionModel(body.getBodyFrame(), gravityField);
propagatorBuilder.addForceModel(gravityModel);
return gravityModel.getParametersDrivers();
......@@ -126,8 +126,8 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setOceanTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions, final OneAxisEllipsoid body,
final int degree, final int order) {
final IERSConventions conventions, final OneAxisEllipsoid body,
final int degree, final int order) {
final ForceModel tidesModel = new OceanTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
degree, order, conventions,
......@@ -139,8 +139,8 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolidTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions, final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final IERSConventions conventions, final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final ForceModel tidesModel = new SolidTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
gravityField.getTideSystem(), conventions,
......@@ -153,7 +153,7 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setThirdBody(final NumericalPropagatorBuilder propagatorBuilder,
final CelestialBody thirdBody) {
final CelestialBody thirdBody) {
final ForceModel thirdBodyModel = new ThirdBodyAttraction(thirdBody);
propagatorBuilder.addForceModel(thirdBodyModel);
return thirdBodyModel.getParametersDrivers();
......@@ -162,7 +162,7 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setDrag(final NumericalPropagatorBuilder propagatorBuilder,
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final ForceModel dragModel = new DragForce(atmosphere, spacecraft);
propagatorBuilder.addForceModel(dragModel);
return dragModel.getParametersDrivers();
......@@ -171,8 +171,8 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolarRadiationPressure(final NumericalPropagatorBuilder propagatorBuilder,
final CelestialBody sun, final double equatorialRadius,
final RadiationSensitive spacecraft) {
final CelestialBody sun, final double equatorialRadius,
final RadiationSensitive spacecraft) {
final ForceModel srpModel = new SolarRadiationPressure(sun, equatorialRadius, spacecraft);
propagatorBuilder.addForceModel(srpModel);
return srpModel.getParametersDrivers();
......@@ -189,8 +189,8 @@ public class GNSSOrbitDetermination extends AbstractOrbitDetermination<Numerical
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setPolynomialAcceleration(final NumericalPropagatorBuilder propagatorBuilder,
final String name, final Vector3D direction,
final int degree) {
final String name, final Vector3D direction,
final int degree) {
throw new OrekitException(LocalizedCoreFormats.SIMPLE_MESSAGE,
"Polynomial acceleration not implemented for GNSS orbit determination");
}
......
......@@ -121,7 +121,7 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setGravity(final NumericalPropagatorBuilder propagatorBuilder,
final OneAxisEllipsoid body) {
final OneAxisEllipsoid body) {
final ForceModel gravityModel = new HolmesFeatherstoneAttractionModel(body.getBodyFrame(), gravityField);
propagatorBuilder.addForceModel(gravityModel);
return gravityModel.getParametersDrivers();
......@@ -130,8 +130,8 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setOceanTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions, final OneAxisEllipsoid body,
final int degree, final int order) {
final IERSConventions conventions, final OneAxisEllipsoid body,
final int degree, final int order) {
final ForceModel tidesModel = new OceanTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
degree, order, conventions,
......@@ -143,8 +143,8 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolidTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions, final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final IERSConventions conventions, final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final ForceModel tidesModel = new SolidTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
gravityField.getTideSystem(), conventions,
......@@ -157,7 +157,7 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setThirdBody(final NumericalPropagatorBuilder propagatorBuilder,
final CelestialBody thirdBody) {
final CelestialBody thirdBody) {
final ForceModel thirdBodyModel = new ThirdBodyAttraction(thirdBody);
propagatorBuilder.addForceModel(thirdBodyModel);
return thirdBodyModel.getParametersDrivers();
......@@ -166,7 +166,7 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setDrag(final NumericalPropagatorBuilder propagatorBuilder,
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final ForceModel dragModel = new DragForce(atmosphere, spacecraft);
propagatorBuilder.addForceModel(dragModel);
return dragModel.getParametersDrivers();
......@@ -175,8 +175,8 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolarRadiationPressure(final NumericalPropagatorBuilder propagatorBuilder,
final CelestialBody sun, final double equatorialRadius,
final RadiationSensitive spacecraft) {
final CelestialBody sun, final double equatorialRadius,
final RadiationSensitive spacecraft) {
final ForceModel srpModel = new SolarRadiationPressure(sun, equatorialRadius, spacecraft);
propagatorBuilder.addForceModel(srpModel);
return srpModel.getParametersDrivers();
......@@ -193,7 +193,7 @@ public class KalmanNumericalOrbitDetermination extends AbstractOrbitDeterminatio
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setPolynomialAcceleration(final NumericalPropagatorBuilder propagatorBuilder,
final String name, final Vector3D direction, final int degree) {
final String name, final Vector3D direction, final int degree) {
final AccelerationModel accModel = new PolynomialAccelerationModel(name, null, degree);
final ForceModel polynomialModel = new ParametricAcceleration(direction, true, accModel); propagatorBuilder.addForceModel(polynomialModel);
return polynomialModel.getParametersDrivers();
......
......@@ -121,7 +121,7 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setGravity(final NumericalPropagatorBuilder propagatorBuilder,
final OneAxisEllipsoid body) {
final OneAxisEllipsoid body) {
earth = body;
final ForceModel gravityModel = new HolmesFeatherstoneAttractionModel(body.getBodyFrame(), gravityField);
propagatorBuilder.addForceModel(gravityModel);
......@@ -131,9 +131,9 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setOceanTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions,
final OneAxisEllipsoid body,
final int degree, final int order) {
final IERSConventions conventions,
final OneAxisEllipsoid body,
final int degree, final int order) {
final ForceModel tidesModel = new OceanTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
degree, order, conventions,
......@@ -145,9 +145,9 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolidTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions,
final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final IERSConventions conventions,
final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final ForceModel tidesModel = new SolidTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
gravityField.getTideSystem(), conventions,
......@@ -160,7 +160,7 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setThirdBody(final NumericalPropagatorBuilder propagatorBuilder,
final CelestialBody thirdBody) {
final CelestialBody thirdBody) {
final ForceModel thirdBodyModel = new ThirdBodyAttraction(thirdBody);
propagatorBuilder.addForceModel(thirdBodyModel);
return thirdBodyModel.getParametersDrivers();
......@@ -169,7 +169,7 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setDrag(final NumericalPropagatorBuilder propagatorBuilder,
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final Atmosphere atm = new NRLMSISE00(new CssiSpaceWeatherData("SpaceWeather-All-v1.2.txt"), DataContext.getDefault().getCelestialBodies().getSun(), earth);
final ForceModel dragModel = new DragForce(atm, spacecraft);
propagatorBuilder.addForceModel(dragModel);
......@@ -179,7 +179,7 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolarRadiationPressure(final NumericalPropagatorBuilder propagatorBuilder, final CelestialBody sun,
final double equatorialRadius, final RadiationSensitive spacecraft) {
final double equatorialRadius, final RadiationSensitive spacecraft) {
final ForceModel srpModel = new SolarRadiationPressure(sun, equatorialRadius, spacecraft);
propagatorBuilder.addForceModel(srpModel);
return srpModel.getParametersDrivers();
......@@ -196,7 +196,7 @@ public class LaserRangingOrbitDetermination extends AbstractOrbitDetermination<N
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setPolynomialAcceleration(final NumericalPropagatorBuilder propagatorBuilder,
final String name, final Vector3D direction, final int degree) {
final String name, final Vector3D direction, final int degree) {
final AccelerationModel accModel = new PolynomialAccelerationModel(name, null, degree);
final ForceModel polynomialModel = new ParametricAcceleration(direction, true, accModel); propagatorBuilder.addForceModel(polynomialModel);
return polynomialModel.getParametersDrivers();
......
......@@ -116,7 +116,7 @@ public class NumericalOrbitDetermination extends AbstractOrbitDetermination<Nume
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setGravity(final NumericalPropagatorBuilder propagatorBuilder,
final OneAxisEllipsoid body) {
final OneAxisEllipsoid body) {
final ForceModel gravityModel = new HolmesFeatherstoneAttractionModel(body.getBodyFrame(), gravityField);
propagatorBuilder.addForceModel(gravityModel);
return gravityModel.getParametersDrivers();
......@@ -125,9 +125,9 @@ public class NumericalOrbitDetermination extends AbstractOrbitDetermination<Nume
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setOceanTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions,
final OneAxisEllipsoid body,
final int degree, final int order) {
final IERSConventions conventions,
final OneAxisEllipsoid body,
final int degree, final int order) {
final ForceModel tidesModel = new OceanTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
degree, order, conventions,
......@@ -139,9 +139,9 @@ public class NumericalOrbitDetermination extends AbstractOrbitDetermination<Nume
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setSolidTides(final NumericalPropagatorBuilder propagatorBuilder,
final IERSConventions conventions,
final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final IERSConventions conventions,
final OneAxisEllipsoid body,
final CelestialBody[] solidTidesBodies) {
final ForceModel tidesModel = new SolidTides(body.getBodyFrame(),
gravityField.getAe(), gravityField.getMu(),
gravityField.getTideSystem(), conventions,
......@@ -154,7 +154,7 @@ public class NumericalOrbitDetermination extends AbstractOrbitDetermination<Nume
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setThirdBody(final NumericalPropagatorBuilder propagatorBuilder,
final CelestialBody thirdBody) {
final CelestialBody thirdBody) {
final ForceModel thirdBodyModel = new ThirdBodyAttraction(thirdBody);
propagatorBuilder.addForceModel(thirdBodyModel);
return thirdBodyModel.getParametersDrivers();
......@@ -163,7 +163,7 @@ public class NumericalOrbitDetermination extends AbstractOrbitDetermination<Nume
/** {@inheritDoc} */
@Override
protected List<ParameterDriver> setDrag(final NumericalPropagatorBuilder propagatorBuilder,
final Atmosphere atmosphere, final DragSensitive spacecraft) {
final Atmosphere atmosphere, final DragSensitive spacecraft) {