Пример #1
0
 def test_sg_to_gal(self):
     for line in self.tevcat:
         l,b     = line[3]
         sgl,sgb = line[2]
         sg = astro.I3SuperGalactic(sgl*I3Units.degree,
                                    sgb*I3Units.degree)
         gal = astro.I3GetGalacticFromSuperGalactic(sg)
         
         self.assertAlmostEqual(gal.l/I3Units.degree,l,2)
         self.assertAlmostEqual(gal.b/I3Units.degree,b,2)
Пример #2
0
    def test_gal_from_sg(self):

        random.seed(0)
        for n in range(10000):
            
            sg = astro.I3SuperGalactic(random.uniform(0,2*math.pi),
                                        random.uniform(-math.pi/2,math.pi/2),
            )

            gal = astro.I3GetGalacticFromSuperGalactic(sg)
            sgprime = astro.I3GetSuperGalacticFromGalactic(gal)

            
            self.assert_almost_equal(math.cos(sg.b)*sg.l,math.cos(sgprime.b)*sgprime.l,1e-9)
            self.assert_almost_equal(sg.b,sgprime.b,1e-10)
            self.assert_less(astro.angular_distance(sg.l,sg.b,sgprime.l,sgprime.b),1e-10)
Пример #3
0
    def test_reference_points(self):
        #Test the reference points that define the galactic coordinate system
        #take from Wikipedia, the orignal paper was in B1950

        #celestial north pole        
        eq = astro.I3Equatorial((12+51.4/60.)*15*I3Units.degree,
                                27.13 * I3Units.degree)
        gal = astro.I3GetGalacticFromEquatorial(eq)
        self.assertAlmostEqual(gal.b/I3Units.degree,+90,1)

        #south pole
        eq.ra  = (+51.4/60.)*15*I3Units.degree
        eq.dec = -27.13 * I3Units.degree
        gal = astro.I3GetGalacticFromEquatorial(eq)
        self.assertAlmostEqual(gal.b/I3Units.degree,-90,1)

        #galactic center 
        eq.ra  = (17+45.6/60.)*15*I3Units.degree
        eq.dec = -28.94 * I3Units.degree
        gal = astro.I3GetGalacticFromEquatorial(eq)
        self.assertAlmostEqual(gal.b/I3Units.degree,0,1)
        self.assertAlmostEqual(gal.l/I3Units.degree,360,1)

        #anti-center 
        eq.ra  = (5+45.6/60.)*15*I3Units.degree
        eq.dec = +28.94 * I3Units.degree
        gal = astro.I3GetGalacticFromEquatorial(eq)
        self.assertAlmostEqual(gal.b/I3Units.degree,0,1)
        self.assertAlmostEqual(gal.l/I3Units.degree,180,1)

        #now test the reverse transform

        #galactic north pole
        gal = astro.I3Galactic(  0 * I3Units.degree,
                               +90 * I3Units.degree)

        eq = astro.I3GetEquatorialFromGalactic(gal)
        self.assertAlmostEqual(eq.ra/I3Units.degree,
                               (12+51.4/60.)*15.,1)
        self.assertAlmostEqual(eq.dec/I3Units.degree,
                               27.13,1)
        

        #south pole
        gal.l  =   0 * I3Units.degree
        gal.b  = -90 * I3Units.degree
        eq = astro.I3GetEquatorialFromGalactic(gal)
        self.assertAlmostEqual(eq.ra/I3Units.degree,
                               (0+51.4/60.)*15.,1)
        self.assertAlmostEqual(eq.dec/I3Units.degree,
                               -27.13,1)

        #galactic center
        gal.l  =   0 * I3Units.degree
        gal.b  =   0 * I3Units.degree
        eq = astro.I3GetEquatorialFromGalactic(gal)
        self.assertAlmostEqual(eq.ra/I3Units.degree,
                               (17+45.6/60.)*15.,1)
        self.assertAlmostEqual(eq.dec/I3Units.degree,
                               -28.94,1)

        #anti center
        gal.l  =   0 * I3Units.degree
        gal.b  = 180 * I3Units.degree
        eq = astro.I3GetEquatorialFromGalactic(gal)
        self.assertAlmostEqual(eq.ra/I3Units.degree,
                               (5+45.6/60.)*15.,1)
        self.assertAlmostEqual(eq.dec/I3Units.degree,
                               +28.94,1)


        #supergalactic north pole
        sg = astro.I3SuperGalactic()
        sg.b = 90 *I3Units.degree
        sg.l =  0 *I3Units.degree
        gal = astro.I3GetGalacticFromSuperGalactic(sg)

        self.assertAlmostEqual(gal.l/I3Units.degree,
                               47.37,6)
        self.assertAlmostEqual(gal.b/I3Units.degree,
                               6.32,6)

        eq = astro.I3GetEquatorialFromSuperGalactic(sg)

        print(eq.ra/I3Units.degree/15,eq.dec/I3Units.degree)
        self.assertAlmostEqual(eq.ra/I3Units.degree,
                               18.92*15,1)
        self.assertAlmostEqual(eq.dec/I3Units.degree,
                               15.7,1)
        

        #supergalactic origin
        sg = astro.I3SuperGalactic()
        sg.b =  0 *I3Units.degree
        sg.l =  0 *I3Units.degree
        gal = astro.I3GetGalacticFromSuperGalactic(sg)

        self.assertAlmostEqual(gal.l/I3Units.degree,
                               137.37,6)
        self.assertAlmostEqual(gal.b/I3Units.degree,
                               0,6)

        eq = astro.I3GetEquatorialFromSuperGalactic(sg)

        self.assertAlmostEqual(eq.ra/I3Units.degree,
                               2.82*15,1)
        self.assertAlmostEqual(eq.dec/I3Units.degree,
                               59.5,1)