예제 #1
0
    def test_norm_at_point_correct_flux(self):

        segment1 = Spectrum(x = numpy.arange(1000,10000,10),
                            y = numpy.arange(1000,10000,10),
                            yerr=numpy.arange(1000,10000,10)*.01,
                            z=0)
        segment2 = Sed(x=numpy.arange(1000,10000,500),
                       y=numpy.arange(1000,10000,500),
                       yerr=numpy.arange(1000,10000,500)*.01,
                       z=0.0)
        segment3 = Sed(x=numpy.arange(1000,10000,500),
                       y=numpy.arange(1000,10000,500),
                       yerr=numpy.arange(1000,10000,500)*.01,
                       z = 0)
        segment4 = Spectrum(x = numpy.arange(1000,10000,10),
                            y = numpy.arange(1000,10000,10),
                            yerr=numpy.arange(1000,10000,10)*.01,
                            z=0)

        aggsed = Stack([segment1, segment2, segment3, segment4])
        norm_aggsed = aggsed.normalize_at_point(5000,1000,
                                                correct_flux=True,
                                                z0=[1.0,0.5,0.35,1.0])


        self.assertAlmostEqual(norm_aggsed[2].norm_constant, 0.148148148)
        self.assertAlmostEqual(norm_aggsed[3].norm_constant, 0.1)
예제 #2
0
    def test_norm_at_point(self):

        segment1 = Spectrum(x = numpy.arange(1000,10000,1),
                            y = numpy.arange(1000,10000,1),
                            yerr=numpy.arange(1000,10000,1)*.01,
                            z=1.0)
        segment2 = Sed(x=numpy.arange(1000,10000,500),
                       y=numpy.arange(1000,10000,500),
                       yerr=numpy.arange(1000,10000,500)*.01)
        segment3 = Sed(x=numpy.arange(1000,10000,500),
                       y=numpy.arange(1000,10000,500),
                       yerr=numpy.arange(1000,10000,500)*.01,
                       z = 0.35)
        segment4 = Spectrum(x = numpy.arange(1000,10000,10),
                            y = numpy.arange(1000,10000,10),
                            yerr=numpy.arange(1000,10000,10)*.01,
                            z=1.0)

        x0 = 5025
        y0 = 1000

        aggsed = Stack([segment1, segment2, segment3, segment4])
        norm_aggsed = aggsed.normalize_at_point(x0,y0)

        sedarray = segment3._toarray()
        control_norm_aggsed_segment3 = sedarray[1]*0.2

        self.assertEqual(norm_aggsed[1][8].y, 1000)
        sedarray = norm_aggsed[2]._toarray()
        numpy.testing.assert_array_almost_equal(sedarray[1], control_norm_aggsed_segment3)
        self.assertEqual(norm_aggsed[0].norm_constant, numpy.float_(y0)/5025)