Пример #1
0
    def testSCHDOT(self):
        elp = Planet("Earth").get_elp()

        elp.setSCH(0., 0., 90.)
        sch = [0., 0., 0.]
        schdot = [0., 0., 10.]
        xyz, xyzdot = elp.schdot_to_xyzdot(sch, schdot)
        ans = [10.0, 0.0, 0.0]
        for (x, x1) in zip(xyzdot, ans):
            self.assertAlmostEqual(x, x1, places=3)

        xyz = [elp.a, 0., 0.]
        sch1, schdot1 = elp.xyzdot_to_schdot(xyz, xyzdot)
        for (s, s1) in zip(schdot, schdot1):
            self.assertAlmostEqual(s, s1, places=3)

        elp.setSCH(30., 60., 30.)
        sch = [0., 0., 0.]
        schdot = [10., 0., 0.]
        xyz, xyzdot = elp.schdot_to_xyzdot(sch, schdot)
        ans = [-6.495190528383289, -1.2499999999999996, 7.500000000000001]
        for (x, x1) in zip(xyzdot, ans):
            self.assertAlmostEqual(x, x1, places=3)
        xyz = elp.sch_to_xyz(sch)
        sch1, schdot1 = elp.xyzdot_to_schdot(xyz, xyzdot)
        for (s, s1) in zip(schdot, schdot1):
            self.assertAlmostEqual(s, s1, places=3)
Пример #2
0
    def testConvertSCHdot(self):
        elp = Planet("Earth").get_elp()
        elp.setSCH(66.0, -105.0, 36.0)

        #From for_ellipsoid_test.F
        #convert_schdot_to_xyzdot, sch_to_xyz
        r_sch = [1468.0, -234.0, 7000.0]
        r_schdot = [800.0, -400.0, 100.0]
        r_xyz = [-672788.46258740244, -2514950.4839521507, 5810769.7976823179]
        r_xyzdot = [853.73728655948685, 118.98447071885982, 258.79594191185748]
        posXYZ, velXYZ = elp.schdot_to_xyzdot(r_sch, r_schdot)
        for (a, b) in zip(r_xyz, posXYZ):
            self.assertAlmostEqual(a, b, places=3)
        for (a, b) in zip(r_xyzdot, velXYZ):
            self.assertAlmostEqual(a, b, places=3)

        #convert_schdot_to_xyzdot, xyz_to_sch
        r_xyz = [-672100.0, -2514000.0, 5811000.0]
        r_xyzdot = [800.0, -400.0, 100.0]
        r_sch = [2599.1237664792707, 70.396218844576666, 6764.7576835183427]
        r_schdot = [
            415.39842327248573, -781.28909619852459, 164.41258499283407
        ]
        posSCH, velSCH = elp.xyzdot_to_schdot(r_xyz, r_xyzdot)
        for (a, b) in zip(r_sch, posSCH):
            self.assertAlmostEqual(a, b, places=3)
        for (a, b) in zip(r_schdot, velSCH):
            self.assertAlmostEqual(a, b, delta=0.1)
Пример #3
0
    def testDEBUG(self):
        elp = Planet("Earth").get_elp()
        elp.setSCH(19.2796271, -155.282224, 58.9432911)
        posSCH = [-58033.8, 0.0, 12494.4008]
        velSCH = [234.84106135055595, 0.0, 12494.4008]
        posXYZ = [-5511147.555045444, -2482080.457636343, 2068314.4442497757]
        velXYZ = [-10652.45905403, -5017.70635173, 4184.84656172]
        p, v = elp.schdot_to_xyzdot(posSCH, velSCH)
        for (a, b) in zip(p, posXYZ):
            self.assertAlmostEqual(a, b, places=3)

        for (a, b) in zip(v, velXYZ):
            self.assertAlmostEqual(a, b, places=3)