def test_convert_from_coe_to_rv(): # Data from Vallado, example 2.5 attractor = Earth r = [6524.384, 6862.875, 6448.296] * u.km v = [4.901327, 5.533756, -1.976341] * u.km / u.s ss = RVState(Earth, r, v) _, ecc, inc, raan, argp, nu = ss.coe() p = ss.p assert_almost_equal(p.to(u.km).value, 11067.79, decimal=0) assert_almost_equal(ecc.value, 0.832853, decimal=4) assert_almost_equal(inc.to(u.deg).value, 87.870, decimal=2) assert_almost_equal(raan.to(u.deg).value, 227.89, decimal=1) assert_almost_equal(argp.to(u.deg).value, 53.38, decimal=2) assert_almost_equal(nu.to(u.deg).value, 92.335, decimal=2)
def test_convert_from_coe_to_rv(): # Data from Vallado, example 2.5 attractor = Earth r = [6524.384, 6862.875, 6448.296] * u.km v = [4.901327, 5.533756, -1.976341] * u.km / u.s expected_p = 11067.79 * u.km expected_ecc = 0.832853 * u.one expected_inc = 87.870 * u.deg expected_raan = 227.89 * u.deg expected_argp = 53.38 * u.deg expected_nu = 92.335 * u.deg ss = RVState(attractor, r, v) _, ecc, inc, raan, argp, nu = ss.coe() p = ss.p assert_quantity_allclose(p, expected_p, rtol=1e-4) assert_quantity_allclose(ecc, expected_ecc, rtol=1e-4) assert_quantity_allclose(inc, expected_inc, rtol=1e-4) assert_quantity_allclose(raan, expected_raan, rtol=1e-4) assert_quantity_allclose(argp, expected_argp, rtol=1e-4) assert_quantity_allclose(nu, expected_nu, rtol=1e-4)