Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
#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]