def test_normalize_at_point_seds(self): sed1 = Sed( x=numpy.arange(1000, 10001, 500), y=numpy.arange(1000, 10001, 500), yerr=numpy.arange(1000, 10001, 500) * 0.01, ) sed2 = Sed( x=numpy.arange(10500, 20501, 500), y=numpy.arange(10500, 20501, 500), yerr=numpy.arange(10500, 20501, 500) * 0.01, ) sed3 = Sed( x=numpy.arange(30000, 40001, 500), y=numpy.arange(30000, 40001, 500), yerr=numpy.arange(30000, 40001, 500) * 0.01, ) aggsed = AggregateSed([sed1, sed2, sed3]) norm_aggsed = aggsed.normalize_at_point(10350, 1) control_norm_constant = 9.523809523809524e-05 # 1./10500. self.assertAlmostEqual(norm_aggsed.norm_constant, control_norm_constant) # The AggregateSed should # retain all Segments after the normalization, even though # none of the Segments do not contain the point (10350). self.assertEqual(len(norm_aggsed), len(aggsed)) norm_aggsed = aggsed.normalize_at_point(10251, 1) self.assertAlmostEqual(norm_aggsed.norm_constant, 1.0 / 10500)
def test_normalize_at_point_spectra(self): sed1 = Spectrum(x=numpy.arange(1000, 10001), y=numpy.arange(1000, 10001), yerr=numpy.arange(1000, 10001) * 0.01) sed2 = Spectrum( x=numpy.arange(10500, 20501), y=numpy.arange(10500, 20501), yerr=numpy.arange(10500, 20501) * 0.01 ) sed3 = Spectrum( x=numpy.arange(30000, 40001), y=numpy.arange(30000, 40001), yerr=numpy.arange(30000, 40001) * 0.01 ) aggsed = AggregateSed([sed1, sed2, sed3]) norm_aggsed = aggsed.normalize_at_point(20000, 1, dx=50) control_norm_constant = 1.0 / 20000.0 self.assertAlmostEqual(norm_aggsed.norm_constant, control_norm_constant) # The AggregateSed should # retain all Segments after the normalization, even though # none of the Segments do not contain the point (10350). self.assertEqual(len(norm_aggsed), len(aggsed))
def test_normalize_at_point_segments(self): spec1 = Spectrum( x=numpy.arange(1000, 10001), y=numpy.arange(1000, 10001), yerr=numpy.arange(1000, 10001) * 0.01 ) spec2 = Spectrum( x=numpy.arange(10500, 20501), y=numpy.arange(10500, 20501), yerr=numpy.arange(10500, 20501) * 0.01 ) spec3 = Spectrum( x=numpy.arange(30000, 40001), y=numpy.arange(30000, 40001), yerr=numpy.arange(30000, 40001) * 0.01 ) sed1 = Sed(x=numpy.arange(3000, 11001, 500), y=numpy.arange(300, 1101, 50), yerr=numpy.arange(300, 1101, 50)) sed2 = Sed( x=numpy.arange(25000, 30001, 500), y=numpy.arange(2500, 3001, 50), yerr=numpy.arange(2500, 3001, 50) * 0.01 ) aggsed = AggregateSed([spec1, spec2, spec3, sed1, sed2]) norm_aggsed = aggsed.normalize_at_point(4505.0, 1000.0, dx=50) avg = numpy.average(numpy.append(numpy.arange(4456, 4555), [450])) control_norm_constant = 1000.0 / avg self.assertAlmostEqual(norm_aggsed.norm_constant, control_norm_constant)
files = os.listdir(test_directory) specs = [] counter = 0 while counter < 14: spec = load_sed(test_directory+files[counter], sed_type="spectrum") specs.append(spec) counter += 1 #specs = [load_sed(test_directory+f, sed_type="spectrum") for f in files] for spec in specs: spec.z = np.random.random_sample() aggsed = AggregateSed(specs) norm_aggsed = aggsed.normalize_at_point(3500.0, 1.0) stack_spectra = stack(norm_aggsed, 10.0, 'avg', fill='fill') stack_spectra.write(test_directory+'stacked_spectra_maskcc10.dat') stack_spectra = load_sed(test_directory+'stacked_spectra_maskcc10.dat') end = time.clock() plt.plot(stack_.x, stack_.y) plt.show() print '' print 'time it took to do all of this: %.3g sec' % (end-start)