One pass of a satellite over a ground dish: how far, how fast, how much signal is left after free-space loss, air and rain - and how many megabytes get through.
-orbital period
-orbital speed
-pass above the mask
-slant range, closest to horizon
-max Doppler shift
-data delivered in the pass
The science
Orbit. A circular orbit of radius r = R_E + h has speed v = sqrt(mu / r) and period T = 2 pi sqrt(r^3 / mu) (mu = 3.986e14 m^3/s^2). The period is checked against an RK4 two-body integration.
Pass geometry. The station sees the satellite at central angle lambda from it: cos(lambda) = cos(lambda_min) cos(W t), W = 2 pi / T, where lambda_min is set by the maximum elevation. Elevation: tan(el) = (cos(lambda) - R_E / r) / sin(lambda). Slant range rho = sqrt(R_E^2 + r^2 - 2 R_E r cos(lambda)). The time above an elevation mask has a closed form, 2 / W acos(cos(lambda_mask) / cos(lambda_min)).
Doppler. Range rate rho' = R_E r cos(lambda_min) W sin(W t) / rho, shift = -f rho' / c. It passes through zero at closest approach and changes fastest there.
Link budget. Free-space loss = 20 log10(4 pi rho f / c). Ground gain G = 0.55 (pi D f / c)^2. Eb/N0 = EIRP + G/T - FSPL - losses - 10 log10(k) - 10 log10(bit rate), with k = 1.38e-23 J/K (-228.6 dBW/K/Hz). Margin = Eb/N0 minus the required value; data is counted only while elevation is above the mask and margin is positive.
Rain and air. Specific rain attenuation gamma = k R^alpha dB/km with rounded ITU-R P.838-style coefficients (human spot-check advised), applied over a 3 km rain layer along the slant path with a crude horizontal reduction factor; the same rain adds sky noise T = 275 K (1 - 10^(-A/10)). Gas loss is a simple zenith value divided by sin(elevation).
Simplifications. Spherical, non-rotating Earth (every orbit repeats the same pass); circular orbit; no refraction, scintillation, pointing error or polarisation loss beyond the lumped "other losses"; fixed bit rate with no adaptive coding; the satellite and dish are drawn much larger than true scale. Presets are illustrative, not any real mission.