コード例 #1
0
    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)
コード例 #2
0
    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())
コード例 #3
0
    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())