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]))
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_)
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)
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')
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)
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)
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()