Skip to Content
ReferenceCLIcoverage

orbitforge coverage

Synopsis

orbitforge coverage --constellation <PATH> [OPTIONS]

Description

Lays a grid over the Earth, propagates the constellation, and tests every grid point against every satellite at every time step. Reports what fraction of the window each point was covered, how many satellites were visible at once, and how long the longest gap was.

Coverage is geometry. It says a satellite was above the mask, not that a usable signal arrived; that is link.

Options

Window and grid.
ParameterTypeUnitDefaultRequiredDescription
--constellationpathn/a—YesPath to a constellation JSON file.
--startstringRFC 3339 UTC2026-01-01T00:00:00ZNoAnalysis start epoch.
--duration-hoursfloath24NoAnalysis window length.
--step-secondsfloats60NoTime step. A gap shorter than this is invisible.
--grid-degfloatdeg—YesGrid spacing. A hole smaller than this can fall between sample points.
--modelenumn/atwo-bodyNoPropagation model.
Visibility and sensor.
ParameterTypeUnitDefaultRequiredDescription
--min-elevation-degfloatdeg—NoElevation mask. A point counts as covered only above this angle.
--sensor-shapeenumn/a—NoFootprint shape: conical, or rectangular for a pushbroom swath.
--sensor-half-angle-degfloatdeg—NoConical sensor half-angle.
--sensor-cone-degfloatdeg—NoCone angle for the conical footprint.
--sensor-along-degfloatdeg—NoAlong-track extent of a rectangular footprint.
--sensor-cross-degfloatdeg—NoCross-track extent of a rectangular footprint.
--sensor-pitch-degfloatdeg—NoSensor pitch offset from nadir.
--sensor-roll-degfloatdeg—NoSensor roll offset from nadir, for off-nadir pointing.

This command prints its summary and takes no --output. Run orbitforge coverage --help for the complete flag set.

Worked examples

Coarse survey, no mask

orbitforge coverage \ --constellation demo.json \ --duration-hours 6 --step-seconds 60 \ --grid-deg 10
Coverage over 684 grid points (10 deg), 60 sats, 6.0 h at 60 s: mean coverage 70.2% (area-weighted), min 0.0%, fully covered 10.5%, any 68.4% max fold 3, max coverage gap 5760 s

Finer grid, longer window, realistic mask

orbitforge coverage \ --constellation demo.json \ --duration-hours 24 --step-seconds 120 \ --grid-deg 5 --min-elevation-deg 25
Coverage over 2664 grid points (5 deg), 60 sats, 24.0 h at 120 s: mean coverage 29.6% (area-weighted), min 0.0%, fully covered 0.0%, any 67.6% max fold 2, max coverage gap 9960 s

What the elevation mask costs

The two runs above are the same constellation. The differences are worth reading carefully, because they are the single most common source of an over-optimistic coverage claim.

StatisticNo mask, 6 h25-degree mask, 24 hChange
Mean coverage70.2 percent29.6 percentLess than half
Fully covered10.5 percent0.0 percentNothing is continuously covered
Max fold32One fewer simultaneous satellite
Max gap5760 s9960 s96 minutes becomes 166

Mean coverage more than halved because of the mask, not the constellation. A satellite at 5 degrees elevation is geometrically visible and practically useless: the slant range is at its longest and the signal crosses the most atmosphere.

Quoting coverage without stating the elevation mask is quoting a number that no real ground segment will achieve. State the mask every time.

The fully covered figure falling to zero is the more consequential result. At a 25-degree mask this design has no continuously covered point anywhere on Earth, which rules it out for any service that cannot tolerate an outage.

Grid spacing and step size

Both are cost-versus-truth trades, and both fail in the same direction: too coarse, and you under-report gaps.

SettingFiner meansGuidance
--grid-degMore points, longer run, smaller holes detected10 degrees to explore, 2 or better for a quoted result
--step-secondsMore samples, longer run, shorter gaps detectedWell below the shortest pass you care about

Going from 10 to 5 degrees quadrupled the point count from 684 to 2664, because the grid is two-dimensional. Halving the spacing again would cost roughly four times as much run time.

Convergence check: halve both and re-run. If the maximum gap grows, the earlier numbers were optimistic and you have not converged.

Sensor footprints

Coverage depends on what the payload can see, not only on line of sight.

ShapeFlagsModels
Conical--sensor-shape, --sensor-cone-degA symmetric circular footprint about the boresight
Rectangular--sensor-along-deg, --sensor-cross-degA pushbroom swath, wide across track and narrow along it
Off-nadir--sensor-pitch-deg, --sensor-roll-degA steered sensor, trading resolution for access

Without sensor flags the analysis uses line of sight subject to the elevation mask, which is the right model for communications. Imaging payloads need the sensor flags, because a pushbroom swath covers dramatically less area than a conical field of the same nominal angle.

See also

Question? Give us feedbackDocuments Varaha Constellation Designer main (pre-release)
Last updated on