adam_core.orbit_determination.gauss module¶
- adam_core.orbit_determination.gauss.approxLangrangeCoeffs(r_mag, dt, mu=0.00029591220828411956)[source]¶
- adam_core.orbit_determination.gauss.calcGauss(r1, r2, r3, t1, t2, t3)[source]¶
Calculates the velocity vector at the location of the second position vector (r2) with Gauss’s original method.
\[f_1 pprox 1 -\]rac{1}{2} rac{mu}{r_2^3} (t_1 - t_2)^2
f_3 pprox 1 -
rac{1}{2} rac{mu}{r_2^3} (t_3 - t_2)^2
g_1 pprox (t_1 - t_2) -
rac{1}{6} rac{mu}{r_2^3} (t_1 - t_2)^2
g_3 pprox (t_3 - t_2) -
rac{1}{6} rac{mu}{r_2^3} (t_3 - t_2)^2
ec{v}_2 = rac{1}{f_1 g_3 - f_3 g_1} (-f_3 ec{r}_1 + f_1 ec{r}_3)
For more details on theory see Chapter 5 in Howard D. Curtis’ “Orbital Mechanics for Engineering Students”.
- r1~numpy.ndarray (3)
Heliocentric position vector at time 1 in cartesian coordinates in units of AU.
- r2~numpy.ndarray (3)
Heliocentric position vector at time 2 in cartesian coordinates in units of AU.
- r3~numpy.ndarray (3)
Heliocentric position vector at time 3 in cartesian coordinates in units of AU.
- t1float
Time at r1. Units of MJD or JD work or any decimal time format (one day is 1.00) as long as all times are given in the same format.
- t2float
Time at r2. Units of MJD or JD work or any decimal time format (one day is 1.00) as long as all times are given in the same format.
- t3float
Time at r3. Units of MJD or JD work or any decimal time format (one day is 1.00) as long as all times are given in the same format.
- v2~numpy.ndarray (3)
Velocity of object at position r2 at time t2 in units of AU per day.
- adam_core.orbit_determination.gauss.gaussIOD(coords, observation_times, coords_obs, velocity_method='gibbs', light_time=True, mu=0.00029591220828411956, max_iter=10, tol=1e-15)[source]¶
Compute up to three intial orbits using three observations in angular equatorial coordinates.
- Parameters:
coords (~numpy.ndarray (3, 2)) – RA and Dec of three observations in units of degrees.
observation_times (~numpy.ndarray (3)) – Times of the three observations in units of decimal days (MJD or JD for example).
coords_obs (~numpy.ndarray (3, 2)) – Heliocentric position vector of the observer at times t in units of AU.
velocity_method ({'gauss', gibbs', 'herrick+gibbs'}, optional) – Which method to use for calculating the velocity at the second observation. [Default = ‘gibbs’]
light_time (bool, optional) – Correct for light travel time. [Default = True]
iterate (bool, optional) – Iterate initial orbit using universal anomaly to better approximate the Lagrange coefficients.
mu (float, optional) – Gravitational parameter (GM) of the attracting body in units of AU**3 / d**2.
max_iter (int, optional) – Maximum number of iterations over which to converge to solution.
tol (float, optional) – Numerical tolerance to which to compute chi using the Newtown-Raphson method.
- Returns:
epochs (~numpy.ndarry (<3)) – Epochs in units of decimal days at which preliminary orbits are defined.
orbits (~numpy.ndarray ((<3, 6) or (0))) – Up to three preliminary orbits (as cartesian state vectors).