def combine_abundance_singles(binned,options,savename,fehs,afes): for ii in range(len(fehs)): thisdata= binned(fehs[ii],afes[ii]) thisdataIndx= binned.callIndx(fehs[ii],afes[ii]) #Read from temporary file spl= savename.split('.') newname= '' for jj in range(len(spl)-1): newname+= spl[jj] if not jj == len(spl)-2: newname+= '.' newname+= '_%i.' % ii newname+= spl[-1] newdata= _load_fits(newname) #Load into binned binned.data.feh[thisdataIndx]= newdata.feh binned.data.dered_r[thisdataIndx]= newdata.dered_r binned.data.dered_g[thisdataIndx]= newdata.dered_g binned.data.plate[thisdataIndx]= newdata.plate binned.data.ra[thisdataIndx]= newdata.ra binned.data.dec[thisdataIndx]= newdata.dec binned.data.l[thisdataIndx]= newdata.l binned.data.b[thisdataIndx]= newdata.b binned.data.vr[thisdataIndx]= newdata.vr binned.data.pmra[thisdataIndx]= newdata.pmra binned.data.pmdec[thisdataIndx]= newdata.pmdec #Remove temporary file os.remove(newname) return binned
def plotMetallicityColor(options,args): if options.png: ext= 'png' else: ext= 'ps' #Load data XYZ,vxvyvz,cov_vxvyvz,data= readData(metal=options.metal, sample=options.sample) #Load plates platestr= segueSelect._load_fits(os.path.join(segueSelect._SEGUESELECTDIR, 'segueplates.fits')) #Set up ranges if options.sample.lower() == 'g': xrange=[0.46,0.57] rmin, rmax= 14.5, 20.2 grmin, grmax= 0.48, 0.55 rx= 0.47 colorrange=[0.48,0.55] elif options.sample.lower() == 'k': xrange=[0.51,0.79] rmin, rmax= 14.5, 19. grmin, grmax= 0.55,0.75 rx= 0.01/.11*(xrange[1]-xrange[0])+xrange[0] colorrange=[0.55,0.75] if options.metal.lower() == 'rich': yrange=[-0.55,0.5] ry= 0.275 fehrange= _APOORFEHRANGE elif options.metal.lower() == 'poor': yrange=[-1.6,0.3] ry= yrange[1]-(.5-0.275)*(yrange[1]-yrange[0]) fehrange= _ARICHFEHRANGE #First plot all data, faint, and bright bovy_plot.bovy_print() _plotMC_single(data,options,args,all=True,overplot=False,xrange=xrange, yrange=yrange,fehrange=fehrange,colorrange=colorrange) _overplot_model(data,xrange=xrange,yrange=yrange,fehrange=fehrange, colorrange=colorrange) bovy_plot.bovy_end_print(os.path.join(args[0],'FeH_gr_'+options.sample+'_'+options.metal+'.'+ext)) #Then plot them pixel-by-pixel platelb= bovy_coords.radec_to_lb(platestr.ra,platestr.dec, degree=True) nside= 1 for ii in range(12*nside**2): #First find all of the plates in this pixel indx= (platestr.healpix_level1 == ii) if numpy.sum(indx) == 0: continue #No match thisplatestr= platestr[indx] platels= platelb[indx,0] platebs= platelb[indx,1] indx= [] for jj in range(len(data.ra)): if data[jj].plate in list(thisplatestr.plate): indx.append(True) else: indx.append(False) indx= numpy.array(indx,dtype='bool') if numpy.sum(indx) == 0: continue #No matches bovy_plot.bovy_print() _plotMC_single(data[indx],options,args,all=False,overplot=False, xrange=xrange,yrange=yrange,platels=platels, platebs=platebs, ry=ry,rx=rx, rmin=rmin,rmax=rmax,grmin=grmin,grmax=grmax) _overplot_model(data,xrange=xrange,yrange=yrange,fehrange=fehrange, colorrange=colorrange) bovy_plot.bovy_end_print(os.path.join(args[0],'FeH_gr_'+options.sample+'_'+options.metal+'_%i.' % ii + ext)) return None