Ground segment
Ground Track & Pass Predictor
Paste a Two-Line Element set (TLE), drop in your ground station, and get every pass window - when the satellite rises, how high it gets, where to point - with the ground track drawn on a world grid.
How this model works & what it omits
SGP4 propagation (satellite.js) from a NORAD TLE; topocentric look angles against an elevation mask give AOS/LOS/TCA per pass. All in-browser, all times UTC. Accuracy is bounded by TLE freshness - paste a recent element set.
This satellite pass predictor propagates a NORAD TLE with Simplified General Perturbations 4 (SGP4) via satellite.js - a faithful port of the reference implementation from "Revisiting Spacetrack Report #3" (Vallado et al. 2006) - and computes every ground station pass in your window: acquisition and loss of signal (AOS/LOS), time of closest approach, maximum elevation, and the rise/set azimuths to point an antenna, plus the ground track drawn on a world grid. Everything runs in your browser; nothing phones out. Accuracy is bounded by TLE freshness above all - for real scheduling, paste a current element set from CelesTrak or Space-Track.
Everything here starts from a Two-Line Element set (TLE) - the compact NORAD element format that encodes a satellite's mean orbital elements at a reference epoch. TLEs are mean elements fitted to the SGP4 (Simplified General Perturbations 4) analytical propagator, so they only mean something when propagated with SGP4 - feeding TLE elements into a generic Keplerian propagator gives kilometres of error immediately. This tool runs the genuine article: satellite.js, a faithful port of the reference SGP4/SDP4 implementation from "Revisiting Spacetrack Report #3" (Vallado et al. 2006).
SGP4 outputs position in the TEME (True Equator, Mean Equinox) inertial frame. To place the sub-satellite point on the map, the tool rotates TEME into the Earth-fixed ECEF (Earth-Centered, Earth-Fixed) frame using Greenwich Mean Sidereal Time (GMST) at each sample, then converts to geodetic latitude/longitude on the ellipsoid. Pass geometry uses the standard topocentric transform (Vallado §4): the station's look angles - azimuth and elevation - are computed from the ECEF vector between station and satellite. A pass is a contiguous interval with elevation at or above your elevation mask; AOS (Acquisition of Signal) and LOS (Loss of Signal) are the rising and falling mask crossings, interpolated between samples, and TCA (Time of Closest Approach) - the elevation peak - is refined numerically inside the pass.
What bounds the accuracy: TLE freshness, more than anything else. A fresh element set is good to roughly a kilometre; the error grows about 1-3 km per day away from epoch, so pass predictions from a week-old TLE can drift by tens of seconds, and a month-old one is geometry practice, not a schedule. The tool flags a stale epoch but can't fix it - paste a current TLE from CelesTrak or Space-Track before committing an antenna. Drag is modelled only as far as SGP4's own B* term goes (no density weather, no storms), maneuvers are invisible until they show up in the next published element set, and the bundled example TLEs are deliberately historical - fixed epoch, fixed window - so the examples are reproducible rather than current.
The map is deliberately a grid-only equirectangular plot - a ground track, a station marker, and the station's visibility circle (the locus where the satellite clears the mask, from standard coverage geometry). No basemap tiles: nothing on this page phones out, and a graticule is all a ground track needs to be read correctly. This is the same physics family as the orbit-propagator and ground-station-pass tools the AI uses server-side.
pick an example scenario, or paste your own TLE. bundled TLEs are historical (fixed epoch, fixed window) so results are reproducible - for real scheduling, paste a fresh TLE and set the start to now.
Element set (TLE)
two-line element set - paste from CelesTrak or Space-Track; a name line is ignored.
epoch 2008-09-20 12:25:40 UTC · incl 51.64° · 349×358 km
Ground station
geodetic coordinates + the antenna's elevation mask.
Window
all times UTC. the physics takes the start as an input - nothing is implicit.
First pass in window
AOS 2008-09-21 10:55:04 UTC
17.0° max elev
4m 03s · 169° S → 81° E
3
Passes / 24 h
12.2 min
Total contact time
91.6 min
Orbital period
49.9°
Best max elevation
solid: ground track, ~2 orbits from window start (dot = start) · dashed: station visibility circle at the elevation mask · cross: ground station. grid-only plot, 30° graticule.
pass windows, in time order
| # | AOS (UTC) | TCA | LOS | Duration | Max elev | Azimuth |
|---|---|---|---|---|---|---|
| 1 | 2008-09-21 10:55:04 | 10:57:06 | 10:59:07 | 4m 03s | 17.0° | 169° S → 81° E |
| 2 | 2008-09-21 12:31:01 | 12:32:16 | 12:33:32 | 2m 32s | 12.1° | 285° W → 336° NW |
| 3 | 2008-09-21 22:14:17 | 22:17:07 | 22:19:57 | 5m 39s | 49.9° | 311° NW → 157° SE |
accuracy
SGP4 against a fresh TLE is good to ~1 km at epoch, degrading ~1-3 km/day - pass timing from a week-old element set can drift by tens of seconds. Elevation is sampled every 30 s and mask crossings are interpolated; the peak is refined numerically. No maneuvers, no drag beyond SGP4's own model.