Walker Constellations¶
Generator for Walker constellation patterns (Delta and Star) using T:P:F notation.
For understanding Walker constellation geometry and usage examples, see Walker Constellations.
Walker Pattern¶
WalkerPattern ¶
Walker constellation pattern type.
Defines whether the constellation uses a Delta (360°) or Star (180°) RAAN spread.
Attributes:
| Name | Type | Description |
|---|---|---|
DELTA | Any | Walker Delta pattern with 360° RAAN spread (global coverage). Used by GPS, Galileo, and similar navigation constellations. |
STAR | Any | Walker Star pattern with 180° RAAN spread (polar coverage). Used by Iridium and similar communications constellations. |
Example
Initialize instance.
DELTA class-attribute ¶
DELTA: Any = WalkerPattern.DELTA
Walker constellation pattern type.
Defines whether the constellation uses a Delta (360°) or Star (180°) RAAN spread.
Attributes:
| Name | Type | Description |
|---|---|---|
DELTA | Walker Delta pattern with 360° RAAN spread (global coverage). Used by GPS, Galileo, and similar navigation constellations. | |
STAR | Walker Star pattern with 180° RAAN spread (polar coverage). Used by Iridium and similar communications constellations. |
STAR class-attribute ¶
STAR: Any = WalkerPattern.STAR
Walker constellation pattern type.
Defines whether the constellation uses a Delta (360°) or Star (180°) RAAN spread.
Attributes:
| Name | Type | Description |
|---|---|---|
DELTA | Walker Delta pattern with 360° RAAN spread (global coverage). Used by GPS, Galileo, and similar navigation constellations. | |
STAR | Walker Star pattern with 180° RAAN spread (polar coverage). Used by Iridium and similar communications constellations. |
Walker Constellation Generator¶
WalkerConstellationGenerator ¶
WalkerConstellationGenerator(t: int, p: int, f: int, semi_major_axis: float, eccentricity: float, inclination: float, argument_of_perigee: float, reference_raan: float, reference_mean_anomaly: float, epoch: Epoch, angle_format: AngleFormat, pattern: WalkerPattern)
Generator for Walker constellation patterns using T:P:F notation.
Walker constellations place satellites in circular or near-circular orbits with: - T total satellites distributed across P planes - Each plane inclined at the same angle - Planes evenly spaced in RAAN (spread depends on pattern type) - Satellites within each plane evenly spaced in mean anomaly - Phase offset F controls inter-plane phasing
Two pattern types are supported via pattern: - WalkerPattern.DELTA: 360° RAAN spread (global coverage, e.g., GPS, Galileo) - WalkerPattern.STAR: 180° RAAN spread (polar coverage, e.g., Iridium)
All satellites in the constellation share the same semi-major axis, eccentricity, inclination, and argument of perigee. They differ only in RAAN and mean anomaly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
t | int | Total number of satellites (must be divisible by p) | required |
p | int | Number of orbital planes | required |
f | int | Phasing factor (0 to p-1) | required |
semi_major_axis | float | Semi-major axis in meters | required |
eccentricity | float | Eccentricity (dimensionless) | required |
inclination | float | Inclination in degrees or radians (based on angle_format) | required |
argument_of_perigee | float | Argument of perigee | required |
reference_raan | float | RAAN for plane 0 | required |
reference_mean_anomaly | float | Mean anomaly for first satellite | required |
epoch | Epoch | Reference epoch for ephemeris generation | required |
angle_format | AngleFormat | Format for angular inputs | required |
pattern | WalkerPattern | Pattern type (DELTA for 360° RAAN, STAR for 180° RAAN) | required |
Example
Initialize instance.
as_keplerian_propagators method descriptor ¶
as_keplerian_propagators(step_size: float) -> list[KeplerianPropagator]
Generate Keplerian propagators for all satellites in the constellation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
step_size | float | Step size in seconds for propagation | required |
Returns:
| Type | Description |
|---|---|
list[KeplerianPropagator] | list[KeplerianPropagator]: List of propagators, one per satellite |
as_numerical_propagators method descriptor ¶
as_numerical_propagators(propagation_config: NumericalPropagationConfig, force_config: ForceModelConfig, params: ndarray = None) -> list[DNumericalOrbitPropagator]
Generate numerical orbit propagators for all satellites in the constellation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
propagation_config | NumericalPropagationConfig | Propagation configuration | required |
force_config | ForceModelConfig | Force model configuration | required |
params | ndarray | Parameter vector [mass, drag_area, Cd, srp_area, Cr] | None |
Returns:
| Type | Description |
|---|---|
list[DNumericalOrbitPropagator] | list[DNumericalOrbitPropagator]: List of propagators, one per satellite |
as_sgp_propagators method descriptor ¶
as_sgp_propagators(step_size: float, bstar: float, ndt2: float, nddt6: float) -> list[SGPPropagator]
Generate SGP propagators for all satellites in the constellation.
This method creates TLE data for each satellite using the provided drag and mean motion derivative parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
step_size | float | Step size in seconds for propagation | required |
bstar | float | B* drag term (Earth radii^-1) | required |
ndt2 | float | First derivative of mean motion divided by 2 (rev/day²) | required |
nddt6 | float | Second derivative of mean motion divided by 6 (rev/day³) | required |
Returns:
| Type | Description |
|---|---|
list[SGPPropagator] | list[SGPPropagator]: List of propagators, one per satellite |
satellite_elements method descriptor ¶
satellite_elements(plane_index: int, sat_index: int, angle_format: AngleFormat) -> ndarray
Get Keplerian elements for a specific satellite.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
plane_index | int | Plane index (0 to P-1) | required |
sat_index | int | Satellite index within plane (0 to T/P - 1) | required |
angle_format | AngleFormat | Output angle format | required |
Returns:
| Type | Description |
|---|---|
ndarray | np.ndarray: Keplerian elements [a, e, i, raan, argp, M] |
with_base_name method descriptor ¶
with_base_name(name: str) -> WalkerConstellationGenerator
Set a base name for satellite naming.
When set, satellites will be named as "{base_name}-P{plane}-S{sat}" (e.g., "GPS-P0-S0", "GPS-P0-S1", "GPS-P1-S0", etc.)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name | str | Base name for the constellation satellites | required |
Returns:
| Name | Type | Description |
|---|---|---|
WalkerConstellationGenerator | WalkerConstellationGenerator | Self with the base name set |