orbitforge constellation walker
Synopsis
orbitforge constellation walker \
--name <NAME> --planes <N> --sats-per-plane <N> \
--altitude-km <KM> --inclination-deg <DEG> --output <PATH> [OPTIONS]Description
Generates a Walker constellation: satellites distributed evenly across planes, and evenly within each plane, so that coverage gaps are spread rather than clustered.
The output is a constellation definition, not a trajectory. It fixes where the
satellites start; simulate advances them through
time.
Options
| Parameter | Type | Unit | Default | Required | Description |
|---|---|---|---|---|---|
--name | string | n/a | — | Yes | Constellation name, used for satellite identifiers and labels. |
--planes | integer | count | — | Yes | Number of orbital planes. |
--sats-per-plane | integer | count | — | Yes | Satellites per plane, evenly spaced in true anomaly. |
--altitude-km | float | km | — | Yes | Orbit altitude above the reference ellipsoid. |
--inclination-deg | float | deg | — | Yes | Inclination. Sets the latitude ceiling; see the warning below. |
--output | path | n/a | — | Yes | Output constellation JSON path. |
--pattern | enum | n/a | delta | No | `delta` spreads RAAN over 360 degrees; `star` spreads it over 180. |
--phasing | integer | n/a | 1 | No | Inter-plane phasing factor F, where 0 <= F < planes. |
--raan-offset-deg | float | deg | 0 | No | RAAN of the first plane. Rotates the whole shell without changing its geometry. |
--fov-deg | float | deg | 45 | No | Payload field of view, used later for coverage footprints. |
Worked examples
Walker Delta
orbitforge constellation walker \
--name demo --planes 6 --sats-per-plane 10 \
--altitude-km 550 --inclination-deg 53 --fov-deg 45 \
--output demo.jsonGenerated 'demo' with 60 satellites (6 planes x 10 per plane) -> demo.jsonWalker Star, near-polar
orbitforge constellation walker \
--name star --planes 6 --sats-per-plane 8 \
--altitude-km 800 --inclination-deg 98 --pattern star --fov-deg 40 \
--output star.jsonGenerated 'star' with 48 satellites (6 planes x 8 per plane) -> star.jsonAn inclination of 98 degrees is retrograde and close to sun-synchronous at this altitude, which is the usual choice for Earth observation.
Delta and Star
| Pattern | RAAN spread | Character |
|---|---|---|
delta | 360 degrees | Even coverage between the inclination limits. The usual choice for broadband and Earth observation |
star | 180 degrees | Planes converge over the poles. Strong polar coverage, with a seam where ascending and descending planes meet |
A Star pattern concentrates planes into a half-sphere of RAAN, so ascending and descending planes counter-rotate relative to each other. Where they meet, the relative velocity between adjacent planes is at its largest, which matters if you intend to fly inter-satellite links across that seam.
Phasing
--phasing sets the offset applied to each successive plane, so that satellites
in adjacent planes do not all cross the equator at the same moment:
where is planes, is satellites per plane, and is the phasing factor.
The value matters. A poor choice clusters satellites at plane crossings, which
both wastes coverage and creates the close approaches that
conjunction screen exists to find. Screen
any design whose phasing you have changed.
The inclination ceiling
Inclination sets a hard limit on the latitude that can be covered at all. A 53-degree constellation never passes over the poles, so polar ground points are never covered by any satellite in it, regardless of how many you add.
This appears in coverage output as a minimum of 0.0 percent alongside a healthy mean. See coverage and revisit.
| Inclination | Reaches | Typical use |
|---|---|---|
| 0 degrees | Equator only | Geostationary and equatorial systems |
| 53 degrees | Up to 53 degrees latitude | Broadband, where most people live |
| 98 degrees | Everything, retrograde | Sun-synchronous Earth observation |
What the output contains
The constellation JSON holds each satellite’s identifier and initial Keplerian elements, plus the field of view. It carries no payload, mass, or RF properties, because those are supplied to the analysis commands that need them.
Satellite identifiers follow the pattern <name>-s0-p<plane>-sat<index>, for
example demo-s0-p00-sat00. Error messages from later commands name satellites
this way, so the identifier tells you which plane and slot failed.
See also
simulateto propagate the result.- Constellations and orbits for what the parameters mean.
conjunction screento verify phasing.
main (pre-release)