Exemple #1
0
 def test_no_flux_errors(self):
     column_map = {'s16': (16.0, 'micron', 'uJy', 'ds16'),
                   's24': (24.0, 'micron', 'uJy', None),
                   's70': (70.0, 'micron', 'uJy', 'ds70')}
     aggsed = io.load_cat(test_directory+"three_sources.dat", column_map)
     self.assert_(numpy.isnan(aggsed.yerr[1][1]))
     self.failIf(numpy.isnan(aggsed.yerr[2][2]))
Exemple #2
0
 def test_null_values(self):
     aggsed = io.load_cat(test_directory+"three_sources.dat", column_map1)
     self.assertEqual(len(aggsed[0]), 2)
     self.assertEqual(len(aggsed[1]), 3)
     self.assertEqual(len(aggsed[2]), 3)
     self.assert_(numpy.isnan(aggsed.yerr[1][2]))
     self.assert_(type(aggsed.yerr[2][2]) is numpy.float_)
Exemple #3
0
    def test_log_binning(self):

        aggsed = load_cat(sed_filename, column_map)
        stacked_seds = sed.stack(aggsed, 0.2, 'avg', logbin=True)

        control_x = 10**numpy.array([3.6,3.8,4.0,4.4,4.6,4.8,5.0,5.4])
        control_y = numpy.array([23.63388888888888, 22.751176470588234,
                                 21.614166666666, 20.295,
                                 19.485, 19.0783333333,
                                 18.88, 17.565])
        numpy.testing.assert_allclose(stacked_seds.x, control_x)
        numpy.testing.assert_allclose(stacked_seds.y, control_y)
Exemple #4
0
    def test_read_to_aggregateSed_simple(self):

        aggsed1 = io.load_cat(test_directory+"three_sources.dat", column_map1)

        xarr = numpy.array([16.0, 24.0, 70.0])
        xunits = numpy.array(['micron','micron','micron'])
        yunits = numpy.array(['uJy','uJy','uJy'])

        self.assertEqual(len(aggsed1),3)
        self.assertAlmostEqual(aggsed1[0][0].x, xarr[0])
        self.assertAlmostEqual(aggsed1[2][2].y, 2690.0)
        self.assert_(aggsed1.xunit[0][0] == xunits[0])

        sed1 = Sed(x=xarr,
                   y=numpy.array([46.1, 104.0, -99.0]),
                   yerr=numpy.array([2.9, 6.2, -99.0]),
                   xunit=xunits,
                   yunit=yunits,
                   z=2.69)
        sed1.id = 'num1'
        sed1.ra = '03:32:00.00'
        sed1.dec = '-27:46:35.0'

        sed2 = Sed(x=xarr,
                   y=numpy.array([163.1, 115.0, -99.0]),
                   yerr=numpy.array([2.8, 6.9, -99.0]),
                   xunit=xunits, yunit=yunits,
                   z=1.10)
        sed2.id = 'num2'
        sed2.ra = '03:32:00.00'
        sed2.dec = '-27:46:40.0'

        sed3 = Sed(x=xarr,
                   y=numpy.array([2417.4, 3560.0, 2690.0]),
                   yerr=numpy.array([53.3, 36.0, 500.9]),
                   xunit=xunits,
                   yunit=yunits,
                   z=0.55)
        sed3.id = 'num3'
        sed3.ra = '03:32:00.00'
        sed3.dec = '-27:47:34.4'

        aggsed2 = AggregateSed([sed1, sed2, sed3])

        self.failUnless(aggsed1[0][1].x == aggsed2[0][1].x)
        self.assertEqual(aggsed1[0].ra, sed1.ra)
        self.assertEqual(aggsed1[2].id, sed3.id)
        self.assertEqual(hasattr(aggsed1[1], 'z'), True)
        self.assertEqual(hasattr(aggsed1[1], 's24'), True)
        self.assertEqual(aggsed1[1][0].xunit, 'micron')
Exemple #5
0
    def test_read_to_aggregateSed_complex(self):

        column_map = {"ucfht":(3823.0,"AA","mag","errU"),
                      "Bsub":(4459.7,"AA","mag","errB"),
                      "Vsub":(5483.8,"AA","mag","errV"),
                      "gsub":(4779.6,"AA","mag","errg"),
                      "rsub":(6295.1,"AA","mag","errR"),
                      "isub":(7640.8,"AA","mag","errI"),
                      "zsub":(9036.9,"AA","mag","errz"),
                      "j":(12491.0,"AA","mag","errJ"),
                      "Ks":(21590.4,"AA","mag","errK"),
                      "irac3.6":(36000.0,"AA","mag","err3.6"),
                      "irac4.5":(45000.0,"AA","mag","err4.5"),
                      "irac5.8":(58000.0,"AA","mag","err5.8"),
                      "irac8.0":(80000.0,"AA","mag","err8.0"),
                      "mips24.0":(240000.0,"AA","mag","err24")
                      }
        aggsed = io.load_cat(test_directory+"phot-cat-mags.ascii", column_map)

        self.assertEqual(aggsed[2].z, 0.529)
        self.assertEqual(aggsed[0].z, 0.668)
        self.assertEqual(aggsed[0].id, 2051)
Exemple #6
0
    def test_read_to_sed(self):

        xarr = numpy.array([16.0, 24.0, 70.0])
        xunits = numpy.array(['micron','micron','micron'])
        yunits = numpy.array(['uJy','uJy','uJy'])

        sed = io.load_cat(test_directory+"one_source.dat",
                          column_map1)

        self.assertEqual(type(sed), Sed)
        self.assertAlmostEqual(sed[0].x, xarr[0])

        sed1 = Sed(x=xarr,
                   y=numpy.array([46.1, 104.0, -99.0]),
                   yerr=numpy.array([2.9, 6.2, -99.0]),
                   xunit=xunits,
                   yunit=yunits,
                   z=2.69)
        sed1.id = 'num1'
        sed1.ra = '03:32:00.00'
        sed1.dec = '-27:46:35.0'

        self.assertEqual(sed.ra, sed1.ra)
Exemple #7
0
    def test_stack_seds(self):

        aggsed = load_cat(sed_filename, column_map)
        stacked_seds = sed.stack(aggsed, 50, 'avg')
        control_x = numpy.array([3823., 4473., 4773.,
                                 5473., 6273., 7623.,
                                 9023., 12473., 21573.,
                                 36023., 45023., 58023.,
                                 80023., 240023.])
        control_y = numpy.array([23.9516667, 23.498333333,
                                 23.45166667, 23.071666667,
                                 22.71166667, 22.414,
                                 21.97833333, 21.25,
                                 20.295, 19.61,
                                 19.36, 19.07833333,
                                 18.88, 17.565])

        numpy.testing.assert_allclose(stacked_seds.x, control_x)
        numpy.testing.assert_allclose(stacked_seds.y, control_y)

        stacked_seds = sed.stack(aggsed, 50, 'wavg')
        control_x = numpy.array([3823., 4473., 4773.,
                                 5473., 6273., 7623.,
                                 9023., 12473., 21573.,
                                 36023., 45023., 58023.,
                                 80023., 240023.])
        control_y = numpy.array([23.9516667, 23.498333333,
                                 23.45166667, 23.071666667,
                                 22.71166667, 22.414,
                                 21.97833333, 21.25,
                                 20.295, 19.61,
                                 19.36, 19.07833333,
                                 18.88, 17.565])

        numpy.testing.assert_allclose(stacked_seds.x, control_x)
        numpy.testing.assert_allclose(stacked_seds.y, control_y)
              "Bsub":(4459.7,"AA","mag","errB"),
              "Vsub":(5483.8,"AA","mag","errV"),
              "gsub":(4779.6,"AA","mag","errg"),
              "rsub":(6295.1,"AA","mag","errR"),
              "isub":(7640.8,"AA","mag","errI"),
              "zsub":(9036.9,"AA","mag","errz"),
              "j":(12491.0,"AA","mag","errJ"),
              "Ks":(21590.4,"AA","mag","errK"),
              "irac3.6":(36000.0,"AA","mag","err3.6"),
              "irac4.5":(45000.0,"AA","mag","err4.5"),
              "irac5.8":(58000.0,"AA","mag","err5.8"),
              "irac8.0":(80000.0,"AA","mag","err8.0"),
              "mips24.0":(240000.0,"AA","mag","err24")
              }

aggsed = io.load_cat(filename, column_map)
#plt.plot(aggsed.x,aggsed.y,'o')
#plt.show()

# convert from ABmag to flux density, Jansky
c = 2.5 / numpy.log(10.0)
for i, sed in enumerate(aggsed):
    for j, point in enumerate(sed):
        point.y = 10**23 * 10**(-(point.y+48.6) / 2.5)
        point.yerr = point.yerr * aggsed.y[i][j] / c
        aggsed.y[i][j] = point.y
        aggsed.yerr[i][j] = point.yerr

#plt.plot(aggsed.x,aggsed.y,'o')
#plt.show()