public class OrbitDeterminationEngine extends AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
Constructor and Description |
---|
OrbitDeterminationEngine(boolean isKalman)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
compareWithReference(org.orekit.orbits.Orbit estimatedOrbit)
Compare the estimated orbit with a reference orbit.
|
protected void |
createGravityField(TutorialOrbitDetermination inputData)
Create a gravity field from input parameters.
|
protected org.orekit.propagation.conversion.NumericalPropagatorBuilder |
createPropagatorBuilder(org.orekit.orbits.Orbit referenceOrbit,
org.orekit.propagation.conversion.ODEIntegratorBuilder builder,
double positionScale)
Create a propagator builder from input parameters.
|
protected double |
getMu()
Get the central attraction coefficient.
|
void |
runOrbitDetermination(File inputFile)
Run the orbit determination.
|
protected void |
setAttitudeProvider(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.attitudes.AttitudeProvider attitudeProvider)
Set attitude provider.
|
protected org.orekit.utils.ParameterDriver[] |
setDrag(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.models.earth.atmosphere.Atmosphere atmosphere,
org.orekit.forces.drag.DragSensitive spacecraft)
Set drag force model.
|
protected org.orekit.utils.ParameterDriver[] |
setGravity(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.bodies.OneAxisEllipsoid body)
Set gravity force model.
|
protected void |
setMass(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
double mass)
Set satellite mass.
|
protected org.orekit.utils.ParameterDriver[] |
setOceanTides(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.utils.IERSConventions conventions,
org.orekit.bodies.OneAxisEllipsoid body,
int degree,
int order)
Set third body attraction force model.
|
protected org.orekit.utils.ParameterDriver[] |
setPolynomialAcceleration(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
String name,
org.hipparchus.geometry.euclidean.threed.Vector3D direction,
int degree)
Set polynomial acceleration force model.
|
protected org.orekit.utils.ParameterDriver[] |
setRelativity(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder)
Set relativity force model.
|
protected org.orekit.utils.ParameterDriver[] |
setSolarRadiationPressure(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.bodies.CelestialBody sun,
double equatorialRadius,
org.orekit.forces.radiation.RadiationSensitive spacecraft)
Set solar radiation pressure force model.
|
protected org.orekit.utils.ParameterDriver[] |
setSolidTides(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.utils.IERSConventions conventions,
org.orekit.bodies.OneAxisEllipsoid body,
org.orekit.bodies.CelestialBody[] solidTidesBodies)
Set third body attraction force model.
|
protected org.orekit.utils.ParameterDriver[] |
setThirdBody(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder,
org.orekit.bodies.CelestialBody thirdBody)
Set third body attraction force model.
|
run, runKalman, runReference
public OrbitDeterminationEngine(boolean isKalman)
isKalman
- true is orbit determination is performed using a Kalman Filterpublic void runOrbitDetermination(File inputFile) throws IOException
inputFile
- in orbit determination fileIOException
- if file cannot be read properlyprotected void createGravityField(TutorialOrbitDetermination inputData) throws NoSuchElementException
createGravityField
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
inputData
- input dataNoSuchElementException
- if input parameters are missingprotected double getMu()
getMu
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
protected org.orekit.propagation.conversion.NumericalPropagatorBuilder createPropagatorBuilder(org.orekit.orbits.Orbit referenceOrbit, org.orekit.propagation.conversion.ODEIntegratorBuilder builder, double positionScale)
The advantage of using the DSST instead of the numerical propagator is that it is possible to use greater values for the minimum and maximum integration steps.
createPropagatorBuilder
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
referenceOrbit
- reference orbit from which real orbits will be builtbuilder
- first order integrator builderpositionScale
- scaling factor used for orbital parameters normalization
(typically set to the expected standard deviation of the position)protected void setMass(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, double mass)
setMass
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator buildermass
- initial massprotected org.orekit.utils.ParameterDriver[] setGravity(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.bodies.OneAxisEllipsoid body)
setGravity
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderbody
- central bodyprotected org.orekit.utils.ParameterDriver[] setOceanTides(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.utils.IERSConventions conventions, org.orekit.bodies.OneAxisEllipsoid body, int degree, int order)
setOceanTides
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderconventions
- IERS conventions to usebody
- central bodydegree
- degree of the tide model to loadorder
- order of the tide model to loadprotected org.orekit.utils.ParameterDriver[] setSolidTides(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.utils.IERSConventions conventions, org.orekit.bodies.OneAxisEllipsoid body, org.orekit.bodies.CelestialBody[] solidTidesBodies)
setSolidTides
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderconventions
- IERS conventions to usebody
- central bodysolidTidesBodies
- third bodies generating solid tidesprotected org.orekit.utils.ParameterDriver[] setThirdBody(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.bodies.CelestialBody thirdBody)
setThirdBody
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderthirdBody
- third bodyprotected org.orekit.utils.ParameterDriver[] setDrag(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.models.earth.atmosphere.Atmosphere atmosphere, org.orekit.forces.drag.DragSensitive spacecraft)
setDrag
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderatmosphere
- atmospheric modelspacecraft
- spacecraft modelprotected org.orekit.utils.ParameterDriver[] setSolarRadiationPressure(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.bodies.CelestialBody sun, double equatorialRadius, org.orekit.forces.radiation.RadiationSensitive spacecraft)
setSolarRadiationPressure
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator buildersun
- Sun modelequatorialRadius
- central body equatorial radius (for shadow computation)spacecraft
- spacecraft modelprotected org.orekit.utils.ParameterDriver[] setRelativity(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder)
setRelativity
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderprotected org.orekit.utils.ParameterDriver[] setPolynomialAcceleration(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, String name, org.hipparchus.geometry.euclidean.threed.Vector3D direction, int degree)
setPolynomialAcceleration
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator buildername
- name of the accelerationdirection
- normalized direction of the accelerationdegree
- polynomial degreeprotected void setAttitudeProvider(org.orekit.propagation.conversion.NumericalPropagatorBuilder propagatorBuilder, org.orekit.attitudes.AttitudeProvider attitudeProvider)
setAttitudeProvider
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
propagatorBuilder
- propagator builderattitudeProvider
- attitude providerprotected void compareWithReference(org.orekit.orbits.Orbit estimatedOrbit) throws IOException
compareWithReference
in class AbstractOrbitDeterminationEngine<org.orekit.propagation.conversion.NumericalPropagatorBuilder>
estimatedOrbit
- estimated orbitIOException
- if input file cannot be readCopyright © 2002–2020 CS Systèmes d'Information. All rights reserved.