public final class SpecializedOrbitSolver extends Object
The CreateCircularOrbit static method creates a J4Propagator
object with initial Keplerian elements consistent with the inputs and circular orbit characteristics.
The other static methods create J2Propagator
objects with initial Keplerian elements consistent with their inputs and orbital characteristics.
The ModifiedKeplerianElements
of each created propagator object can be obtained from their InitialConditions
(get
/ set
) property.
The OrbitEpoch
(get
/ set
) is another property that can be obtained from these objects.
Finally, PropagatorPoint
objects can be created from these propagators using the method CartesianOnePointPropagator.createPoint()
.
Modifier and Type | Method and Description |
---|---|
static J4Propagator |
createCircularOrbit(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
double altitude,
double inclination,
double rightAscensionOfAscendingNode,
double gravitationalParameter,
double j2UnnormalizedValue,
double j4UnnormalizedValue,
double referenceDistance)
Creates a circular orbit with the desired characteristics.
|
static J2Propagator |
createCriticallyInclinedOrbit(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double periapsisAltitude,
double apoapsisAltitude,
double longitudeAscendingNode,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
boolean isPosigrade)
Creates a critically-inclined orbit with an argument of periapsis that remains constant under J2 Perturbations.
|
static J2Propagator |
createCriticallyInclinedSunSynchronousOrbit(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double periapsisAltitude,
double ascendingNodeLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
double planetaryMeanMotion,
boolean isObliquityLessThan90Degrees)
Creates an orbit with an argument of periapsis that remains constant under J2 perturbations (critically-inclined) and
a right ascension of the ascending node that drifts under J2 perturbations at the same rate as the central body's orbit
around the Sun (Sun-synchronous).
|
static J4Propagator |
createEarthCircularOrbit(JulianDate orbitEpoch,
double altitude,
double inclination,
double rightAscensionOfAscendingNode)
Creates a circular orbit using default Earth parameters with the desired characteristics.
|
static J2Propagator |
createEarthCriticallyInclinedOrbit(JulianDate orbitEpoch,
double periapsisAltitude,
double apoapsisAltitude,
double longitudeAscendingNode,
boolean isPosigrade)
Creates a critically-inclined orbit with an argument of periapsis that remains constant under J2 Perturbations.
|
static J2Propagator |
createEarthCriticallyInclinedSunSynchronousOrbit(JulianDate orbitEpoch,
double periapsisAltitude,
double ascendingNodeLongitude)
Creates an orbit with an argument of periapsis that remains constant under J2 perturbations (critically-inclined) and
a right ascension of the ascending node that drifts under J2 perturbations at the same rate as the central body's orbit
around the Sun (Sun-synchronous).
|
static J2Propagator |
createEarthMolniyaOrbit(JulianDate orbitEpoch,
double periapsisAltitude,
double argumentOfPeriapsis,
double apoapsisLongitude)
Creates an elliptical orbit with an argument of periapsis that remains constant under J2 perturbations (critically-inclined) and has an orbital
period that is exactly half the rotation period of the Earth (semi-synchronous).
|
static J2Propagator |
createEarthRepeatGroundTraceOrbitUsingApproximateAltitude(JulianDate orbitEpoch,
double approximateAltitude,
double inclination,
int numberRevsToRepeat,
double ascendingNodeLongitude)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createEarthRepeatGroundTraceOrbitUsingApproximateRevsPerDay(JulianDate orbitEpoch,
double approximateRevsPerDay,
double inclination,
int numberRevsToRepeat,
double ascendingNodeLongitude)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createEarthRepeatGroundTraceSunSynchronousOrbitUsingApproximateAltitude(JulianDate guessOrbitEpoch,
double approximateAltitude,
Duration ascendingNodeLocalTime,
int numberRevsToRepeat,
double ascendingNodeLongitude)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createEarthRepeatGroundTraceSunSynchronousOrbitUsingApproximateRevsPerDay(JulianDate guessOrbitEpoch,
double approximateRevsPerDay,
Duration ascendingNodeLocalTime,
int numberRevsToRepeat,
double ascendingNodeLongitude)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createEarthSunSynchronousOrbitUsingAltitude(JulianDate orbitEpoch,
double altitude,
Duration ascendingNodeLocalTime)
Creates a circular orbit whose right ascension of the ascending node drifts under J2 perturbations
at the same rate as the central body's orbit around the Sun (Sun-synchronous).
|
static J2Propagator |
createEarthSunSynchronousOrbitUsingInclination(JulianDate orbitEpoch,
double inclination,
Duration ascendingNodeLocalTime)
Creates a circular orbit whose right ascension of the ascending node drifts under J2 perturbations
at the same rate as the central body's orbit around the Sun (Sun-synchronous).
|
static J2Propagator |
createGeostationaryOrbit(JulianDate orbitEpoch,
double stationaryLongitude)
Creates a geostationary orbit that always remains above the Earth at the desired Earth-fixed longitude.
|
static J2Propagator |
createMolniyaOrbit(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double periapsisAltitude,
double argumentOfPeriapsis,
double apoapsisLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
boolean isObliquityLessThan90Degrees)
Creates an elliptical orbit with an argument of periapsis that remains constant under J2 perturbations (critically-inclined) and has an orbital
period that is exactly half the rotation period of the central body (semi-synchronous).
|
static J2Propagator |
createRepeatGroundTraceOrbitUsingApproximateAltitude(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double approximateAltitude,
double inclination,
int numberRevsToRepeat,
double ascendingNodeLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createRepeatGroundTraceOrbitUsingApproximateRevsPerDay(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double approximateRevsPerDay,
double inclination,
int numberRevsToRepeat,
double ascendingNodeLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createRepeatGroundTraceSunSynchronousOrbitUsingApproximateAltitude(JulianDate guessOrbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double approximateAltitude,
Duration ascendingNodeLocalTime,
int numberRevsToRepeat,
double ascendingNodeLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
double planetaryMeanMotion,
boolean isObliquityLessThan90Degrees)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createRepeatGroundTraceSunSynchronousOrbitUsingApproximateRevsPerDay(JulianDate guessOrbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double approximateRevsPerDay,
Duration ascendingNodeLocalTime,
int numberRevsToRepeat,
double ascendingNodeLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
double planetaryMeanMotion,
boolean isObliquityLessThan90Degrees)
Creates a circular orbit that exactly repeats its ground trace after a specified number of revolutions under
the influence of J2 perturbations.
|
static J2Propagator |
createStationaryOrbit(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double stationaryLongitude,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
boolean isObliquityLessThan90Degrees)
Creates a stationary orbit that always remains above the central body at the desired body-fixed longitude.
|
static J2Propagator |
createSunSynchronousOrbitUsingAltitude(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double altitude,
Duration ascendingNodeLocalTime,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
double planetaryMeanMotion,
boolean isObliquityLessThan90Degrees)
Creates a circular orbit whose right ascension of the ascending node drifts under J2 perturbations
at the same rate as the central body's orbit around the Sun (Sun-synchronous).
|
static J2Propagator |
createSunSynchronousOrbitUsingInclination(JulianDate orbitEpoch,
ReferenceFrame inertialFrame,
ReferenceFrame fixedFrame,
double inclination,
Duration ascendingNodeLocalTime,
double gravitationalParameter,
double j2UnnormalizedValue,
double referenceDistance,
double planetaryMeanMotion,
boolean isObliquityLessThan90Degrees)
Creates a circular orbit whose right ascension of the ascending node drifts under J2 perturbations
at the same rate as the central body's orbit around the Sun (Sun-synchronous).
|
@Nonnull public static J4Propagator createCircularOrbit(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, double altitude, double inclination, double rightAscensionOfAscendingNode, double gravitationalParameter, double j2UnnormalizedValue, double j4UnnormalizedValue, double referenceDistance)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.altitude
- The distance of the circular orbit above the referenceDistance
of the central body.inclination
- The inclination of the orbit.rightAscensionOfAscendingNode
- The right ascension of the ascending node of the orbit.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.j4UnnormalizedValue
- The non-normalized J4 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 and J4 parameters.J4Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
is null
.ArgumentOutOfRangeException
- Thrown when altitude
is negative.ArgumentOutOfRangeException
- Thrown when inclination
is less than zero or greater than π.@Nonnull public static J4Propagator createEarthCircularOrbit(@Nonnull JulianDate orbitEpoch, double altitude, double inclination, double rightAscensionOfAscendingNode)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, J4, and reference distance.
The inertial reference frame is defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.altitude
- The distance of the circular orbit above the equatorial radius of the Earth.inclination
- The inclination of the orbit.rightAscensionOfAscendingNode
- The right ascension of the ascending node of the orbit.J4Propagator
object that is initialized at its ascending node with the desired orbit epoch and orbital elements.ArgumentOutOfRangeException
- Thrown when altitude
is negative.ArgumentOutOfRangeException
- Thrown when inclination
is less than zero or greater than π.@Nonnull public static J2Propagator createCriticallyInclinedOrbit(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double periapsisAltitude, double apoapsisAltitude, double longitudeAscendingNode, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, boolean isPosigrade)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.periapsisAltitude
- The distance of the periapsis of the orbit above the referenceDistance
of the central body.apoapsisAltitude
- The distance of the apoapsis of the orbit above the referenceDistance
of the central body.longitudeAscendingNode
- The longitude of the ascending node in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.isPosigrade
- Sets the inclination to about 63.435 degrees if true (for posigrade critically-inclined orbits)
or about 116.565 degrees if false (for retrograde critically-inclined orbits).J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when periapsisAltitude
or apoapsisAltitude
is less than zero,
or when periapsisAltitude
is greater than apoapsisAltitude
.@Nonnull public static J2Propagator createEarthCriticallyInclinedOrbit(@Nonnull JulianDate orbitEpoch, double periapsisAltitude, double apoapsisAltitude, double longitudeAscendingNode, boolean isPosigrade)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.periapsisAltitude
- The distance of the periapsis of the orbit above the equatorial radius of Earth.apoapsisAltitude
- The distance of the apoapsis of the orbit above the equatorial radius of Earth.longitudeAscendingNode
- The longitude of the ascending node in the default fixed frame of the Earth.isPosigrade
- Sets the inclination to about 63.435 degrees if true (for posigrade critically-inclined orbits)
or about 116.565 degrees if false (for retrograde critically-inclined orbits).J2Propagator
object that is initialized at its ascending node with the desired orbit epoch and orbital elements.ArgumentOutOfRangeException
- Thrown when periapsisAltitude
or apoapsisAltitude
is less than zero,
or when periapsisAltitude
is greater than apoapsisAltitude
.@Nonnull public static J2Propagator createCriticallyInclinedSunSynchronousOrbit(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double periapsisAltitude, double ascendingNodeLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, double planetaryMeanMotion, boolean isObliquityLessThan90Degrees)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.periapsisAltitude
- The distance of the periapsis of the orbit above the referenceDistance
of the central body.ascendingNodeLongitude
- The longitude of the ascending node in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.planetaryMeanMotion
- The mean motion of the central body about the Sun. (The central body must be orbiting the Sun.)isObliquityLessThan90Degrees
- Sets the inclination to about 116.565 degrees if true (for Earth and other planets with posigrade rotations)
or about 63.435 degrees if false (for Uranus with a retrograde rotation). Venus also has a retrograde rotation, but does not have strong
enough J2 perturbations to support Sun-synchronous orbits.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when periapsisAltitude
is negative or when planetaryMeanMotion
is zero or negative.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createEarthCriticallyInclinedSunSynchronousOrbit(@Nonnull JulianDate orbitEpoch, double periapsisAltitude, double ascendingNodeLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.periapsisAltitude
- The distance of the periapsis of the orbit above the Earth's equatorial radius.ascendingNodeLongitude
- The longitude of the ascending node in the Earth-fixed frame.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch and orbital elements.ArgumentOutOfRangeException
- Thrown when periapsisAltitude
is negative.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createStationaryOrbit(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double stationaryLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, boolean isObliquityLessThan90Degrees)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.stationaryLongitude
- The longitude in the fixedFrame
above which the orbit remains stationary.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.isObliquityLessThan90Degrees
- Sets the inclination to 0.0 degrees if true
(for Earth and most other planets and moons with posigrade rotations)
or 180.0 degrees if false (for Uranus, Venus, Neptune's moon Triton, and other central bodies with retrograde rotations).J2Propagator
object that is initialized above its sub-satellite point with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArithmeticException
- Thrown when calculated rotation rate is zero due to incorrect inertial or fixed frame input.@Nonnull public static J2Propagator createGeostationaryOrbit(@Nonnull JulianDate orbitEpoch, double stationaryLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.stationaryLongitude
- The longitude in the Earth-centered fixed frame above which the orbit remains stationary.J2Propagator
object that is initialized above its sub-satellite point with the desired orbit epoch and orbital elements.@Nonnull public static J2Propagator createMolniyaOrbit(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double periapsisAltitude, double argumentOfPeriapsis, double apoapsisLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, boolean isObliquityLessThan90Degrees)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.periapsisAltitude
- The distance of the periapsis of the orbit above the referenceDistance
of the central body.argumentOfPeriapsis
- The argument of periapsis of the orbit.apoapsisLongitude
- The longitude of the apoapsis in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.isObliquityLessThan90Degrees
- Sets the inclination to about 63.435 degrees if true
(for Earth and most other planets and moons with posigrade rotations)
or about 116.565 degrees if false (for Uranus, Venus, Neptune's moon Triton, and other central bodies with retrograde rotations).J2Propagator
object that is initialized at its periapsis with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when periapsisAltitude
is negative.ArithmeticException
- Thrown when calculated rotation rate is zero due to incorrect inertial or fixed frame input.@Nonnull public static J2Propagator createEarthMolniyaOrbit(@Nonnull JulianDate orbitEpoch, double periapsisAltitude, double argumentOfPeriapsis, double apoapsisLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.periapsisAltitude
- The distance of the periapsis of the orbit above Earth's equatorial radius.argumentOfPeriapsis
- The argument of periapsis of the orbit.apoapsisLongitude
- The longitude of the apoapsis in the Earth-fixed frame.J2Propagator
object that is initialized at its periapsis with the desired orbit epoch, orbital elements, and gravity field.ArgumentOutOfRangeException
- Thrown when periapsisAltitude
is negative.@Nonnull public static J2Propagator createRepeatGroundTraceOrbitUsingApproximateRevsPerDay(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double approximateRevsPerDay, double inclination, int numberRevsToRepeat, double ascendingNodeLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.approximateRevsPerDay
- The approximate number of revolutions per day. The method iterates to find the closest exact match.inclination
- The inclination of the orbit.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when approximateRevsPerDay
is zero or negative,
when numberRevsToRepeat
is zero or negative,
or when inclination
is less than zero or greater than π.ArithmeticException
- Thrown when calculated rotation rate is zero due to incorrect inertial or fixed frame input.@Nonnull public static J2Propagator createEarthRepeatGroundTraceOrbitUsingApproximateRevsPerDay(@Nonnull JulianDate orbitEpoch, double approximateRevsPerDay, double inclination, int numberRevsToRepeat, double ascendingNodeLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.approximateRevsPerDay
- The approximate number of revolutions per day. The method iterates to find the closest exact match.inclination
- The inclination of the orbit.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the Earth-fixed frame.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentOutOfRangeException
- Thrown when approximateRevsPerDay
is zero or negative,
when numberRevsToRepeat
is zero or negative,
or when inclination
is less than zero or greater than π.@Nonnull public static J2Propagator createRepeatGroundTraceOrbitUsingApproximateAltitude(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double approximateAltitude, double inclination, int numberRevsToRepeat, double ascendingNodeLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.approximateAltitude
- The approximate desired altitude for the repeat ground trace orbit. The method iterates to find the closest exact match.inclination
- The inclination of the orbit.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when approximateAltitude
is negative,
when numberRevsToRepeat
is zero or negative,
or when inclination
is less than zero or greater than π.ArithmeticException
- Thrown when calculated rotation rate is zero due to incorrect inertial or fixed frame input.@Nonnull public static J2Propagator createEarthRepeatGroundTraceOrbitUsingApproximateAltitude(@Nonnull JulianDate orbitEpoch, double approximateAltitude, double inclination, int numberRevsToRepeat, double ascendingNodeLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.approximateAltitude
- The approximate desired altitude for the repeat ground trace orbit. The method iterates to find the closest exact match.inclination
- The inclination of the orbit.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the Earth-fixed frame.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentOutOfRangeException
- Thrown when approximateAltitude
is negative,
when numberRevsToRepeat
is zero or negative,
or when inclination
is less than zero or greater than π.@Nonnull public static J2Propagator createRepeatGroundTraceSunSynchronousOrbitUsingApproximateRevsPerDay(@Nonnull JulianDate guessOrbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double approximateRevsPerDay, @Nonnull Duration ascendingNodeLocalTime, int numberRevsToRepeat, double ascendingNodeLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, double planetaryMeanMotion, boolean isObliquityLessThan90Degrees)
guessOrbitEpoch
- An initial guess for the epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.approximateRevsPerDay
- The approximate number of revolutions per day. The method iterates to find the closest exact match.ascendingNodeLocalTime
- The local solar time of the ascending node in central body seconds past central body midnight.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.planetaryMeanMotion
- The mean motion of the central body about the Sun. (The central body must be orbiting the Sun.)isObliquityLessThan90Degrees
- Sets the orbit to be retrograde if true (for Earth and other planets with posigrade rotations
but retrograde Sun-synchronous orbits) or posigrade if false (for Uranus with a retrograde rotation but a posigrade Sun-synchronous orbit).
Venus also has a retrograde rotation, but does not have strong enough J2 perturbations to support Sun-synchronous orbits.J2Propagator
object that is initialized at its ascending node with the desired local solar time of ascending node,
orbital elements, and gravity field. Usually, its epoch will be different from the input guess epoch unless the longitude of the node,
the local solar time at ascending node, and the input guess epoch are consistent with each other by design or chance.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when approximateRevsPerDay
is zero or negative,
when numberRevsToRepeat
is zero or negative,
or when planetaryMeanMotion
is less than or equal to zero.ArithmeticException
- Thrown when calculated rotation rate is zero due to incorrect inertial or fixed frame input,
or when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createEarthRepeatGroundTraceSunSynchronousOrbitUsingApproximateRevsPerDay(@Nonnull JulianDate guessOrbitEpoch, double approximateRevsPerDay, @Nonnull Duration ascendingNodeLocalTime, int numberRevsToRepeat, double ascendingNodeLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
guessOrbitEpoch
- An initial guess for the epoch associated with the initial conditions of the propagated orbit.approximateRevsPerDay
- The approximate number of revolutions per day. The method iterates to find the closest exact match.ascendingNodeLocalTime
- The local solar time of the ascending node in seconds past midnight.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the Earth-fixed frame.J2Propagator
object that is initialized at its ascending node with the desired local solar time of ascending node and
orbital elements. Usually, its epoch will be different from the input guess epoch unless the longitude of the node,
the local solar time at ascending node, and the input guess epoch are consistent with each other by design or chance.ArgumentOutOfRangeException
- Thrown when approximateRevsPerDay
is zero or negative or when numberRevsToRepeat
is zero or negative.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createRepeatGroundTraceSunSynchronousOrbitUsingApproximateAltitude(@Nonnull JulianDate guessOrbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double approximateAltitude, @Nonnull Duration ascendingNodeLocalTime, int numberRevsToRepeat, double ascendingNodeLongitude, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, double planetaryMeanMotion, boolean isObliquityLessThan90Degrees)
guessOrbitEpoch
- An initial guess for the epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.approximateAltitude
- Either enter the approximate desired altitude for the repeat ground trace orbit
or the approximate number of revolutions per day. The method iterates to find the closest exact match.ascendingNodeLocalTime
- The local solar time of the ascending node in central body seconds past central body midnight.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the fixedFrame
of the central body.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.planetaryMeanMotion
- The mean motion of the central body about the Sun. (The central body must be orbiting the Sun.)isObliquityLessThan90Degrees
- Sets the orbit to be retrograde if true (for Earth and other planets with posigrade rotations
but retrograde Sun-synchronous orbits) or posigrade if false (for Uranus with a retrograde rotation but a posigrade Sun-synchronous orbit).
Venus also has a retrograde rotation, but does not have strong enough J2 perturbations to support Sun-synchronous orbits.J2Propagator
object that is initialized at its ascending node with the desired local solar time of ascending node,
orbital elements, and gravity field. Usually, its epoch will be different from the input guess epoch unless the longitude of the ascending node,
the local solar time at ascending node, and the input guess epoch are consistent with each other by design or chance.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when approximateAltitude
is negative,
when numberRevsToRepeat
is zero or negative,
or when planetaryMeanMotion
is less than or equal to zero.ArithmeticException
- Thrown when calculated rotation rate is zero due to incorrect inertial or fixed frame input,
or when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createEarthRepeatGroundTraceSunSynchronousOrbitUsingApproximateAltitude(@Nonnull JulianDate guessOrbitEpoch, double approximateAltitude, @Nonnull Duration ascendingNodeLocalTime, int numberRevsToRepeat, double ascendingNodeLongitude)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
guessOrbitEpoch
- An initial guess for the epoch associated with the initial conditions of the propagated orbit.approximateAltitude
- The approximate desired altitude for the repeat ground trace orbit. The method iterates to find the closest exact match.ascendingNodeLocalTime
- The local solar time of the ascending node in seconds past midnight.numberRevsToRepeat
- The number of revolutions until the ground trace exactly repeats.ascendingNodeLongitude
- The longitude of the ascending node in the Earth-fixed frame.J2Propagator
object that is initialized at its ascending node with the desired local solar time of ascending node and
orbital elements. Usually, its epoch will be different from the input guess epoch unless the longitude of the ascending node,
the local solar time at ascending node, and the input guess epoch are consistent with each other by design or chance.ArgumentOutOfRangeException
- Thrown when approximateAltitude
is negative or when numberRevsToRepeat
is zero or negative.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createSunSynchronousOrbitUsingAltitude(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double altitude, @Nonnull Duration ascendingNodeLocalTime, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, double planetaryMeanMotion, boolean isObliquityLessThan90Degrees)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.altitude
- The distance above the surface of the central body.ascendingNodeLocalTime
- The local solar time of the ascending node in central body seconds past central body midnight.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.planetaryMeanMotion
- The mean motion of the central body about the Sun. (The central body must be orbiting the Sun.)isObliquityLessThan90Degrees
- Sets the orbit to be retrograde if true (for Earth and other planets with posigrade rotations
but retrograde Sun-synchronous orbits) or posigrade if false (for Uranus with a retrograde rotation but a posigrade Sun-synchronous orbit).
Venus also has a retrograde rotation, but does not have strong enough J2 perturbations to support Sun-synchronous orbits.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when altitude
is negative or when planetaryMeanMotion
is less than or equal to zero.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createEarthSunSynchronousOrbitUsingAltitude(@Nonnull JulianDate orbitEpoch, double altitude, @Nonnull Duration ascendingNodeLocalTime)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.altitude
- The distance above the surface of the central body.ascendingNodeLocalTime
- The local solar time of the ascending node in seconds past midnight.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch and orbital elements.ArgumentOutOfRangeException
- Thrown when altitude
is negative.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createSunSynchronousOrbitUsingInclination(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame inertialFrame, @Nonnull ReferenceFrame fixedFrame, double inclination, @Nonnull Duration ascendingNodeLocalTime, double gravitationalParameter, double j2UnnormalizedValue, double referenceDistance, double planetaryMeanMotion, boolean isObliquityLessThan90Degrees)
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inertialFrame
- An inertial ReferenceFrame
centered at the central body.fixedFrame
- A fixed ReferenceFrame
centered at the central body.inclination
- Either the altitude (distance above the surface of the central body) or the inclination of the circular orbit.ascendingNodeLocalTime
- The local solar time of the ascending node in central body seconds past central body midnight.gravitationalParameter
- The gravitational parameter of the central body.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.referenceDistance
- The equatorial radius of the central body that also serves as a reference distance for the J2 parameter.planetaryMeanMotion
- The mean motion of the central body about the Sun. (The central body must be orbiting the Sun.)isObliquityLessThan90Degrees
- Sets the orbit to be retrograde if true (for Earth and other planets with posigrade rotations
but retrograde Sun-synchronous orbits) or posigrade if false (for Uranus with a retrograde rotation but a posigrade Sun-synchronous orbit).
Venus also has a retrograde rotation, but does not have strong enough J2 perturbations to support Sun-synchronous orbits.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch, orbital elements, and gravity field.ArgumentNullException
- Thrown when inertialFrame
or fixedFrame
is null
.ArgumentOutOfRangeException
- Thrown when inclination
is negative or greater than π,
or when planetaryMeanMotion
is less than or equal to zero.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.@Nonnull public static J2Propagator createEarthSunSynchronousOrbitUsingInclination(@Nonnull JulianDate orbitEpoch, double inclination, @Nonnull Duration ascendingNodeLocalTime)
Uses constants from the EarthGravitationalModel2008
for gravitational parameter, J2, and reference distance.
The inertial and fixed reference frames are defined by the instance of EarthCentralBody
in the CentralBodiesFacet
of the CalculationContext
.
orbitEpoch
- The epoch associated with the initial conditions of the propagated orbit.inclination
- Either the altitude (distance above the surface of the central body) or the inclination of the circular orbit.ascendingNodeLocalTime
- The local solar time of the ascending node in central body seconds past central body midnight.J2Propagator
object that is initialized at its ascending node with the desired orbit epoch and orbital elements.ArgumentOutOfRangeException
- Thrown when inclination
is negative or greater than π.ArithmeticException
- Thrown when a Sun-synchronous orbit does not exist for the given input conditions.