Library

Documentation for SatelliteToolbox.jl.

SatelliteToolbox.equation_of_timeMethod
equation_of_time(t::Union{Number, DateTime})

Compute the difference between the Sun apparent local time and the Sun mean local time [rad], which is called Equation of Time, at the time t, which can be represented by a Julian Day or DateTime. The algorithm was adapted from [1, p. 178, 277-279].

References

  • [1] Vallado, D. A (2013). Fundamentals of Astrodynamics and Applications. 4th ed. Microcosm Press, Hawthorne, CA.
source
SatelliteToolbox.ltan_to_raanMethod
ltan_to_raan(ltan::Union{Number, Time}, t::Union{Number, DateTime}) -> Float64

Compute the RAAN [0, 2π] [rad] so that the local time of ascending node (LTAN) is ltan at instant t [UT1].

ltan can be represented as a Number, indicating the hour, or by a Time object.

t can be represented as a Julian Day [UT1] or DateTime [UT1].

source
SatelliteToolbox.ltdn_to_raanMethod
ltdn_to_raan(ltdn::Union{Number, Time}, t::Union{Number, DateTime}) -> Float64

Compute the RAAN [0, 2π] [rad] so that the local time of descending node (LTAN) is ltdn at instant t [UT1].

ltdn can be represented as a Number, indicating the hour, or by a Time object.

t can be represented as a Julian Day [UT1] or DateTime [UT1].

source
SatelliteToolbox.orbital_angular_velocityMethod
orbital_angular_velocity(a::Number, e::Number, i::Number; kwargs...) -> T
orbital_angular_velocity(orb::Orbit{Tepoch, T}; kwargs...) where {Tepoch<:Number, T<:Number} -> T

Compute the angular velocity [rad/s] of an object in an orbit with semi-major axis a [m], eccentricity e, and inclination i [rad]. The orbit can also be specified by orb (see Orbit).

Note

The output type T in the first signature is obtained by promoting the inputs to a float type.

Keywords

  • perturbation::Symbol: Symbol to select the perturbation terms that will be used. (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)

Perturbations

The keyword argument perturbation can be used to select the perturbation terms that will be considered in the computation. The possible values are:

  • :J0: Consider a Keplerian orbit.
  • :J2: Consider the perturbation terms up to J2.
  • :J4: Consider the perturbation terms J2, J4, and J2².

If perturbation is omitted, it defaults to :J2.

source
SatelliteToolbox.orbital_angular_velocity_to_semimajor_axisMethod
orbital_angular_velocity_to_semimajor_axis(angvel::Number, e::Number, i::Number; kwargs...) -> T, Bool

Compute the semi-major axis [m] that will provide an angular velocity angvel [rad / s] in an orbit with eccentricity e and inclination i [rad].

Notice that the angular velocity angvel is related to the nodal period, i.e. the time between two consecutive passages by the ascending node.

Note

The output type T in the first signature is obtained by promoting the inputs to a float type.

Keywords

  • max_iterations::Int: Maximum number of iterations allowed in the Newton-Raphson algorithm. (Default = 20)
  • perturbation::Symbol: Symbol to select the perturbation terms that will be used. (Default: :J2)
  • tolerance::Union{Nothing, Number}: Residue tolerances to verify if the numerical method has converged. If it is nothing, √eps(T) will be used, where T is the internal type for the computations. Notice that the residue function unit is [deg / min]. (Default = nothing)
  • 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)

Returns

  • T: Semi-major axis [m].
  • Bool: true if the numerical method converged, false otherwise.

Perturbations

The keyword argument perturbation can be used to select the perturbation terms that will be considered in the computation. The possible values are:

  • :J0: Consider a Keplerian orbit.
  • :J2: Consider the perturbation terms up to J2.
  • :J4: Consider the perturbation terms J2, J4, and J2².

If perturbation is omitted, it defaults to :J2.

source
SatelliteToolbox.orbital_periodMethod
orbital_period(a::Number, e::Number, i::Number; kwargs...) -> T
orbital_period(orb::Orbit{Tepoch, T}; kwargs...) where {Tepoch<:Number, T<:Number} -> T

Compute the orbital period [s] of an object in an orbit with semi-major axis a [m], eccentricity e, and inclination i [rad]. The orbit can also be specified by orb (see Orbit).

Note

The output type T in the first signature is obtained by promoting the inputs to a float type.

Keywords

  • perturbation::Symbol: Symbol to select the perturbation terms that will be used. (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)

Perturbations

The keyword argument perturbation can be used to select the perturbation terms that will be considered in the computation. The possible values are:

  • :J0: Consider a Keplerian orbit.
  • :J2: Consider the perturbation terms up to J2.
  • :J4: Consider the perturbation terms J2, J4, and J2².

If perturbation is omitted, it defaults to :J2.

source
SatelliteToolbox.raan_time_derivativeMethod
raan_time_derivative(a::Number, e::Number, i::Number; kwargs...) -> T

Compute the time derivative of the right ascension of the ascending node (RAAN) [rad / s] in an orbit with semi-major axis a [m], eccentricity e, and inclination i [rad]. The orbit can also be specified by orb (see Orbit).

Note

The output type T in the first signature is obtained by promoting the inputs to a float type.

Keywords

  • perturbation::Symbol: Symbol to select the perturbation terms that will be used. (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)

Perturbations

The keyword argument perturbation can be used to select the perturbation terms that will be considered in the computation. The possible values are:

  • :J0: Consider a Keplerian orbit.
  • :J2: Consider the perturbation terms up to J2.
  • :J4: Consider the perturbation terms J2, J4, and J2².

If perturbation is omitted, it defaults to :J2.

source
SatelliteToolbox.raan_to_ltanMethod
raan_to_ltan(raan::Number, t::Union{Number, DateTime}) -> Float64

Compute the local time of the ascending node (LTAN) given the raan at instant t [UT1].

t can be represented as a Julian Day [UT1] or DateTime [UT1].

source
SatelliteToolbox.raan_to_ltdnMethod
raan_to_ltdn(raan::Number, t::Union{Number, DateTime}) -> Float64

Compute the local time of the ascending node (LTDN) given the raan at instant t [UT1].

t can be represented as a Julian Day [UT1] or DateTime [UT1].

source