Package org.orekit.orbits
Class WalkerConstellation
- java.lang.Object
-
- org.orekit.orbits.WalkerConstellation
-
public class WalkerConstellation extends Object
Builder for orbits of satellites forming a Walker constellation.It manages the 2 patterns:
- Delta, with ascending nodes distributed over 360°
- Star, with ascending nodes distributed over 180°
- Since:
- 12.1
- Author:
- Luc Maisonobe
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WalkerConstellation.Pattern
Enumerate for Walker constellation design patterns.
-
Constructor Summary
Constructors Constructor Description WalkerConstellation(int t, int p, int f)
Default constructor for Walker Delta constellation.WalkerConstellation(int t, int p, int f, WalkerConstellation.Pattern pattern)
Complete constructor with the choice of the pattern.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <O extends Orbit>
WalkerConstellationSlot<O>buildReferenceSlot(O referenceOrbit)
Create the reference slot, which is satellite 0 in plane 0.<O extends Orbit>
List<List<WalkerConstellationSlot<O>>>buildRegularSlots(O referenceOrbit)
Create the regular slots.<O extends Orbit>
WalkerConstellationSlot<O>buildSlot(WalkerConstellationSlot<O> existingSlot, int plane, double satellite)
Create one offset slot from an already existing slot.int
getF()
Get the phasing parameter.int
getP()
Get the number of orbital planes.WalkerConstellation.Pattern
getPattern()
Get the constellation pattern.int
getT()
Get the total number of satellites.
-
-
-
Constructor Detail
-
WalkerConstellation
public WalkerConstellation(int t, int p, int f)
Default constructor for Walker Delta constellation.- Parameters:
t
- total number of satellitesp
- number of orbital planesf
- phasing parameter
-
WalkerConstellation
public WalkerConstellation(int t, int p, int f, WalkerConstellation.Pattern pattern)
Complete constructor with the choice of the pattern.- Parameters:
t
- total number of satellitesp
- number of orbital planesf
- phasing parameterpattern
- constellation pattern
-
-
Method Detail
-
getT
public int getT()
Get the total number of satellites.- Returns:
- total number of satellites
-
getP
public int getP()
Get the number of orbital planes.- Returns:
- number of orbital planes
-
getF
public int getF()
Get the phasing parameter.- Returns:
- phasing parameter
-
getPattern
public WalkerConstellation.Pattern getPattern()
Get the constellation pattern.- Returns:
- constellation pattern
-
buildRegularSlots
public <O extends Orbit> List<List<WalkerConstellationSlot<O>>> buildRegularSlots(O referenceOrbit)
Create the regular slots.This method builds the
T
regular satellite, with integersatellite indices
. If additional in-orbit spare satellites must be created, thebuildSlot
method must be called explicitly.The various orbits are built from the
referenceOrbit
using plane rotations andshifts
. This implies that if orbit does not include non-Keplerian derivatives, a simple Keplerian motion is assumed, which is the intended use case.- Type Parameters:
O
- type of the orbits- Parameters:
referenceOrbit
- orbit of the reference satellite, inplane
0 and atWalkerConstellationSlot.getSatellite()
satellite index} 0- Returns:
- built orbits as a list of list, organized by planes
- See Also:
buildReferenceSlot(Orbit)
,buildSlot(WalkerConstellationSlot, int, double)
-
buildReferenceSlot
public <O extends Orbit> WalkerConstellationSlot<O> buildReferenceSlot(O referenceOrbit)
Create the reference slot, which is satellite 0 in plane 0.- Type Parameters:
O
- type of the orbits- Parameters:
referenceOrbit
- orbit of the reference satellite, inplane
0 and atWalkerConstellationSlot.getSatellite()
satellite index} 0- Returns:
- build reference slot
- See Also:
buildRegularSlots(Orbit)
,buildSlot(WalkerConstellationSlot, int, double)
-
buildSlot
public <O extends Orbit> WalkerConstellationSlot<O> buildSlot(WalkerConstellationSlot<O> existingSlot, int plane, double satellite)
Create one offset slot from an already existing slot.- Type Parameters:
O
- type of the orbits- Parameters:
existingSlot
- existing slot (may be thereference slot
or not)plane
- plane index of the new slot (may be non-integer for in-orbit spare satellites)satellite
- new slot satellite index in plane (may be non-integer if needed)- Returns:
- built slot
- See Also:
buildRegularSlots(Orbit)
,buildReferenceSlot(Orbit)
-
-