public final class WalkerConstellation extends Object
Constructor and Description |
---|
WalkerConstellation(WalkerConstellationPattern patternType,
boolean phaseByMean,
int numberOfPlanes,
int numberOfSatellitesPerPlane,
int slotOffset,
ModifiedKeplerianElements seedElements)
Creates a Walker constellation from the orbital elements of a seed satellite and other standard Walker constellation input parameters.
|
Modifier and Type | Method and Description |
---|---|
WalkerConstellationResult<J2Propagator> |
createJ2Propagator(JulianDate orbitEpoch,
ReferenceFrame referenceFrame,
double j2UnnormalizedValue,
double referenceDistance)
Creates a nested collection of satellite propagators.
|
WalkerConstellationResult<J4Propagator> |
createJ4Propagator(JulianDate orbitEpoch,
ReferenceFrame referenceFrame,
double j2UnnormalizedValue,
double j4UnnormalizedValue,
double referenceDistance)
Creates a nested collection of satellite propagators.
|
WalkerConstellationResult<TwoBodyPropagator> |
createTwoBodyPropagator(JulianDate orbitEpoch,
ReferenceFrame referenceFrame)
Creates a nested collection of satellite propagators.
|
int |
getNumberOfPlanes()
Gets the number of planes in the Walker constellation.
|
int |
getNumberOfSatellitesPerPlane()
Gets the number of satellites per plane of the Walker constellation.
|
WalkerConstellationPattern |
getPatternType()
Gets the pattern type of the Walker constellation.
|
boolean |
getPhaseByMean()
Gets a value indicating whether the mean anomaly or true anomaly is used to phase the Walker constellation.
|
ModifiedKeplerianElements |
getSeedElements()
Gets the
ModifiedKeplerianElements of the seed satellite of the Walker constellation. |
int |
getSlotOffset()
Gets the slot offset (interplane phasing) of the Walker constellation.
|
void |
setNumberOfPlanes(int value)
Sets the number of planes in the Walker constellation.
|
void |
setNumberOfSatellitesPerPlane(int value)
Sets the number of satellites per plane of the Walker constellation.
|
void |
setPatternType(WalkerConstellationPattern value)
Sets the pattern type of the Walker constellation.
|
void |
setPhaseByMean(boolean value)
Sets a value indicating whether the mean anomaly or true anomaly is used to phase the Walker constellation.
|
void |
setSeedElements(ModifiedKeplerianElements value)
Sets the
ModifiedKeplerianElements of the seed satellite of the Walker constellation. |
void |
setSlotOffset(int value)
Sets the slot offset (interplane phasing) of the Walker constellation.
|
public WalkerConstellation(@Nonnull WalkerConstellationPattern patternType, boolean phaseByMean, int numberOfPlanes, int numberOfSatellitesPerPlane, int slotOffset, ModifiedKeplerianElements seedElements)
patternType
- The Walker constellation has either a delta pattern or a star pattern.phaseByMean
- If true, then the satellites are distributed evenly by mean anomaly increments within each orbital plane.
If false, then the satellites are distributed evenly by true anomaly increments within each orbital plane.numberOfPlanes
- The number of distinct orbital planes that the satellites are divided among.numberOfSatellitesPerPlane
- The number of satellites within each orbital plane.slotOffset
- Defines the interplane phasing of mean or true anomaly. The first satellite in each plane after the first
has an anomaly value that is the seed satellite's anomaly value plus the slot offset times the number of preceding planes times 360 degrees
divided by the total number of satellites in the entire constellation. The slot offset must be non-negative and less than the number of planes.seedElements
- Provides the ModifiedKeplerianElements
of the seed satellite of the Walker constellation.@Nonnull public final WalkerConstellationPattern getPatternType()
public final void setPatternType(@Nonnull WalkerConstellationPattern value)
public final boolean getPhaseByMean()
public final void setPhaseByMean(boolean value)
public final int getNumberOfPlanes()
public final void setNumberOfPlanes(int value)
public final int getNumberOfSatellitesPerPlane()
public final void setNumberOfSatellitesPerPlane(int value)
public final int getSlotOffset()
public final void setSlotOffset(int value)
public final ModifiedKeplerianElements getSeedElements()
ModifiedKeplerianElements
of the seed satellite of the Walker constellation.public final void setSeedElements(ModifiedKeplerianElements value)
ModifiedKeplerianElements
of the seed satellite of the Walker constellation.public final WalkerConstellationResult<TwoBodyPropagator> createTwoBodyPropagator(@Nonnull JulianDate orbitEpoch, @Nonnull ReferenceFrame referenceFrame)
orbitEpoch
- The orbit epoch of the created TwoBodyPropagator
objects.referenceFrame
- The ReferenceFrame
of the created TwoBodyPropagator
objects.WalkerConstellationResult
that contains WalkerConstellationPlane
objects for each plane that, in turn,
contain TwoBodyPropagator
objects for each satellite in each plane.ArgumentNullException
- Thrown when the reference frame is null.PropertyInvalidException
- Thrown when the number of planes or the number of satellites per plane are not positive, the
slot offset is less than zero or greater than or equal to the number of planes, or the seed satellite's eccentricity is less than zero or
greater than or equal to one. (The seed satellite's eccentricity is greater than or equal to one when its inverse semi-major axis is zero or less.)public final WalkerConstellationResult<J2Propagator> createJ2Propagator(@Nonnull JulianDate orbitEpoch, ReferenceFrame referenceFrame, double j2UnnormalizedValue, double referenceDistance)
orbitEpoch
- The orbit epoch of the created J2Propagator
objects.referenceFrame
- The ReferenceFrame
of the created J2Propagator
objects.j2UnnormalizedValue
- The non-normalized j2 parameter of the central body.referenceDistance
- A reference distance associated with the gravity field of the central body.
(Usually, the equatorial radius of the central body.)WalkerConstellationResult
that contains WalkerConstellationPlane
objects for each plane that, in turn,
contain J2Propagator
objects for each satellite in each plane.ArgumentNullException
- Thrown when the reference frame is null.PropertyInvalidException
- Thrown when the number of planes or the number of satellites per plane are not positive, the
slot offset is less than zero or greater than or equal to the number of planes, or the seed satellite's eccentricity is less than zero or
greater than or equal to one. (The seed satellite's eccentricity is greater than or equal to one when its inverse semi-major axis is zero or less.)public final WalkerConstellationResult<J4Propagator> createJ4Propagator(@Nonnull JulianDate orbitEpoch, ReferenceFrame referenceFrame, double j2UnnormalizedValue, double j4UnnormalizedValue, double referenceDistance)
orbitEpoch
- The orbit epoch of the created J4Propagator
objects.referenceFrame
- The ReferenceFrame
of the created J4Propagator
objects.j2UnnormalizedValue
- The non-normalized J2 parameter of the central body.j4UnnormalizedValue
- The non-normalized J4 parameter of the central body.referenceDistance
- A reference distance associated with the gravity field of the central body.
(Usually, the equatorial radius of the central body.)WalkerConstellationResult
that contains WalkerConstellationPlane
objects for each plane that, in turn,
contain J4Propagator
objects for each satellite in each plane.ArgumentNullException
- Thrown when the reference frame is null.PropertyInvalidException
- Thrown when the number of planes or the number of satellites per plane are not positive, the
slot offset is less than zero or greater than or equal to the number of planes, or the seed satellite's eccentricity is less than zero or
greater than or equal to one. (The seed satellite's eccentricity is greater than or equal to one when its inverse semi-major axis is zero or less.)