Exemple #1
0
def test_vacuum():
    # test code to change vacuum to air wavlengths and back again
    # test case form IDL script
    w_air = 6056.125
    w_vac = 6057.8019
    if abs(Spectrum.air2vac(w_air, mode='Morton') - w_vac) > 0.01:
        print "ERROR in MORTON AIR2VAC calculation"
    if abs(Spectrum.air2vac(w_air, mode='Ciddor') - w_vac) > 0.01:
        print "ERROR in CIDDOR AIR2VAC calculation"
    print w_air, w_vac
    if abs(Spectrum.vac2air(w_vac, mode='Ciddor') - w_air) > 0.01:
        print "ERROR in CIDDOR VAC2AIR calculation"
    if abs(Spectrum.vac2air(w_vac, mode='Morton') - w_air) > 0.01:
        print "ERROR in MORTON VAC2AIR calculation"
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
Exemple #4
0
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()