def dumpascispec(curs,where='z<5',table='sdss'): all=curs.execute('SELECT objID,mjd,plate,fiberID,Ha_h,Ha_w,Hb_h,Hb_w,z from %s WHERE %s ORDER BY objID'%(table,where)) for objID,mjd,plate,fiberID,Ha_h,Ha_w,Hb_h,Hb_w,z in all: fname=getspecfilename((mjd,plate,fiberID)) fits=F.open(fname) head,spec,noise=sdss.splitfits(fits) wave=10**(head.get('COEFF0')+(N.arange(len(spec),dtype='f')*head.get('COEFF1'))) outf=open('%d.spec'%objID,'w') outf.write('%.8e\n'%z) outf.write('%.8e\n'%Ha_h) outf.write('%.8e\n'%Ha_w) outf.write('%.8e\n'%Hb_h) outf.write('%.8e\n'%Hb_w) for i,s in enumerate(spec): outf.write('%.8e %.8e\n'%(wave[i],s)) outf.close()
def plotpicked(self,event): self.calctol() print self.xtol,self.ytol thisline = event.artist xdata,ydata = thisline.get_data() ind = event.ind x,y=zip(xdata[ind], ydata[ind])[0] where=self.where+' AND ' where+='(%s BETWEEN %s AND %s) AND '%(self.xcol,x-self.xtol,x+self.xtol) where+='(%s BETWEEN %s AND %s)'%(self.ycol,y-self.ytol,y+self.ytol) ids=self.curs.execute('SELECT objID,z from %s WHERE %s'%(self.table,where)) all=ids.fetchall() for id,z in all: #print id fits=specfromid(id,cursor=self.curs) head,spec,noise=sdss.splitfits(fits) wave=10**(head.get('COEFF0')+(N.arange(len(spec),dtype='f')*head.get('COEFF1'))) wave/=1+z spec=smooth_gauss(spec,self.smooth) self.ax2.plot(wave,spec,linestyle='steps') self.fig2.canvas.draw()
def plotspecbyid(id): fits=specfromid(id) head,spec,noise=sdss.splitfits(fits) wave=10**(head.get('COEFF0')+(N.arange(len(spec),dtype='f')*head.get('COEFF1'))) P.plot(wave,spec,linestyle='steps')