def test_get_keplerian_parameters(self): """ get_keplerian_parameters test """ parameters = { "eccentricity": 0.0008641, "semimajor_axis": 6801395.04, "inclination": radians(87.0), "perigee_argument": radians(20.0), "right_ascension_of_ascending_node": radians(10.0), "anomaly": radians(0.0), "anomaly_type": "TRUE", "orbit_update_date":'2021-12-02T00:00:00.000', "frame": "EME"} propagator_1 = analytical_propagator(parameters) orbit = keplerian_orbit(parameters) new_state = SpacecraftState(orbit) new_parameters = orekit_utils.get_keplerian_parameters(new_state) propagator_2 = keplerian_orbit(new_parameters) new_time = absolute_time_converter_utc_string('2021-12-05T00:00:00.000') distance = orekit_utils.find_sat_distance(propagator_1, propagator_2, new_time) # parameters value change but define same orbit self.assertTrue(distance <= 0.000001)
def test_analytical_propagator(self): """ analytical_propagator test """ parameters = { "eccentricity": 0.0008641, "semimajor_axis": 6801395.04, "inclination": radians(87.0), "perigee_argument": radians(20.0), "right_ascension_of_ascending_node": radians(10.0), "anomaly": radians(0.0), "anomaly_type": "TRUE", "orbit_update_date": '2021-12-02T00:00:00.000', "frame": "EME" } k_orbit = keplerian_orbit(parameters) test1 = analytical_propagator(parameters) test2 = KeplerianPropagator(keplerian_orbit(parameters), Constants.WGS84_EARTH_MU) time1 = orekit_utils.absolute_time_converter_utc_string( '2022-01-02T00:00:00.000') self.assertTrue( test1.getPVCoordinates(time1, FramesFactory.getEME2000()).toString( ) == test2.getPVCoordinates(time1, FramesFactory.getEME2000()).toString())
def test_keplerian_orbit(self): """ keplerian_orbit test """ parameters = { "eccentricity": 0.0008641, "semimajor_axis": 6801395.04, "inclination": radians(87.0), "perigee_argument": radians(20.0), "right_ascension_of_ascending_node":radians(10.0), "anomaly": radians(0.0), "anomaly_type": "TRUE", "orbit_update_date":'2021-12-02T00:00:00.000', "frame": "EME"} k_orbit = keplerian_orbit(parameters) eccentricity = parameters["eccentricity"] semimajor_axis = parameters["semimajor_axis"] inclination = parameters["inclination"] perigee_argument = parameters["perigee_argument"] right_ascension_of_ascending_node = parameters["right_ascension_of_ascending_node"] true_anomaly = parameters["anomaly"] orbit_update_date = parameters["orbit_update_date"] epochDate = absolute_time_converter_utc_string(orbit_update_date) frame = orekit_utils.string_to_frame(parameters["frame"]) self.assertTrue(KeplerianOrbit(semimajor_axis, eccentricity, inclination, perigee_argument, right_ascension_of_ascending_node, true_anomaly, PositionAngle.TRUE, frame, epochDate, Constants.WGS84_EARTH_MU).toString() == k_orbit.toString())