public final class StelaEquinoctialOrbit extends Orbit
The parameters used internally are the Stela equinoctial elements (see
StelaEquinoctialParameters
for more information.
Constructor and Description |
---|
StelaEquinoctialOrbit(double aIn,
double exIn,
double eyIn,
double ixIn,
double iyIn,
double lMIn,
Frame frame,
AbsoluteDate date,
double mu)
Creates a new instance.
|
StelaEquinoctialOrbit(double aIn,
double exIn,
double eyIn,
double ixIn,
double iyIn,
double lMIn,
Frame frame,
AbsoluteDate date,
double mu,
boolean isCorrectedIn)
Creates a new instance.
|
StelaEquinoctialOrbit(IOrbitalParameters params,
Frame frame,
AbsoluteDate date)
Creates a new instance.
|
StelaEquinoctialOrbit(Orbit op)
Constructor from any kind of orbital parameters with correction when inclination is close to
180°
|
StelaEquinoctialOrbit(Orbit op,
boolean isCorrectedIn)
Constructor from any kind of orbital parameters.
|
StelaEquinoctialOrbit(PVCoordinates pvCoordinates,
Frame frame,
AbsoluteDate date,
double mu)
Constructor from cartesian parameters.
|
Modifier and Type | Method and Description |
---|---|
void |
addKeplerContribution(PositionAngle type,
double gm,
double[] pDot)
Call the method
orbitAddKeplerContribution(PositionAngle, double, double[]) implemented in inherited
classes of Orbit. |
protected double[][] |
computeJacobianEccentricWrtCartesian()
Compute the Jacobian of the orbital parameters with eccentric angle with respect to the Cartesian parameters.
|
protected double[][] |
computeJacobianMeanWrtCartesian()
Compute the Jacobian of the orbital parameters with mean angle with respect to the Cartesian parameters.
|
protected double[][] |
computeJacobianTrueWrtCartesian()
Compute the Jacobian of the orbital parameters with true angle with respect to the Cartesian parameters.
|
boolean |
equals(Object object)
Test for the equality of two orbits.
|
double |
getA()
Get the semi-major axis.
|
double |
getE()
Get the eccentricity.
|
double |
getEquinoctialEx()
Get the first component of the eccentricity vector.
|
double |
getEquinoctialEy()
Get the second component of the eccentricity vector.
|
StelaEquinoctialParameters |
getEquinoctialParameters()
Getter for underlying equinoctial parameters.
|
double |
getHx()
Get hx = ix / (2 * cos(i/2)), where ix is the first component of the inclination vector.
|
double |
getHy()
Get hy = iy / (2 * cos(i/2)), where iy is the second component of the inclination vector.
|
double |
getI()
Get the inclination.
|
double |
getIx()
Get the first component of the inclination vector.
|
double |
getIy()
Get the second component of the inclination vector.
|
double |
getLE()
Get the eccentric longitude argument.
|
double |
getLM()
Get the mean longitude argument.
|
double |
getLv()
Get the true longitude argument.
|
double |
getN()
Get the mean motion.
|
IOrbitalParameters |
getParameters()
Get underlying orbital parameters.
|
PVCoordinates |
getPVCoordinates(AbsoluteDate otherDate,
Frame otherFrame)
Get the
PVCoordinates of the body in the selected frame. |
OrbitType |
getType()
Get the orbit type.
|
int |
hashCode()
Get a hashCode for the orbit.
|
protected PVCoordinates |
initPVCoordinates()
Compute the position/velocity coordinates from the canonical parameters.
|
Orbit |
interpolate(AbsoluteDate date,
Collection<Orbit> sample)
Get an interpolated instance.
|
double |
kepEq(double e,
double mMod)
Implementation of a Kepler Equation Solver described by F.
|
double[] |
mapOrbitToArray()
Substitute for Orekit's
OrbitTypes.mapOrbitToArray . |
protected void |
orbitAddKeplerContribution(PositionAngle type,
double gm,
double[] pDot)
Add the contribution of the Keplerian motion to parameters derivatives
|
protected Orbit |
orbitShiftedBy(double dt)
Get a time-shifted orbit.
|
createInverseJacobian, ensurePseudoInertialFrame, fillHalfRow, fillHalfRow, fillHalfRow, fillHalfRow, fillHalfRow, fillHalfRow, getDate, getFrame, getJacobian, getJacobian, getJacobian, getJacobian, getJacobianWrtCartesian, getJacobianWrtParameters, getJacobianWrtParametersEccentric, getJacobianWrtParametersMean, getJacobianWrtParametersTrue, getKeplerianMeanMotion, getKeplerianPeriod, getKeplerianTransitionMatrix, getMu, getNativeFrame, getPVCoordinates, getPVCoordinates, setJacobianWrtParametersEccentric, setJacobianWrtParametersMean, setJacobianWrtParametersTrue, shiftedBy
public StelaEquinoctialOrbit(IOrbitalParameters params, Frame frame, AbsoluteDate date)
params
- orbital parametersframe
- the frame in which the parameters are defineddate
- date of the orbital parameterspublic StelaEquinoctialOrbit(double aIn, double exIn, double eyIn, double ixIn, double iyIn, double lMIn, Frame frame, AbsoluteDate date, double mu)
aIn
- the semi-major axis (m)exIn
- the e cos(ω + Ω), first component of eccentricity vectoreyIn
- the e sin(ω + Ω), second component of eccentricity vectorixIn
- the sin(i/2) cos(Ω), first component of inclination vectoriyIn
- the sin(i/2) sin(Ω), second component of inclination vectorlMIn
- the M + ω + Ω, mean longitude argument (rad)frame
- frame in which the parameters are defineddate
- the date of the orbital parametersmu
- the central attraction coefficient (m3/s2)IllegalArgumentException
- if eccentricity is equal to 1 or larger orpublic StelaEquinoctialOrbit(double aIn, double exIn, double eyIn, double ixIn, double iyIn, double lMIn, Frame frame, AbsoluteDate date, double mu, boolean isCorrectedIn)
aIn
- semi-major axis (m)exIn
- e cos(ω + Ω), first component of eccentricity vectoreyIn
- e sin(ω + Ω), second component of eccentricity vectorixIn
- sin(i/2) cos(Ω), first component of inclination vectoriyIn
- sin(i/2) sin(Ω), second component of inclination vectorlMIn
- M + ω + Ω, mean longitude argument (rad)frame
- the frame in which the parameters are defineddate
- date of the orbital parametersmu
- central attraction coefficient (m3/s2)isCorrectedIn
- Has the correction when inclination is around 180° to be doneIllegalArgumentException
- if eccentricity is equal to 1 or larger orpublic StelaEquinoctialOrbit(PVCoordinates pvCoordinates, Frame frame, AbsoluteDate date, double mu)
pvCoordinates
- position and velocityframe
- the frame in which are defined the PVCoordinates
date
- date of the orbital parametersmu
- central attraction coefficient (m3/s2)IllegalArgumentException
- if eccentricity is equal to 1 or largerpublic StelaEquinoctialOrbit(Orbit op)
op
- orbital parameters to copypublic StelaEquinoctialOrbit(Orbit op, boolean isCorrectedIn)
op
- orbital parameters to copyisCorrectedIn
- Has the correction when inclination is around 180° to be donepublic IOrbitalParameters getParameters()
getParameters
in class Orbit
public StelaEquinoctialParameters getEquinoctialParameters()
public Orbit interpolate(AbsoluteDate date, Collection<Orbit> sample)
Note that the state of the current instance may not be used in the interpolation process, only its type and non interpolable fields are used (for example central attraction coefficient or frame when interpolating orbits). The interpolable fields taken into account are taken only from the states of the sample points. So if the state of the instance must be used, the instance should be included in the sample points.
Not implemented yet.
date
- interpolation datesample
- sample points on which interpolation should be donepublic OrbitType getType()
Not implemented yet.
public double getA()
public double getEquinoctialEx()
getEquinoctialEx
in class Orbit
public double getEquinoctialEy()
getEquinoctialEy
in class Orbit
public double getHx()
public double getHy()
public double getIx()
public double getIy()
public double getLE()
Not implemented yet.
public double getLv()
Not implemented yet.
public double getLM()
public double getE()
public double getI()
public double getN()
protected PVCoordinates initPVCoordinates()
initPVCoordinates
in class Orbit
protected Orbit orbitShiftedBy(double dt)
The orbit can be slightly shifted to close dates. This shift is based on a simple keplerian model. It is not intended as a replacement for proper orbit and attitude propagation but should be sufficient for small time shifts or coarse accuracy.
orbitShiftedBy
in class Orbit
dt
- time shift in secondspublic PVCoordinates getPVCoordinates(AbsoluteDate otherDate, Frame otherFrame) throws PatriusException
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
getPVCoordinates
in class Orbit
otherDate
- current dateotherFrame
- the frame where to define the positionPatriusException
- if position cannot be computed in given frameprotected double[][] computeJacobianMeanWrtCartesian()
Element jacobian[i][j]
is the derivative of parameter i of the orbit with respect to Cartesian coordinate
j. This means each row correspond to one orbital parameter whereas columns 0 to 5 correspond to the Cartesian
coordinates x, y, z, xDot, yDot and zDot.
computeJacobianMeanWrtCartesian
in class Orbit
Orbit.computeJacobianEccentricWrtCartesian()
,
Orbit.computeJacobianTrueWrtCartesian()
protected double[][] computeJacobianEccentricWrtCartesian()
Element jacobian[i][j]
is the derivative of parameter i of the orbit with respect to Cartesian coordinate
j. This means each row correspond to one orbital parameter whereas columns 0 to 5 correspond to the Cartesian
coordinates x, y, z, xDot, yDot and zDot.
Not implemented yet.
computeJacobianEccentricWrtCartesian
in class Orbit
Orbit.computeJacobianMeanWrtCartesian()
,
Orbit.computeJacobianTrueWrtCartesian()
protected double[][] computeJacobianTrueWrtCartesian()
Element jacobian[i][j]
is the derivative of parameter i of the orbit with respect to Cartesian coordinate
j. This means each row correspond to one orbital parameter whereas columns 0 to 5 correspond to the Cartesian
coordinates x, y, z, xDot, yDot and zDot.
Not implemented yet.
computeJacobianTrueWrtCartesian
in class Orbit
Orbit.computeJacobianMeanWrtCartesian()
,
Orbit.computeJacobianEccentricWrtCartesian()
protected void orbitAddKeplerContribution(PositionAngle type, double gm, double[] pDot)
This method is used by numerical propagators to evaluate the part of Keplerrian motion to evolution of the orbital state.
type
- type of the position angle in the stategm
- attraction coefficient to usepDot
- array containing orbital state derivatives to update (the Keplerian
part must be added to the array components, as the array may already
contain some non-zero elements corresponding to non-Keplerian parts)public void addKeplerContribution(PositionAngle type, double gm, double[] pDot)
orbitAddKeplerContribution(PositionAngle, double, double[])
implemented in inherited
classes of Orbit.type
- type of the position angle in the stategm
- attraction coefficient to usepDot
- array containing orbital state derivatives to update (the Keplerian
part must be added to the array components, as the array may already
contain some non-zero elements corresponding to non-Keplerian parts)public double[] mapOrbitToArray()
OrbitTypes.mapOrbitToArray
.
Warning, unlike other Orekit Orbits lm is returned in second positionpublic double kepEq(double e, double mMod)
e
- eccentricitymMod
- mean anomalypublic boolean equals(Object object)
Orbits are considered equals if they have the same type and all their attributes are equals. In particular, the orbits frame are considered equals if they represent the same instance. If they have the same attributes but are not the same instance, the method will return false.
Copyright © 2023 CNES. All rights reserved.