Library

Documentation for AstroCoords.jl.

AstroCoords.AstroCoordTransformationType
abstract type AstroCoordTransformation <: AstrodynamicsTransformation

An abstract type representing a Transformation Between Astrodynamics Coordinates with no Time Regularization

source
AstroCoords.CartesianType
Cartesian{T} <: AstroCoord

Cartesian Orbital Elements. 6D parameterziation of the orbit. x - X-position y - Y-position z - Z-position ẋ - X-velocity ẏ - Y-velocity ż - Z-velocity

Constructors Cartesian(x, y, z, ẋ, ẏ, ż) Cartesian(X::AbstractArray) Cartesian(X::AstroCoord, μ::Number)

source
AstroCoords.CoordinateType
abstract type AstroCoord{N, T} <: StaticMatrix{N, 1, T}

An abstract type representing a N-Dimensional Coordinate Set

source
AstroCoords.CylindricalType
Cylindrical{T} <: AstroCoord

Cylindrical Orbital Elements. 6D parameterziation of the orbit ρ - in-plane radius θ - in-plane angle z - out-of-plane distance ρdot - instantaneous rate of change of in-plsne radius θdot - instantaneous rate of change of θ ż - instantaneous rate of change of z

Constructors Cylindrical(r, θ, z, ṙ, θdot, ż) Cylindrical(X::AbstractArray) Cylindrical(X::AstroCoord, μ::Number)

source
AstroCoords.DelaunayType
Delaunay{T} <: AstroCoord

Delaunay Orbital Elements. 6D parameterziation of the orbit. L - Canonical Keplerian Energy G - Canonical Total Angular Momentum H - Canonical Normal Angular Momentum (Relative to Equator) M - Mean Anomaly ω - Argument of Periapsis Ω - Right Ascention of the Ascending Node

Constructors Delaunay(L, G, H, M, ω, Ω) Delaunay(X::AbstractVector{<:Number}) Delaunay(X::AstroCoord, μ::Number)

source
AstroCoords.KeplerianType
Keplerian{T} <: AstroCoord

Keplerian Orbital Elements. 6D parameterziation of the orbit. a - semi-major axis e - eccetricity i - inclination Ω - Right Ascension of Ascending Node ω - Argument of Perigee f - True Anomaly

Constructors Keplerian(a, e, i, Ω, ω, f) Keplerian(X::AbstractArray) Keplerian(X::AstroCoord, μ::Number)

source
AstroCoords.MilankovichType
Milankovich{T} <: AstroCoord

Milankovich Orbital Elements. 7D parameterziation of the orbit. hx - X-component of Angular Momentum Vector hy - Y-component of Angular Momentum Vector hz - Z-component of Angular Momentum Vector ex - X-component of Eccentricity Vector ey - Y-component of Eccentricity Vector ez - Z-component of Eccentricity Vector L - Mean Anomaly

Constructors Milankovich(hx, hy, hz, ex, ey, ez, L) Milankovich(X::AbstractArray) Milankovich(X::AstroCoord, μ::Number)

source
AstroCoords.ModEqType
ModEq{T} <: AstroCoord

Modified Equinoctial Orbital Elements. 6D parameterziation of the orbit. p - f - g - h - k - L -

Constructors ModEq(p, f, g, h, k, l) ModEq(X::AbstractArray) ModEq(X::AstroCoord, μ::Number)

source
AstroCoords.SphericalType
Spherical{T} <: AstroCoord

Spherical Orbital Elements. 6D parameterziation of the orbit r - radius θ - in-plane angle ϕ - out-of-plane angle ṙ - instantaneous rate of change of radius θdot - instantaneous rate of change of θ ϕdot - instantaneous rate of change of ϕ

Constructors Spherical(r, θ, ϕ, ṙ, ω, Ω) Spherical(X::AbstractArray) Spherical(X::AstroCoord, μ::Number)

source
AstroCoords.TransformationType

The Transformation supertype defines a simple interface for performing transformations. Subtypes should be able to apply a coordinate system transformation on the correct data types by overloading the call method, and usually would have the corresponding inverse transformation defined by Base.inv(). Efficient compositions can optionally be defined by compose() (equivalently ).

source
AstroCoords.USM6Type
USM6{T} <: AstroCoord

Unified State Model Orbital Elements. 6D parameterziation of the orbit using Velocity Hodograph and MRP's C - Velocity Hodograph Component Normal to the Radial Vector Laying in the Orbital Plane Rf1 - Velocity Hodograph Component 90 degrees ahead of the Eccentricity Vector - Along the Intermediate Rotating Frame X-Axis Rf2 - Velocity Hodograph Component 90 degrees ahead of the Eccentricity Vector - Along the Intermediate Rotating Frame Y-Axis σ1 - First Modified Rodriguez Parameter σ2 - Second Modified Rodriguez Parameter σ3 - Third Modified Rodriguez Parameter

Constructors USM6(C, Rf1, Rf2, σ1, σ2, σ3) USM6(X::AbstractArray) USM6(X::AstroCoord, μ::Number)

source
AstroCoords.USM7Type
USM7{T} <: AstroCoord

Unified State Model Orbital Elements. 7D parameterziation of the orbit using Velocity Hodograph and Quaternions C - Velocity Hodograph Component Normal to the Radial Vector Laying in the Orbital Plane Rf1 - Velocity Hodograph Component 90 degrees ahead of the Eccentricity Vector - Along the Intermediate Rotating Frame X-Axis Rf2 - Velocity Hodograph Component 90 degrees ahead of the Eccentricity Vector - Along the Intermediate Rotating Frame Y-Axis ϵO1 - First Imaginary Quaternion Component ϵO2 - Second Imaginary Quaternion Component ϵO3 - Third Imaginary Quaternion Component η0 - Real Quaternion Component

Constructors USM7(C, Rf1, Rf2, ϵO1, ϵO2, ϵO3, η0) USM7(X::AbstractArray) USM7(X::AstroCoord, μ::Number)

source
AstroCoords.USMEMType
USMEM{T} <: AstroCoord

Unified State Model Orbital Elements. 6D parameterziation of the orbit using Velocity Hodograph and Exponential Mapping C - Velocity Hodograph Component Normal to the Radial Vector Laying in the Orbital Plane Rf1 - Velocity Hodograph Component 90 degrees ahead of the Eccentricity Vector - Along the Intermediate Rotating Frame X-Axis Rf2 - Velocity Hodograph Component 90 degrees ahead of the Eccentricity Vector - Along the Intermediate Rotating Frame Y-Axis a1 - First Exponential Mapping Component a2 - First Exponential Mapping Component a3 - First Exponential Mapping Component

Constructors USMEM(C, Rf1, Rf2, a1, a2, a3) USMEM(X::AbstractArray) USMEM(X::AstroCoord, μ::Number)

source
AstroCoords.KeplerSolverMethod

Solves for True Anomaly given the Mean Anomaly and eccentricity of an Orbit

Arguments: -'M::Number': Mean Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'f::Number': True Anomaly of the orbit *All angles are in radians

source
AstroCoords.Mil2cartMethod

Mil2cart(u::AbstractVector{<:Number}, μ::Number)

Converts Milankovich State Vector into the Cartesian State

Arguments: -'u::AbstractVector{<:Number}': Milankovich State Vector [H; e; L] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż]

source
AstroCoords.ModEq2koeMethod
ModEq2koe(u::AbstractVector{<:Number}, μ::Number)

Converts Modified Equinoctial Elements into the Keplerian Elements

Arguments: -'u:AbstractVector{<:Number}': Modified Equinoctial State Vector [p; f; g; h; k; l] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_koe::Vector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); ν(True Anomaly)] *All Angles are in Radians

source
AstroCoords.ModEqN2koeMethod
ModEqN2koe(u::AbstractVector{<:Number}, μ::Number)

Converts Modified Equinoctial Elements with Mean Motion into the Keplerian Elements

Arguments: -'u:AbstractVector{<:Number}': Modified Equinoctial State Vector [p; f; g; h; k; l] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_koe::Vector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); ν(True Anomaly)] *All Angles are in Radians

source
AstroCoords.USM62USM7Method
USM62USM7(u::AbstractArray{<:Number}, μ::Number)

Converts USM with Modified Rodrigue Parameters to USM with Quaternions

Arguments: -'u::AbstractVector{<:Number}': USM6 Vector [C; Rf1; Rf2; σ1; σ2; σ3] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_USM::Vector{Number}': Unified State Model Vector [C; Rf1; Rf2; ϵO1; ϵO2; ϵO3; η0]

source
AstroCoords.USM72USM6Method
USM72USM6(u::AbstractVector{<:Number}, μ::Number)

Converts USM with Quaternions to USM with Modified Rodrigue Parameters

Arguments: -'u::AbstractVector{<:Number}': Unified State Model Vector [C; Rf1; Rf2; ϵO1; ϵO2; ϵO3; η0] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_USM6::Vector{Number}': USM6 State Vector [C; Rf1; Rf2; σ1; σ2; σ3]

source
AstroCoords.USM72USMEMMethod
USM72USMEM(u::AbstractVector{<:Number}, μ::Number)

Converts USM with Quaternions to USM with Exponential Mapping

Arguments: -'u::AbstractVector{<:Number}': Unified State Model Vector [C; Rf1; Rf2; ϵO1; ϵO2; ϵO3; η0] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_USMEM::Vector{Number}': USMEM State Vector [C; Rf1; Rf2; a1; a2; a3, Φ]

source
AstroCoords.USM72koeMethod
USM72koe(u::AbstractVector{<:Number}, μ::Number)

Converts Unified State Model elements into the Keplerian Orbital Element Set Van den Broeck, Michael. "An Approach to Generalizing Taylor Series Integration for Low-Thrust Trajectories." (2017). https://repository.tudelft.nl/islandora/object/uuid%3A2567c152-ab56-4323-bcfa-b076343664f9

Arguments: -'u::AbstractVector{<:Number}': Unified State Model Vector [C; Rf1; Rf2; ϵO1; ϵO2; ϵO3; η0] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_koe:Vector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); f(True Anomaly)] *All Angles are in Radians

source
AstroCoords.USMEM2USM7Method
USMEM2USM7(u::AbstractVector{<:Number}, μ::Number)

Converts USM with Exponential Mapping to USM with Quaternions

Arguments: -'u::AbstractVector{<:Number}': USMEM Vector [C; Rf1; Rf2; a1; a2; a3, Φ] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_USM::Vector{<:Number}': Unified State Model Vector [C; Rf1; Rf2; ϵO1; ϵO2; ϵO3; η0]

source
AstroCoords.angularMomentumQuantityMethod

Computes the Instantaneous Angular Velocity Quantity

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż]

Returns -'angular_momentum::Number' - Norm of Angular Momentum Vector

source
AstroCoords.angularMomentumQuantityMethod

Computes the Instantaneous Angular Velocity Quantity

Arguments: -'X::AstroCoord': Astro Coordinate -'μ::Number': Standard Graviational Parameter of Central Body

Returns -'angular_momentum::Number' - Norm of Angular Momentum Vector

source
AstroCoords.angularMomentumVectorMethod

Computes the Instantaneous Angular Velocity Vector

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż]

Returns -'angular_momentum::Vector{<:Number}' - 3-Dimensional Angular Momemtum Vector

source
AstroCoords.angularMomentumVectorMethod

Computes the Instantaneous Angular Velocity Vector

Arguments: -'X::AstroCoord': Astro Coordinate -'μ::Number': Standard Graviational Parameter of Central Body

Returns -'angular_momentum::Vector{<:Number}' - 3-Dimensional Angular Momemtum Vector

source
AstroCoords.cart2MilMethod
cart2Mil(u::AbstractVector{<:Number}, μ::Number)

Converts Cartesian State Vector into the Milankovich State

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_Mil::Vector{Number}': Milankovich State Vector [H; e; L]

source
AstroCoords.cart2cylindMethod

cart2cylind(u::AbstractVector{<:Number}, μ::Number)

Computes the Cylindrical Orbital Elements from a Cartesian Set

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cylind::Vector{<:Number}': Cylindrical Orbital Element Vector [r; θ; z; ṙ; θdot; ż] *All Angles are in Radians

source
AstroCoords.cart2delaunayMethod
cart2delaunay(u::AbstractVector{<:Number}, μ::Number)

Computes the Delaunay Orbital Elements from a Cartesian Set

Arguments: -'u::AbstractVector{<:Number}': Cartesian Orbital Element Vector [x; y; z; ẋ; ẏ; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Delaunay Orbital Element Vector [L; G; H; M; ω; Ω] *All Angles are in Radians

source
AstroCoords.cart2koeMethod
cart2koe(u::AbstractVector{T}, μ::Number; equatorial_tol::Float64=1E-15, circular_tol::Float64=1E-15)

Computes the Keplerian Orbital Elements from a Cartesian Set.

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_koe::Vector{<:Number}': Keplerian Orbital Element Vector [a; e; i; Ω(RAAN); ω(AOP); f(True Anomaly)] *All Angles are in Radians

source
AstroCoords.cart2koeMMethod

Converts Cartesian State Vector into the Alternative Keplerian State Vector

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Alternative Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); M(Mean Anomaly)]

source
AstroCoords.cart2sphereMethod
cart2sphere(u::AbstractVector{<:Number}, μ::Number)

Computes the Spherical Orbital Elements from a Spherical Set

Arguments: -'u::AbstractVector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_sphere::Vector{<:Number}': Spherical Orbital Element Vector [r; θ; ϕ; ṙ; θdot; ϕdot] *All Angles are in Radians

source
AstroCoords.cylind2cartMethod
cylind2cart(u::AbstractVector{<:Number}, μ::Number)

Computes the Cartesian Orbital Elements from a Cylindrical Set

Arguments: -'u::AbstractVector{<:Number}': Cylindrical State Vector [r; θ; z; ṙ; θdot; ż] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Cartesian Orbital Element Vector [x; y; z; ẋ; ẏ; ż] *All Angles are in Radians

source
AstroCoords.delaunay2cartMethod
delaunay2cart(u::AbstractVector{<:Number}, μ::Number)

Computes the Cartesian Orbital Elements from a Delaunay Set Laskar, Jacques. "Andoyer construction for Hill and Delaunay variables." Celestial Mechanics and Dynamical Astronomy 128.4 (2017): 475-482.

Arguments: -'u::AbstractVector{<:Number}': Delaunay Orbital Element Vector [L; G; H; M; ω; Ω] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Cartesian Orbital Element Vector [x; y; z; ẋ; ẏ; ż] *All Angles are in Radians

source
AstroCoords.eccentricAnomaly2MeanAnomalyMethod

Converts the True Anomaly into the Mean Anomaly

Arguments: -'E::Number': Eccentric Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'M::Number': Mean Anomaly of the orbit *All angles are in radians

source
AstroCoords.eccentricAnomaly2TrueAnomalyMethod

Converts the Eccentric Anomaly into the True Anomaly

Arguments: -'E::Number': Eccentric Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'f::Number': True Anomaly of the orbit *All angles are in radians

source
AstroCoords.koe2ModEqMethod
koe2ModEq(u::AbstractVector{<:Number}, μ::Number)

Converts Keplerian Elements into the Modified Equinoctial Elements

Arguments: -'u:AbstractVector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); ν(True Anomaly)] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_ModEq::Vector{<:Number}': Modified Equinoctial State Vector [p; f; g; h; k; l] *All Angles are in Radians

source
AstroCoords.koe2ModEqNMethod
koe2ModEqN(u::AbstractVector{<:Number}, μ::Number)

Converts Keplerian Elements into the Modified Equinoctial Elements with Mean Motion

Arguments: -'u:AbstractVector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); ν(True Anomaly)] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_ModEq::Vector{<:Number}': Modified Equinoctial State Vector [n; f; g; h; k; l] *All Angles are in Radians

source
AstroCoords.koe2USM7Method
koe2USM7(u::AbstractVector{<:Number}, μ::Number)

Converts Keplerian Orbital Elements into the Unified State Model Set Van den Broeck, Michael. "An Approach to Generalizing Taylor Series Integration for Low-Thrust Trajectories." (2017). https://repository.tudelft.nl/islandora/object/uuid%3A2567c152-ab56-4323-bcfa-b076343664f9

Arguments: -'u:AbstractVector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); f(True Anomaly)] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_USM::Vector{<:Number}': Unified State Model Vector [C; Rf1; Rf2; ϵO1; ϵO2; ϵO3; η0] *All Angles are in Radians

source
AstroCoords.koe2cartMethod
koe2cart(u::AbstractVector{<:Number}, μ::Number)

Computes the Cartesian Orbital Elements from a Keplerian Set.

Arguments: -'u::AbstractVector{<:Number}': Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); f(True Anomaly)] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Keplerian Orbital Element Vector [x; y; z; ẋ; ẏ; ż] *All Angles are in Radians

source
AstroCoords.koeM2cartMethod
koeM2cart(u::AbstractVector{<:Number}, μ::Number)

Converts Alternative Keplerian State Vector into the Cartesian State

Arguments: -'u::AbstractVector{<:Number}': Alternative Keplerian State Vector [a; e; i; Ω(RAAN); ω(AOP); M(Mean Anomaly)] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Cartesian State Vector [x; y; z; ẋ; ẏ; ż]

source
AstroCoords.meanAnomaly2EccentricAnomalyMethod

Converts the Mean Anomaly into the Eccentric Anomaly

Arguments: -'M::Number': Mean Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'E::Number': Eccentric Anomaly of the orbit *All angles are in radians

source
AstroCoords.meanAnomaly2TrueAnomalyMethod

Converts the Mean Anomaly into the True Anomaly

Arguments: -'M::Number': Mean Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'f::Number': Mean Anomaly of the orbit *All angles are in radians

source
AstroCoords.meanMotionMethod

Computes the Keplerian Mean Motion About a Central Body

Arguments:

  • 'X::AstroCoord': Astro Coordinate
  • 'μ::Number': Standard Graviational Parameter of Central Body

Returns:

  • 'n::Number': Orbital Mean Motion
source
AstroCoords.meanMotionMethod

Computes the Keplerian Mean Motion About a Central Body

Arguments:

  • 'a::Number': Semi-Major Axis
  • 'μ::Number': Standard Graviational Parameter of Central Body

Returns:

  • 'n::Number': Orbital Mean Motion
source
AstroCoords.orbitalNRGMethod

Computes the Keplerian Orbital Energy

Arguments: -'X::AstroCoord': Astro Coordinate -'μ::Number': Standard Graviational Parameter of Central Body

Returns -'NRG::Number' - Orbital energy

source
AstroCoords.orbitalNRGMethod

Computes the Keplerian Orbital Energy

Arguments: -'a::Number': AstroCoord State Vector -'μ::Number': Standard Graviational Parameter of Central Body

Returns -'NRG::Number' - Orbital energy

source
AstroCoords.orbitalPeriodMethod

Computes the Keplerian Orbital Period About a Central Body

Arguments:

  • 'X::AstroCoord': Astro Coordinate
  • 'μ::Number': Standard Graviational Parameter of Central Body

Returns:

  • 'T::Number': Orbital Period
source
AstroCoords.orbitalPeriodMethod

Computes the Keplerian Orbital Period About a Central Body

Arguments:

  • 'a::Number': Semi-Major Axis
  • 'μ::Number': Standard Graviational Parameter of Central Body

Returns:

  • 'T::Number': Orbital Period
source
AstroCoords.sphere2cartMethod
sphere2cart(u::AbstractVector{<:Number}, μ::Number)

Computes the Cartesian Orbital Elements from a Spherical Set

Arguments: -'u::AbstractVector{<:Number}': Spherical Orbital Element Vector [r; θ; ϕ; ṙ; θdot; ϕdot] -'μ::Number': Standard Graviational Parameter of Central Body

Returns: -'u_cart::Vector{<:Number}': Cartesian Orbital Element Vector [x; y; z; ẋ; ẏ; ż] *All Angles are in Radians

source
AstroCoords.trueAnomaly2EccentricAnomalyMethod

Converts the True Anomaly into the Mean Anomaly

Arguments: -'f::Number': True Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'E::Number': Eccentric Anomaly of the orbit *All angles are in radians

source
AstroCoords.trueAnomaly2MeanAnomalyMethod

Converts the True Anomaly into the Mean Anomaly

Arguments: -'f::Number': True Anomaly of the orbit -'e::Number': Eccentricity of the orbit

Returns -'M::Number': Mean Anomaly of the orbit *All angles are in radians

source
Base.invMethod
inv(trans::Transformation)

Returns the inverse (or reverse) of the transformation trans

source