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.- Since:
- 12.1
- Author:
- Luc Maisonobe
-
-
Constructor Summary
Constructors Constructor Description WalkerConstellation(int t, int p, int f)
Simple constructor.
-
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.int
getT()
Get the total number of satellites.
-
-
-
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
-
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)
-
-