Quick Start

Let's suppose we want to discover the ISS position on May 19, 2013, at 12:00:00. First, we need to obtain a description of its orbit and use the corresponding propagator. Using the Celestrak service, for example, we can obtain the ISS TLE on May 18, 2023:

ISS (ZARYA)             
1 25544U 98067A   23138.86946505 -.00404279  00000+0 -74572-2 0  9994
2 25544  51.6431 113.8899 0006661 357.1286  88.0982 15.49924990397244

Since we have a TLE, we must use the SGP4/SDP4 propagator. Let's initialize the algorithm first:

julia> iss_tle = tle"""
           ISS (ZARYA)
           1 25544U 98067A   23138.86946505 -.00404279  00000+0 -74572-2 0  9994
           2 25544  51.6431 113.8899 0006661 357.1286  88.0982 15.49924990397244"""TLE: ISS (ZARYA) (Epoch = 2023-05-18T20:52:01.780):
  ├─ Line 1
Satellite Number         : 25544
Classification           : U
International Designator : 98067A
Epoch Year               : 23
Epoch Day                : 138.86946505
ṅ/2                      : -0.00404279 rev/day²
n̈/6                      : 0.0 rev/day³
B*                       : -0.0074572 1/ER
Ephemeris Type           : 0
Element Set Number       : 999
  └─ Line 2
       Inclination              : 51.6431°
       RA of the Ascending Node : 113.8899°
       Eccentricity             : 0.0006661
       Arg. of Perigee          : 357.1286°
       Mean Anomaly             : 88.0982°
       Mean Motion              : 15.4992499 rev/day
       Revolution Number        : 39724
julia> orbp = Propagators.init(Val(:SGP4), iss_tle)OrbitPropagatorSgp4{Float64, Float64} (SGP4 Orbit Propagator): ├─ Mean Elements Epoch : 2.46008e6 (2023-05-18T20:52:01.780) Semi-Major Axis : 6795.082627 km Mean Motion : 15.4992499 rev/day Eccentricity : 0.0006661 Inclination : 51.6431° RA of Asc. Node : 113.8899° Arg. of Periapsis : 357.1286° Mean Anomaly : 88.0982° B* : -0.0074572 1/ER ├─ Constants R₀ : 6378.137 km XKE : 0.07436685317 er^(3/2)/min J₂ : 0.001082629989 J₃ : -2.53215306e-6 J₄ : -1.61098761e-6 └─ Propagation Last Instant : 0.0 min

Now we can propagate the ISS orbit to the desired epoch and obtain its state vector and mean elements:

julia> Propagators.propagate_to_epoch!(orbp, date_to_jd(2023, 5, 19, 12, 0, 0))([-2.7473591812349055e6, 6.194023092402147e6, 470636.34213714604], [-4186.242303388817, -2319.0180933770293, 5989.510493513584])
julia> Propagators.mean_elements(orbp)KeplerianElements{MeanAnomaly, Float64, Float64}: Epoch : 2.46008e6 (2023-05-19T12:00:00) Semi-Major Axis : 6796.637675 km Eccentricity : 0.0006709752178 Inclination : 51.6431° RA of Asc. Node : 110.766542° Arg. of Periapsis : 359.7956391° Mean Anomaly : 5.36543799°
Note

Since we are using a TLE, the state vector is represented in the TEME reference frame.