Enum OrbitType
- java.lang.Object
-
- java.lang.Enum<OrbitType>
-
- org.orekit.orbits.OrbitType
-
- All Implemented Interfaces:
Serializable
,Comparable<OrbitType>
public enum OrbitType extends Enum<OrbitType>
Enumerate forOrbit
andFieldOrbit
parameters types.
-
-
Enum Constant Summary
Enum Constants Enum Constant Description CARTESIAN
Type for orbital representation inCartesianOrbit
andFieldCartesianOrbit
parameters.CIRCULAR
Type for orbital representation inCircularOrbit
andFieldCircularOrbit
parameters.EQUINOCTIAL
Type for orbital representation inEquinoctialOrbit
andFieldEquinoctialOrbit
parameters.KEPLERIAN
Type for orbital representation inKeplerianOrbit
andFieldKeplerianOrbit
parameters.
-
Field Summary
Fields Modifier and Type Field Description static String
A
Name for semi major axis.static String
E_X
Name for eccentricity vector first component.static String
E_Y
Name for eccentricity vector second component.static String
ECC
Name for eccentricity.static String
ECC_ANOM
Name for eccentric anomaly.static String
ECC_LAT_ARG
Name for eccentric argument of latitude.static String
ECC_LON_ARG
Name for eccentric argument of longitude.static String
H_X
Name for inclination vector first component.static String
H_Y
Name for inclination vector second component .static String
INC
Name for inclination.static String
MEAN_ANOM
Name for mean anomaly.static String
MEAN_LAT_ARG
Name for mean argument of latitude.static String
MEAN_LON_ARG
Name for mean argument of longitude.static String
PA
Name for perigee argument.static String
POS_X
Name for position along X.static String
POS_Y
Name for position along Y.static String
POS_Z
Name for position along Z.static String
RAAN
Name for right ascension of ascending node.static String
TRUE_ANOM
Name for mean anomaly.static String
TRUE_LAT_ARG
Name for mean argument of latitude.static String
TRUE_LON_ARG
Name for mean argument of longitude.static String
VEL_X
Name for velocity along X.static String
VEL_Y
Name for velocity along Y.static String
VEL_Z
Name for velocity along Z.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract <T extends CalculusFieldElement<T>>
FieldOrbit<T>convertToFieldOrbit(Field<T> field, Orbit orbit)
Convert an orbit to the "Fielded" instance type.abstract <T extends CalculusFieldElement<T>>
FieldOrbit<T>convertType(FieldOrbit<T> orbit)
Convert an orbit to the instance type.abstract Orbit
convertType(Orbit orbit)
Convert an orbit to the instance type.abstract ParameterDriversList
getDrivers(double dP, Orbit orbit, PositionAngleType type)
Get parameters drivers initialized from a reference orbit.abstract boolean
isPositionAngleBased()
Tells if the orbit type is based on position angles or not.abstract Orbit
mapArrayToOrbit(double[] array, double[] arrayDot, PositionAngleType type, AbsoluteDate date, double mu, Frame frame)
Convert state array to orbital parameters.abstract <T extends CalculusFieldElement<T>>
FieldOrbit<T>mapArrayToOrbit(T[] array, T[] arrayDot, PositionAngleType type, FieldAbsoluteDate<T> date, T mu, Frame frame)
Convert state array to orbital parameters.abstract <T extends CalculusFieldElement<T>>
voidmapOrbitToArray(FieldOrbit<T> orbit, PositionAngleType type, T[] stateVector, T[] stateVectorDot)
Convert orbit to state array.abstract void
mapOrbitToArray(Orbit orbit, PositionAngleType type, double[] stateVector, double[] stateVectorDot)
Convert orbit to state array.abstract <T extends CalculusFieldElement<T>>
FieldOrbit<T>normalize(FieldOrbit<T> orbit, FieldOrbit<T> reference)
Normalize one orbit with respect to a reference one.abstract Orbit
normalize(Orbit orbit, Orbit reference)
Normalize one orbit with respect to a reference one.protected double[]
scale(double dP, Orbit orbit)
Compute scaling factor for parameters drivers.static OrbitType
valueOf(String name)
Returns the enum constant of this type with the specified name.static OrbitType[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
CARTESIAN
public static final OrbitType CARTESIAN
Type for orbital representation inCartesianOrbit
andFieldCartesianOrbit
parameters.
-
CIRCULAR
public static final OrbitType CIRCULAR
Type for orbital representation inCircularOrbit
andFieldCircularOrbit
parameters.
-
EQUINOCTIAL
public static final OrbitType EQUINOCTIAL
Type for orbital representation inEquinoctialOrbit
andFieldEquinoctialOrbit
parameters.
-
KEPLERIAN
public static final OrbitType KEPLERIAN
Type for orbital representation inKeplerianOrbit
andFieldKeplerianOrbit
parameters.
-
-
Field Detail
-
POS_X
public static final String POS_X
Name for position along X.- See Also:
- Constant Field Values
-
POS_Y
public static final String POS_Y
Name for position along Y.- See Also:
- Constant Field Values
-
POS_Z
public static final String POS_Z
Name for position along Z.- See Also:
- Constant Field Values
-
VEL_X
public static final String VEL_X
Name for velocity along X.- See Also:
- Constant Field Values
-
VEL_Y
public static final String VEL_Y
Name for velocity along Y.- See Also:
- Constant Field Values
-
VEL_Z
public static final String VEL_Z
Name for velocity along Z.- See Also:
- Constant Field Values
-
A
public static final String A
Name for semi major axis.- See Also:
- Constant Field Values
-
ECC
public static final String ECC
Name for eccentricity.- See Also:
- Constant Field Values
-
E_X
public static final String E_X
Name for eccentricity vector first component.- See Also:
- Constant Field Values
-
E_Y
public static final String E_Y
Name for eccentricity vector second component.- See Also:
- Constant Field Values
-
INC
public static final String INC
Name for inclination.- See Also:
- Constant Field Values
-
H_X
public static final String H_X
Name for inclination vector first component.- See Also:
- Constant Field Values
-
H_Y
public static final String H_Y
Name for inclination vector second component .- See Also:
- Constant Field Values
-
PA
public static final String PA
Name for perigee argument.- See Also:
- Constant Field Values
-
RAAN
public static final String RAAN
Name for right ascension of ascending node.- See Also:
- Constant Field Values
-
MEAN_ANOM
public static final String MEAN_ANOM
Name for mean anomaly.- See Also:
- Constant Field Values
-
ECC_ANOM
public static final String ECC_ANOM
Name for eccentric anomaly.- See Also:
- Constant Field Values
-
TRUE_ANOM
public static final String TRUE_ANOM
Name for mean anomaly.- See Also:
- Constant Field Values
-
MEAN_LAT_ARG
public static final String MEAN_LAT_ARG
Name for mean argument of latitude.- See Also:
- Constant Field Values
-
ECC_LAT_ARG
public static final String ECC_LAT_ARG
Name for eccentric argument of latitude.- See Also:
- Constant Field Values
-
TRUE_LAT_ARG
public static final String TRUE_LAT_ARG
Name for mean argument of latitude.- See Also:
- Constant Field Values
-
MEAN_LON_ARG
public static final String MEAN_LON_ARG
Name for mean argument of longitude.- See Also:
- Constant Field Values
-
ECC_LON_ARG
public static final String ECC_LON_ARG
Name for eccentric argument of longitude.- See Also:
- Constant Field Values
-
TRUE_LON_ARG
public static final String TRUE_LON_ARG
Name for mean argument of longitude.- See Also:
- Constant Field Values
-
-
Method Detail
-
values
public static OrbitType[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (OrbitType c : OrbitType.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static OrbitType valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum type has no constant with the specified nameNullPointerException
- if the argument is null
-
convertType
public abstract Orbit convertType(Orbit orbit)
Convert an orbit to the instance type.The returned orbit is the specified instance itself if its type already matches, otherwise, a new orbit of the proper type created
- Parameters:
orbit
- orbit to convert- Returns:
- converted orbit with type guaranteed to match (so it can be cast safely)
-
mapOrbitToArray
public abstract void mapOrbitToArray(Orbit orbit, PositionAngleType type, double[] stateVector, double[] stateVectorDot)
Convert orbit to state array.Note that all implementations of this method must be consistent with the implementation of the
Orbit.getJacobianWrtCartesian
method for the corresponding orbit type in terms of parameters order and meaning.- Parameters:
orbit
- orbit to maptype
- type of the anglestateVector
- flat array into which the state vector should be mapped (it can have more than 6 elements, extra elements are untouched)stateVectorDot
- flat array into which the state vector derivative should be mapped (it can be null if derivatives are not desired, and it can have more than 6 elements, extra elements are untouched)
-
mapArrayToOrbit
public abstract Orbit mapArrayToOrbit(double[] array, double[] arrayDot, PositionAngleType type, AbsoluteDate date, double mu, Frame frame)
Convert state array to orbital parameters.Note that all implementations of this method must be consistent with the implementation of the
Orbit.getJacobianWrtCartesian
method for the corresponding orbit type in terms of parameters order and meaning.- Parameters:
array
- state as a flat array (it can have more than 6 elements, extra elements are ignored)arrayDot
- state derivative as a flat array (it can be null, in which case Keplerian motion is assumed, and it can have more than 6 elements, extra elements are ignored)type
- type of the angledate
- integration datemu
- central attraction coefficient used for propagation (m³/s²)frame
- frame in which integration is performed- Returns:
- orbit corresponding to the flat array as a space dynamics object
-
convertType
public abstract <T extends CalculusFieldElement<T>> FieldOrbit<T> convertType(FieldOrbit<T> orbit)
Convert an orbit to the instance type.The returned orbit is the specified instance itself if its type already matches, otherwise, a new orbit of the proper type created
- Type Parameters:
T
- CalculusFieldElement used- Parameters:
orbit
- orbit to convert- Returns:
- converted orbit with type guaranteed to match (so it can be cast safely)
-
mapOrbitToArray
public abstract <T extends CalculusFieldElement<T>> void mapOrbitToArray(FieldOrbit<T> orbit, PositionAngleType type, T[] stateVector, T[] stateVectorDot)
Convert orbit to state array.Note that all implementations of this method must be consistent with the implementation of the
Orbit.getJacobianWrtCartesian
method for the corresponding orbit type in terms of parameters order and meaning.- Type Parameters:
T
- CalculusFieldElement used- Parameters:
orbit
- orbit to maptype
- type of the anglestateVector
- flat array into which the state vector should be mapped (it can have more than 6 elements, extra elements are untouched)stateVectorDot
- flat array into which the state vector derivative should be mapped (it can be null if derivatives are not desired, and it can have more than 6 elements, extra elements are untouched)
-
mapArrayToOrbit
public abstract <T extends CalculusFieldElement<T>> FieldOrbit<T> mapArrayToOrbit(T[] array, T[] arrayDot, PositionAngleType type, FieldAbsoluteDate<T> date, T mu, Frame frame)
Convert state array to orbital parameters.Note that all implementations of this method must be consistent with the implementation of the
Orbit.getJacobianWrtCartesian
method for the corresponding orbit type in terms of parameters order and meaning.- Type Parameters:
T
- CalculusFieldElement used- Parameters:
array
- state as a flat array (it can have more than 6 elements, extra elements are ignored)arrayDot
- state derivative as a flat array (it can be null, in which case Keplerian motion is assumed,type
- type of the angledate
- integration datemu
- central attraction coefficient used for propagation (m³/s²)frame
- frame in which integration is performed- Returns:
- orbit corresponding to the flat array as a space dynamics object
-
convertToFieldOrbit
public abstract <T extends CalculusFieldElement<T>> FieldOrbit<T> convertToFieldOrbit(Field<T> field, Orbit orbit)
Convert an orbit to the "Fielded" instance type.- Type Parameters:
T
- CalculusFieldElement used- Parameters:
field
- CalculusFieldorbit
- base orbit- Returns:
- converted FieldOrbit with type guaranteed to match (so it can be cast safely)
- Since:
- 12.0
-
getDrivers
public abstract ParameterDriversList getDrivers(double dP, Orbit orbit, PositionAngleType type)
Get parameters drivers initialized from a reference orbit.- Parameters:
dP
- user specified position errororbit
- reference orbittype
- type of the angle- Returns:
- parameters drivers initialized from reference orbit
-
normalize
public abstract <T extends CalculusFieldElement<T>> FieldOrbit<T> normalize(FieldOrbit<T> orbit, FieldOrbit<T> reference)
Normalize one orbit with respect to a reference one.Given a, angular component ζ of an orbit and the corresponding angular component ζᵣ in the reference orbit, the angular component ζₙ of the normalized orbit will be ζₙ = ζ + 2kπ where k is chosen such that ζᵣ - π ≤ ζₙ ≤ ζᵣ + π. This is intended to avoid too large discontinuities and is particularly useful for normalizing the orbit after an impulsive maneuver with respect to the reference picked up before the maneuver.
- Type Parameters:
T
- CalculusFieldElement used- Parameters:
orbit
- orbit to normalizereference
- reference orbit- Returns:
- normalized orbit (the type is guaranteed to match
OrbitType
) - Since:
- 11.1
-
normalize
public abstract Orbit normalize(Orbit orbit, Orbit reference)
Normalize one orbit with respect to a reference one.Given a, angular component ζ of an orbit and the corresponding angular component ζᵣ in the reference orbit, the angular component ζₙ of the normalized orbit will be ζₙ = ζ + 2kπ where k is chosen such that ζᵣ - π ≤ ζₙ ≤ ζᵣ + π. This is intended to avoid too large discontinuities and is particularly useful for normalizing the orbit after an impulsive maneuver with respect to the reference picked up before the maneuver.
- Parameters:
orbit
- orbit to normalizereference
- reference orbit- Returns:
- normalized orbit (the type is guaranteed to match
OrbitType
) - Since:
- 11.1
-
isPositionAngleBased
public abstract boolean isPositionAngleBased()
Tells if the orbit type is based on position angles or not.- Returns:
- true if based on
PositionAngleType
- Since:
- 12.0
-
scale
protected double[] scale(double dP, Orbit orbit)
Compute scaling factor for parameters drivers.The scales are estimated from partial derivatives properties of orbits, starting from a scalar position error specified by the user. Considering the energy conservation equation V = sqrt(mu (2/r - 1/a)), we get at constant energy (i.e. on a Keplerian trajectory):
V r² |dV| = mu |dr|
So we deduce a scalar velocity error consistent with the position error. From here, we apply orbits Jacobians matrices to get consistent scales on orbital parameters.
- Parameters:
dP
- user specified position errororbit
- reference orbit- Returns:
- scaling factor array
-
-