Ground Repeating Orbits

A ground repeating orbit is any orbit in which the number of revolutions per day is a rational number:

\[R_d = I + \frac{N}{D}\ ,\]

where $I, N, D \in \mathbb{N}$. Hence, this type of orbit repeats its ground track after $D$ (solar) days, which is called the orbit cycle. Those orbits are largely used in remote sensing missions because the satellite revisits the same regions periodically.

Since the ground track repeats, the distance between two adjacent ground tracks at the Equator is constant. This information is paramount to design the payload of a remote sensing mission: if the swath is smaller than this distance, there will be gaps in the coverage.

Adjacent Track Distance

We can compute the distance between two adjacent ground tracks at the Equator using the function ground_repeating_orbit_adjacent_track_distance:

SatelliteAnalysis.ground_repeating_orbit_adjacent_track_distanceFunction
ground_repeating_orbit_adjacent_track_distance(a::T1, e::T2, i::T3, orbit_cycle::Integer; kwargs...) where {T1 <: Number, T2 <: Number, T3 <: Number} -> T

Compute the adjacent track distance [m] at Equator in a ground repeating orbit. The orbit is described by its semi-major axis a [m], eccentricity e [ ], inclination i [rad], and orbit cycle orbit_cycle [day].

Warning

The code does not check if the orbit is ground-repeating with orbit_cycle [day].

Note

Internally, this function uses the precision obtained by promoting T1, T2, and T3 to a floating-point number T.

Keywords

  • perturbation::Symbol: Symbol to select the perturbation terms that will be used. It can be :J0, :J2, or :J4. (Default: :J2)
  • m0::Number: Standard gravitational parameter for Earth [m³ / s²]. (Default: GM_EARTH)
  • J2::Number: J₂ perturbation term. (Default: EGM_2008_J2)
  • J4::Number: J₄ perturbation term. (Default: EGM_2008_J4)
  • R0::Number: Earth's equatorial radius [m]. (Default: EARTH_EQUATORIAL_RADIUS)
  • we::Number: Earth's angular speed [rad / s]. (Default: EARTH_ANGULAR_SPEED)

Extended help

A ground repeating orbit is any orbit that the number of revolutions per day is a rational number. Hence, this type of orbit repeats its ground trace after a finite number of days.

The information orbit_cycle is redundant given that we have a, e, and i. However, it is necessary to improve the algorithm precision. Otherwise, the orbit_cycle must be obtained by computing the orbit period using a, e, and i and then converting it to a rational number, leading to numerical problems.

Throws

  • ArgumentError: If orbit_cycle is not positive.
source

Adjacent Track Angle

The angle between two adjacent ground tracks at the Equator measured from the satellite position is also useful to design the payload because it defines the required field of view of a camera, for example. We can compute it using the function ground_repeating_orbit_adjacent_track_angle:

SatelliteAnalysis.ground_repeating_orbit_adjacent_track_angleFunction
ground_repeating_orbit_adjacent_track_angle(a::T1, e::T2, i::T3, orbit_cycle::Integer; kwargs...) where {T1 <: Number, T2 <: Number, T3 <: Number} -> T

Compute the adjacent track angle [rad] at Equator in a ground repeating orbit measured from the satellite position. The orbit is described by its semi-major axis a [m], eccentricity e [ ], inclination i [rad], and orbit cycle orbit_cycle [day].

Warning

The code does not check if the orbit is ground-repeating with orbit_cycle [day].

Note

Internally, this function uses the precision obtained by promoting T1, T2, and T3 to a floating-point number T.

Keywords

  • perturbation::Symbol: Symbol to select the perturbation terms that will be used. It can be :J0, :J2, or :J4. (Default: :J2)
  • m0::Number: Standard gravitational parameter for Earth [m³ / s²]. (Default: GM_EARTH)
  • J2::Number: J₂ perturbation term. (Default: EGM_2008_J2)
  • J4::Number: J₄ perturbation term. (Default: EGM_2008_J4)
  • R0::Number: Earth's equatorial radius [m]. (Default: EARTH_EQUATORIAL_RADIUS)
  • we::Number: Earth's angular speed [rad / s]. (Default: EARTH_ANGULAR_SPEED)

Extended help

A ground repeating orbit is any orbit that the number of revolutions per day is a rational number. Hence, this type of orbit repeats its ground trace after a finite number of days.

The information orbit_cycle is redundant given that we have a, e, and i. However, it is necessary to improve the algorithm precision. Otherwise, the orbit_cycle must be obtained by computing the orbit period using a, e, and i and then converting it to a rational number, leading to numerical problems.

Throws

  • ArgumentError: If orbit_cycle is not positive.
source

Examples

The Sun-synchronous orbit of the Amazonia-1 mission repeats its ground track after 5 days with 14 + 2/5 revolutions per day. The distance [km] between two adjacent ground tracks at the Equator is:

julia> a = 7130.982e37.130982e6
julia> e = 0.0011110.001111
julia> i = 98.410 |> deg2rad1.7175785168876196
julia> ground_repeating_orbit_adjacent_track_distance(a, e, i, 5) / 1000543.812020223504

Hence, the swath of the camera must be larger than this value to avoid gaps in the coverage. The angle [°] between two adjacent ground tracks measured from the satellite is:

julia> ground_repeating_orbit_adjacent_track_angle(a, e, i, 5) |> rad2deg39.42560168754063
Note

The function design_sun_sync_ground_repeating_orbit lists all the Sun-synchronous, ground-repeating orbits in a range of orbit cycles together with those two quantities. See Sun-Synchronous Orbits for more information.