The Positions of a Satellite over a window, sampled by how far its
sub-point moves rather than by the clock. A fixed step is a
duration, and a duration is not a distance: an eccentric orbit spends as
long at a perigee racing at 6.2 km/s as at an apogee crawling at 0.8, so
a step fine enough for the one draws hundreds of needless points for the
other, and a step cheap enough for the other tears the one into chords of
a thousand kilometres.
The walk starts on the fixed grid maxStepSeconds gives and halves any
step whose ends are further apart than the bound, down to
minStepSeconds. So the ceiling still decides what a slow sub-point
costs — a Geostationary Satellite's figure is the grid and nothing more —
the floor still decides what a fast one costs, and the points in between
are spent where the line bends.
Both ends of the window are drawn, so the track covers exactly the span
it was asked for and its last step is bounded like every other. Where
groundTrack stops at the last whole step, this cannot: the caller draws
a track ending now against a Satellite standing there, and stopping a step
short would leave the very gap the bound exists to close.
Every point says whether the Satellite is Sunlit there, by the same
shadow test isSunlit runs, against one Sun for the whole window: the
Sun's at the window's middle. Over half an orbit the Sun moves a few
hundredths of a degree against the stars, which moves the ISS's shadow
crossings by under a second, and over half a day it moves half a
degree, which moves a Geostationary Satellite's by under a minute: either
is finer than the steps the track is drawn in, and one Sun per line is
one solar ephemeris instead of hundreds.
The Positions of a Satellite over a window, sampled by how far its sub-point moves rather than by the clock. A fixed step is a duration, and a duration is not a distance: an eccentric orbit spends as long at a perigee racing at 6.2 km/s as at an apogee crawling at 0.8, so a step fine enough for the one draws hundreds of needless points for the other, and a step cheap enough for the other tears the one into chords of a thousand kilometres.
The walk starts on the fixed grid
maxStepSecondsgives and halves any step whose ends are further apart than the bound, down tominStepSeconds. So the ceiling still decides what a slow sub-point costs — a Geostationary Satellite's figure is the grid and nothing more — the floor still decides what a fast one costs, and the points in between are spent where the line bends.Both ends of the window are drawn, so the track covers exactly the span it was asked for and its last step is bounded like every other. Where
groundTrackstops at the last whole step, this cannot: the caller draws a track ending now against a Satellite standing there, and stopping a step short would leave the very gap the bound exists to close.Every point says whether the Satellite is Sunlit there, by the same shadow test
isSunlitruns, against one Sun for the whole window: the Sun's at the window's middle. Over half an orbit the Sun moves a few hundredths of a degree against the stars, which moves the ISS's shadow crossings by under a second, and over half a day it moves half a degree, which moves a Geostationary Satellite's by under a minute: either is finer than the steps the track is drawn in, and one Sun per line is one solar ephemeris instead of hundreds.