def loadsdss(hdu): farr=hdu[0].data[0] print len(farr) xarr=np.arange(len(farr)) warr=10**(hdu[0].header['CRVAL1']+hdu[0].header['CD1_1']*(xarr+1)) spec=Spectrum.Spectrum(warr, farr, stype='continuum') return spec
def loadiraf(hdu): farr=hdu[0].data xarr=np.arange(len(farr)) warr=hdu[0].header['CRVAL1']+hdu[0].header['CDELT1']*(xarr+hdu[0].header['CRPIX1']) mask=(farr>10) spec=Spectrum.Spectrum(warr[mask], farr[mask], stype='continuum') return spec
def test_spectrum(): print 'testing spectrum...' # create a spectrum from a single line w, f = np.loadtxt(oneline, usecols=(0, 1), unpack=True) sp1 = Spectrum.Spectrum([w], [f], wrange=[4500, 4900], sigma=1) pl.figure(figsize=(10, 10)) pl.axes([0.1, 0.1, 0.8, 0.8]) pl.plot(sp1.wavelength, sp1.flux) # create a spectrum from a line list w, f = np.loadtxt(inlist, usecols=(0, 1), unpack=True) spl = Spectrum.Spectrum(w, f, sigma=5) pl.plot(spl.wavelength, spl.flux) # create a spectrum from a spectrum w, f = np.loadtxt(infile, usecols=(0, 1), unpack=True) spf = Spectrum.Spectrum(w, f, sigma=5, stype='continuum') pl.plot(spf.wavelength, spf.flux) # test error that mean is the wrong number of dimensions pl.savefig('out.png') pl.show()
def loadtext(infile): warr, farr=np.loadtxt(infile, usecols=(0,1), unpack=True) spec=Spectrum.Spectrum(warr, farr, stype='continuum') return spec
def __init__(self, xarr, farr, slines, sfluxes, ws, xp=[], wp=[], xdiff=20, res=2.0, dres=0.1, sigma=5, niter=5): """Default constructor.""" QtGui.QWidget.__init__(self) # Initialize base class self.arcfigure = MplCanvas() self.errfigure = MplCanvas() # Add central axes instance self.axes = self.arcfigure.figure.add_subplot(111) self.erraxes = self.errfigure.figure.add_subplot(111) # Connect mouse events self.arcfigure.connectMatplotlibMouseMotion() self.arcfigure.mpl_connect('button_press_event', self.onButtonPress) self.arcfigure.mpl_connect('key_press_event', self.onKeyPress) self.errfigure.connectMatplotlibMouseMotion() self.errfigure.mpl_connect('button_press_event', self.onButtonPress) self.errfigure.mpl_connect('key_press_event', self.onKeyPress) # load the data self.xarr = xarr self.farr = farr self.slines = slines self.sfluxes = sfluxes self.ws = ws self.xdiff = xdiff self.sigma = sigma self.niter = niter self.res = res self.dres = dres self.xp = xp self.wp = wp # set up the artificial spectra self.spectrum = Spectrum.Spectrum(self.slines, self.sfluxes, dw=self.dres, stype='line', sigma=self.res) self.swarr = self.spectrum.wavelength self.sfarr = self.spectrum.flux * self.farr.max( ) / self.spectrum.flux.max() # set up the wavelength solution if self.ws.function == 'line': self.ws.set_xarr(self.xarr) self.ws.farr = self.farr self.ws.spectrum = self.spectrum # set up the list of deleted points self.dxp = [] self.dwp = [] # set up other variables self.isArt = False self.isFeature = False # Set display parameters self.xmin = self.xarr.min() self.xmax = self.xarr.max() self.ymin = self.farr.min() self.ymax = self.farr.max()