def plot_map(priors): """Plot of the fitted maps, with fitted objects overplotted :param priors: list of xidplus.prior classes :return: the default xidplus map plot """ sns.set_style("white") cmap = sns.cubehelix_palette(8, start=.5, rot=-.75, as_cmap=True) hdulists = list( map(lambda prior: postmaps.make_fits_image(prior, prior.sim), priors)) fig = plt.figure(figsize=(10 * len(priors), 10)) figs = [] for i in range(0, len(priors)): figs.append( aplpy.FITSFigure(hdulists[i][1], figure=fig, subplot=(1, len(priors), i + 1))) for i in range(0, len(priors)): vmin = np.min(priors[i].sim) vmax = np.max(priors[i].sim) figs[i].show_colorscale(vmin=vmin, vmax=vmax, cmap=cmap) figs[i].show_markers(priors[i].sra, priors[i].sdec, edgecolor='black', facecolor='black', marker='o', s=20, alpha=0.5) figs[i].tick_labels.set_xformat('dd.dd') figs[i].tick_labels.set_yformat('dd.dd') figs[i].add_colorbar() figs[i].colorbar.set_location('top') return figs, fig
def plot_map(priors): """Plot of the fitted maps, with fitted objects overplotted :param priors: list of xidplus.prior classes :return: the default xidplus map plot """ sns.set_style("white") cmap=sns.cubehelix_palette(8, start=.5, rot=-.75,as_cmap=True) hdulists=list(map(lambda prior:postmaps.make_fits_image(prior,prior.sim), priors)) fig = plt.figure(figsize=(10*len(priors),10)) figs=[] for i in range(0,len(priors)): figs.append(aplpy.FITSFigure(hdulists[i][1],figure=fig,subplot=(1,len(priors),i+1))) for i in range(0,len(priors)): vmin=np.min(priors[i].sim) vmax=np.max(priors[i].sim) figs[i].show_colorscale(vmin=vmin,vmax=vmax,cmap=cmap) figs[i].show_markers(priors[i].sra, priors[i].sdec, edgecolor='black', facecolor='black', marker='o', s=20, alpha=0.5) figs[i].tick_labels.set_xformat('dd.dd') figs[i].tick_labels.set_yformat('dd.dd') figs[i].add_colorbar() figs[i].colorbar.set_location('top') return figs,fig
def plot_Bayes_pval_map(priors, posterior): """ :param priors: list of xidplus.prior classes :param posterior: xidplus.posterior class :return: the default xidplus Bayesian P value map plot """ sns.set_style("white") mod_map_array = postmaps.replicated_maps(priors, posterior, posterior.samples['lp__'].size) Bayes_pvals = [] cmap = sns.diverging_palette(220, 20, as_cmap=True) hdulists = list(map(lambda prior: postmaps.make_fits_image(prior, prior.sim), priors)) fig = plt.figure(figsize=(10 * len(priors), 10)) figs = [] for i in range(0, len(priors)): figs.append(aplpy.FITSFigure(hdulists[i][1], figure=fig, subplot=(1, len(priors), i + 1))) Bayes_pvals.append(postmaps.make_Bayesian_pval_maps(priors[i], mod_map_array[i])) for i in range(0, len(priors)): figs[i].show_markers(priors[i].sra, priors[i].sdec, edgecolor='black', facecolor='black', marker='o', s=20, alpha=0.5) figs[i].tick_labels.set_xformat('dd.dd') figs[i].tick_labels.set_yformat('dd.dd') figs[i]._data[ priors[i].sy_pix - np.min(priors[i].sy_pix) - 1, priors[i].sx_pix - np.min(priors[i].sx_pix) - 1] = \ Bayes_pvals[i] figs[i].show_colorscale(vmin=-6, vmax=6, cmap=cmap) figs[i].add_colorbar() figs[i].colorbar.set_location('top') return figs, fig
def plot_Bayes_pval_map(priors, posterior): """ :param priors: list of xidplus.prior classes :param posterior: xidplus.posterior class :return: the default xidplus Bayesian P value map plot """ sns.set_style("white") mod_map_array = postmaps.replicated_maps(priors, posterior, posterior.samples['lp__'].size) Bayes_pvals = [] cmap = sns.diverging_palette(220, 20, as_cmap=True) hdulists = list( map(lambda prior: postmaps.make_fits_image(prior, prior.sim), priors)) fig = plt.figure(figsize=(10 * len(priors), 10)) figs = [] for i in range(0, len(priors)): figs.append( aplpy.FITSFigure(hdulists[i][1], figure=fig, subplot=(1, len(priors), i + 1))) Bayes_pvals.append( postmaps.make_Bayesian_pval_maps(priors[i], mod_map_array[i])) for i in range(0, len(priors)): figs[i].show_markers(priors[i].sra, priors[i].sdec, edgecolor='black', facecolor='black', marker='o', s=20, alpha=0.5) figs[i].tick_labels.set_xformat('dd.dd') figs[i].tick_labels.set_yformat('dd.dd') figs[i]._data[ priors[i].sy_pix - np.min(priors[i].sy_pix) - 1, priors[i].sx_pix - np.min(priors[i].sx_pix) - 1] = \ Bayes_pvals[i] figs[i].show_colorscale(vmin=-6, vmax=6, cmap=cmap) figs[i].add_colorbar() figs[i].colorbar.set_location('top') return figs, fig
#priors[0].prior_flux_upper=(priors[0].prior_flux_upper-10.0+0.02)/np.max(priors[0].prf) fit=MIPS.MIPS_24(priors[0],iter=1000) posterior=xidplus.posterior_stan(fit,priors) outfile=output_folder+'Tile_'+str(tiles[taskid-1])+'_'+str(order) posterior=xidplus.posterior_stan(fit,priors) xidplus.save(priors,posterior,outfile) post_rep_map=postmaps.replicated_maps(priors,posterior,nrep=2000) Bayes_P24=postmaps.Bayes_Pval_res(priors[0],post_rep_map[0]) cat=catalogue.create_MIPS_cat(posterior, priors[0], Bayes_P24) kept_sources=moc_routines.sources_in_tile([tiles[taskid-1]],order,priors[0].sra,priors[0].sdec) kept_sources=np.array(kept_sources) cat[1].data=cat[1].data[kept_sources] outfile=output_folder+'Tile_'+str(tiles[taskid-1])+'_'+str(order) cat.writeto(outfile+'_MIPS24_cat.fits',overwrite=True) Bayesian_Pval=postmaps.make_Bayesian_pval_maps(priors[0],post_rep_map[0]) wcs_temp=wcs.WCS(priors[0].imhdu) ra,dec=wcs_temp.wcs_pix2world(priors[0].sx_pix,priors[0].sy_pix,0) kept_pixels=np.array(moc_routines.sources_in_tile([tiles[taskid-1]],order,ra,dec)) Bayesian_Pval[np.invert(kept_pixels)]=np.nan Bayes_24_map=postmaps.make_fits_image(priors[0],Bayesian_Pval) Bayes_24_map.writeto(outfile+'_MIPS_24_Bayes_Pval.fits',overwrite=True)
#tiles=Master['tiles'] #order=Master['order'] outfile=output_folder+'Master_prior.pkl' with open(outfile, 'rb') as f: obj=pickle.load(f) priors=obj['priors'] bands=['PACS_100', 'PACS_160'] #hdulists=[] #for b in bands: # hdulists.append(fits.open(output_folder+'dmu26_XID+PACS_'+b+'_EGS_Bayes_Pval.fits')) hdulists=list(map(lambda prior: postmaps.make_fits_image(prior,np.full_like(prior.sim,np.nan)),priors)) failed_tiles=[] for i in range(0,len(tiles)): print('On tile '+str(i)+' out of '+str(len(tiles))) try: for b in range(0,len(priors)): Bayes_tile=fits.open(output_folder+'Tile_'+str(tiles[i])+'_'+str(order)+'_'+bands[b]+'_Bayes_Pval.fits') x_ind,y_ind=np.meshgrid(np.arange(0,Bayes_tile[1].header['NAXIS1'],dtype=np.int16)-Bayes_tile[1].header['CRPIX1']+hdulists[b][1].header['CRPIX1'],np.arange(0,Bayes_tile[1].header['NAXIS2'],dtype=np.int16)-Bayes_tile[1].header['CRPIX2']+hdulists[b][1].header['CRPIX2']) good=Bayes_tile[1].data>-6 hdulists[b][1].data[y_ind[good].astype(np.int16),x_ind[good].astype(np.int16)]=Bayes_tile[1].data[good]
#First run: Tiles.pkl ##################### with open(output_folder+'Tiles.pkl',"rb") as f: Master = pickle.load(f) tiles=Master['tiles'] order=Master['order'] outfile=output_folder+'Master_prior.pkl' with open(outfile, 'rb') as f: obj=pickle.load(f) priors=obj['priors'] hdulist24=postmaps.make_fits_image(priors[0],np.full_like(priors[0].sim,np.nan)) failed_tiles=[] for i in range(0,len(tiles)): print('On tile '+str(i)+' out of '+str(len(tiles))) try: Bayes_24_tile=fits.open(output_folder+'Tile_'+str(tiles[i])+'_'+str(order)+'_MIPS_24_Bayes_Pval.fits') x_ind,y_ind=np.meshgrid(np.arange(0,Bayes_24_tile[1].header['NAXIS1'],dtype=np.int16)-Bayes_24_tile[1].header['CRPIX1']+hdulist24[1].header['CRPIX1'],np.arange(0,Bayes_24_tile[1].header['NAXIS2'],dtype=np.int16)-Bayes_24_tile[1].header['CRPIX2']+hdulist24[1].header['CRPIX2']) good=Bayes_24_tile[1].data>-6 hdulist24[1].data[y_ind[good].astype(np.int16),x_ind[good].astype(np.int16)]=Bayes_24_tile[1].data[good]