Ground Tracks and Orbital Geometry
modelling Level 4

Ground Tracks and Orbital Geometry

A satellite orbits in a fixed plane while Earth rotates beneath it. The ground track—the satellite's path plotted on Earth's surface—shifts westward with each orbit. This model shows how to calculate ground tracks by combining orbital motion with Earth's rotation, enabling prediction of when satellites pass overhead.

Prerequisites: coordinate transforms, orbital geometry, ground track calculation

Updated 11 min read

1. The Question

Where on Earth is a satellite at any given time?

A satellite orbits in a fixed plane through space. But Earth rotates beneath it, so the ground track — the point directly below the satellite — traces a path across the surface.

Key observations:

  • The satellite’s orbital plane is fixed (relative to the stars)
  • Earth rotates eastward at 15.04°/hour
  • Each successive orbit crosses the equator farther west than the previous one

The mathematical question: Given a satellite’s orbital parameters and the current time, where is the sub-satellite point on Earth’s surface?


2. The Conceptual Model

Orbital Plane vs. Rotating Earth

In an inertial (non-rotating) frame:

  • The satellite orbits in a fixed plane
  • The orbital plane is defined by its inclination $i$ (angle relative to the equator)

In Earth’s rotating frame:

  • The satellite appears to trace a sinusoidal path across the surface
  • The maximum latitude reached is ±$i$ (the inclination)
  • The ground track shifts westward by $\Delta\lambda$ degrees per orbit

Westward Shift Per Orbit

During one orbital period $T$, Earth rotates through angle:

\[\Delta\lambda = 360° \times \frac{T}{T_{\text{Earth}}}\]

Where $T_{\text{Earth}} = 86164$ s (sidereal day).

Example: For a 90-minute orbit ($T = 5400$ s):

\[\Delta\lambda = 360° \times \frac{5400}{86164} = 22.5°\]

Each orbit’s ground track is 22.5° west of the previous one.


3. Building the Mathematical Model

Step 1: Satellite Position in Orbital Frame

Assume a circular orbit with:

  • Orbital radius $r$
  • Inclination $i$ (angle between orbital plane and equator)
  • True anomaly $\nu$ (satellite’s angular position in its orbit, measured from ascending node)

Position in orbital plane (2D coordinates):

\(x_{\text{orb}} = r\cos\nu\) \(y_{\text{orb}} = r\sin\nu\)

Ascending node: The point where the satellite crosses the equator going northward.

Step 2: Rotate to Equatorial Frame

The orbital plane is tilted at inclination $i$. Rotate the position vector:

In 3D (equatorial frame):

\[x_{\text{eq}} = x_{\text{orb}} = r\cos\nu\] \[y_{\text{eq}} = y_{\text{orb}}\cos i = r\sin\nu\cos i\] \[z_{\text{eq}} = y_{\text{orb}}\sin i = r\sin\nu\sin i\]

This assumes the ascending node is at longitude 0° at time $t=0$.

Step 3: Account for Earth’s Rotation

The ascending node’s longitude at time $t$:

\[\lambda_{\text{node}}(t) = \lambda_0 - \omega_{\oplus} t\]

Where:

  • $\lambda_0$ is the ascending node longitude at $t=0$
  • $\omega_{\oplus} = 360°/86164 \approx 0.004178°/\text{s}$ is Earth’s rotation rate

Rotate the satellite position by $-\lambda_{\text{node}}(t)$ to get Earth-fixed coordinates.

Step 4: Convert to Latitude/Longitude

From Cartesian $(x, y, z)$ in the Earth-fixed frame:

\[\text{latitude} = \arcsin\left(\frac{z}{r}\right)\] \[\text{longitude} = \arctan2(y, x)\]

Where $r = \sqrt{x^2 + y^2 + z^2}$ (should equal orbital radius).


4. Worked Example by Hand

Problem: A satellite has:

  • Altitude: 600 km → $r = 6971$ km
  • Inclination: $i = 45°$
  • At $t=0$, satellite is at ascending node ($\nu = 0°$, longitude = 0°)

Calculate the ground track position after 15 minutes ($t = 900$ s).

Solution

Step 1: Satellite’s position in orbit

First, find how far the satellite has moved in its orbit.

Orbital period (from Model 13):

\[T = 2\pi\sqrt{\frac{r^3}{\mu}} = 2\pi\sqrt{\frac{(6971)^3}{398600}} \approx 5820 \text{ s}\]

Angular velocity in orbit:

\[\omega_{\text{orb}} = \frac{2\pi}{T} = \frac{2\pi}{5820} = 0.001079 \text{ rad/s}\]

True anomaly after 900 s:

\[\nu = \omega_{\text{orb}} \times 900 = 0.001079 \times 900 = 0.9713 \text{ rad} = 55.6°\]

Satellite position in orbital plane:

\[x_{\text{orb}} = 6971 \cos(55.6°) = 6971 \times 0.564 = 3931 \text{ km}\] \[y_{\text{orb}} = 6971 \sin(55.6°) = 6971 \times 0.826 = 5758 \text{ km}\]

Step 2: Convert to equatorial frame

\[x_{\text{eq}} = 3931 \text{ km}\] \[y_{\text{eq}} = 5758 \times \cos(45°) = 5758 \times 0.707 = 4071 \text{ km}\] \[z_{\text{eq}} = 5758 \times \sin(45°) = 5758 \times 0.707 = 4071 \text{ km}\]

Step 3: Account for Earth’s rotation

Earth has rotated through:

\[\Delta\lambda_{\text{Earth}} = 0.004178°/\text{s} \times 900\text{ s} = 3.76°\]

The ascending node (initially at 0°) is now at:

\[\lambda_{\text{node}} = 0° - 3.76° = -3.76°\]

Rotate the satellite’s position by $-\lambda_{\text{node}} = 3.76°$ eastward.

This is a rotation around the z-axis:

\[x' = x\cos(3.76°) - y\sin(3.76°) = 3931 \times 0.9978 - 4071 \times 0.0656 = 3657 \text{ km}\] \[y' = x\sin(3.76°) + y\cos(3.76°) = 3931 \times 0.0656 + 4071 \times 0.9978 = 4320 \text{ km}\] \[z' = z = 4071 \text{ km}\]

Step 4: Convert to lat/lon

\[\text{latitude} = \arcsin\left(\frac{4071}{6971}\right) = \arcsin(0.584) = 35.7°\text{N}\] \[\text{longitude} = \arctan2(4320, 3657) = 49.8°\text{E}\]

Ground track position after 15 minutes: (35.7°N, 49.8°E)


5. Computational Implementation

Below is an interactive ground track simulator.

Try this:

  • ISS preset: 51.6° inclination means it reaches ±51.6° latitude (no polar coverage)
  • Polar preset: 90° inclination gives global coverage, passes over both poles
  • SSO preset: 98° inclination (retrograde) — ground track repeats after ~14 orbits
  • Increase number of orbits: See the westward shift accumulate
  • Notice: Lower inclinations create tighter sinusoidal patterns

Key insight: The westward shift per orbit combined with the sinusoidal path creates the characteristic ground track pattern.


6. Interpretation

Inclination Determines Coverage

Equatorial orbit ($i = 0°$): Only observes equatorial latitudes

Mid-latitude orbit ($i = 51.6°$, like ISS): Coverage from 51.6°S to 51.6°N

  • Most of Earth’s population lives in this band
  • Optimizes for human observation and rendezvous

Polar orbit ($i = 90°$): Global coverage including poles

  • Essential for Earth observation missions
  • Weather satellites, reconnaissance

Sun-synchronous ($i \approx 98°$, retrograde): Crosses equator at the same local time

  • Consistent lighting for optical imagery
  • Orbital plane precesses at ~1°/day to match Earth’s orbit around Sun

Repeat Ground Tracks

Some satellites are placed in repeat ground track orbits where the ground track pattern repeats exactly after $N$ orbits.

Condition:

\[\frac{N \times T}{T_{\text{Earth}}} = \text{integer}\]

Example: Landsat 8 at 705 km altitude has $T = 98.9$ minutes. After 233 orbits (16 days), the ground track repeats exactly.

Why useful: Allows direct comparison of images from the same orbital geometry.


7. What Could Go Wrong?

Forgetting the Sign of Earth’s Rotation

Earth rotates eastward (west to east). The ground track shifts westward (in the opposite direction).

If you add instead of subtract the Earth rotation angle, the ground track will spiral eastward instead of westward.

Mixing Up Inclination and Latitude

Inclination is the angle between the orbital plane and the equator (0°–180°).

Maximum latitude reached is ±inclination (for $i \leq 90°$).

Retrograde orbits have $i > 90°$. For example, $i = 98°$ is 82° retrograde and reaches ±82° latitude.

Assuming Ground Track Longitude is Satellite’s Longitude

The sub-satellite point (ground track) is directly below the satellite. But the satellite itself is at altitude $h$, not on the surface.

Line-of-sight calculations (can the satellite see a ground station?) require 3D geometry, not just lat/lon matching.

Neglecting Orbital Perturbations

Real satellites experience:

  • Atmospheric drag (LEO): Orbit decays, period shortens
  • J2 perturbation (Earth’s oblateness): Ascending node precesses, argument of perigee changes
  • Solar/lunar gravity: Small perturbations

For long-term predictions (days/weeks), these matter.


8. Extension: Ascending Node Longitude

The longitude of the ascending node ($\Omega$, capital omega) specifies where the satellite crosses the equator going northward.

How it changes:

For polar orbits, $\Omega$ remains nearly constant (in inertial space).

For inclined orbits, J2 perturbation causes $\Omega$ to precess:

\[\frac{d\Omega}{dt} = -\frac{3}{2} \frac{J_2 R_{\oplus}^2 n}{(a(1-e^2))^2} \cos i\]

Where:

  • $J_2 = 1.0826 \times 10^{-3}$ (Earth’s oblateness coefficient)
  • $n$ is mean motion (radians per second)
  • $a$ is semi-major axis
  • $e$ is eccentricity (= 0 for circular)
  • $i$ is inclination

For sun-synchronous orbits, this precession is set to match Earth’s orbital motion around the Sun (~0.9856°/day).


9. Math Refresher: Rotation Matrices

Rotation Around the Z-Axis

To rotate a point $(x, y, z)$ by angle $\theta$ around the z-axis:

\[\begin{pmatrix} x' \\ y' \\ z' \end{pmatrix} = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix}\]

Result:

\(x' = x\cos\theta - y\sin\theta\) \(y' = x\sin\theta + y\cos\theta\) \(z' = z\)

Rotation Around the X-Axis (Inclination)

To rotate by inclination $i$ around the x-axis:

\[\begin{pmatrix} x' \\ y' \\ z' \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos i & -\sin i \\ 0 & \sin i & \cos i \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix}\]

Ground track calculations combine multiple rotations:

  1. Position in orbital plane
  2. Rotate by inclination (tilt the plane)
  3. Rotate by longitude of ascending node (orient in space)
  4. Rotate by Earth’s rotation (convert to Earth-fixed frame)

Summary

  • Ground track: Path traced by the sub-satellite point on Earth’s surface
  • Westward shift: Each orbit crosses the equator ~$360° \times T/86164$ west of the previous
  • Inclination determines maximum latitude reached (±$i$)
  • Polar orbits ($i = 90°$) provide global coverage
  • Sun-synchronous orbits ($i \approx 98°$) maintain constant local solar time
  • Ground track calculation combines orbital geometry with Earth’s rotation
  • Repeat ground tracks require specific altitude/period relationships

References