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)
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)
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)