Library
Documentation for SatelliteToolbox.jl.
SatelliteToolbox.equation_of_time — Method
equation_of_time(t::Union{Number, DateTime}) -> Float64Compute 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 [UT1], 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.
SatelliteToolbox.ltan_to_raan — Method
ltan_to_raan(ltan::Union{Number, Time}, t::Union{Number, DateTime}) -> Float64Compute 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]. Strictly speaking, the Sun position model expects t in the TDB time scale. However, using UT1 leads to a negligible error in this low-precision computation.
SatelliteToolbox.ltdn_to_raan — Method
ltdn_to_raan(ltdn::Union{Number, Time}, t::Union{Number, DateTime}) -> Float64Compute the RAAN [0, 2π] [rad] so that the local time of descending node (LTDN) 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]. Strictly speaking, the Sun position model expects t in the TDB time scale. However, using UT1 leads to a negligible error in this low-precision computation.
SatelliteToolbox.orbital_angular_velocity — Method
orbital_angular_velocity(a::Number, e::Number, i::Number; kwargs...) -> T
orbital_angular_velocity(orb::Orbit{Tepoch, T}; kwargs...) where {Tepoch<:Number, T<:Number} -> TCompute 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).
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.
SatelliteToolbox.orbital_angular_velocity_to_semimajor_axis — Method
orbital_angular_velocity_to_semimajor_axis(angvel::Number, e::Number, i::Number; kwargs...) -> T, BoolCompute 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.
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 tolerance to verify if the numerical method has converged. It must be greater than 0, otherwise this function throws anArgumentError. If it isnothing,√eps(T)will be used, whereTis 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:trueif the numerical method converged,falseotherwise.
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.
SatelliteToolbox.orbital_period — Method
orbital_period(a::Number, e::Number, i::Number; kwargs...) -> T
orbital_period(orb::Orbit{Tepoch, T}; kwargs...) where {Tepoch<:Number, T<:Number} -> TCompute 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).
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.
SatelliteToolbox.raan_time_derivative — Method
raan_time_derivative(a::Number, e::Number, i::Number; kwargs...) -> T
raan_time_derivative(orb::Orbit{Tepoch, T}; kwargs...) where {Tepoch<:Number, T<:Number} -> TCompute 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).
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.
SatelliteToolbox.raan_to_ltan — Method
raan_to_ltan(raan::Number, t::Union{Number, DateTime}) -> Float64Compute the local time of the ascending node (LTAN) [hour] given the raan [rad] at instant t [UT1].
t can be represented as a Julian Day [UT1] or DateTime [UT1]. Strictly speaking, the Sun position model expects t in the TDB time scale. However, using UT1 leads to a negligible error in this low-precision computation.
SatelliteToolbox.raan_to_ltdn — Method
raan_to_ltdn(raan::Number, t::Union{Number, DateTime}) -> Float64Compute the local time of the descending node (LTDN) [hour] given the raan [rad] at instant t [UT1].
t can be represented as a Julian Day [UT1] or DateTime [UT1]. Strictly speaking, the Sun position model expects t in the TDB time scale. However, using UT1 leads to a negligible error in this low-precision computation.