{ "cells": [ { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pylab as plt\n", "import pymoc\n", "import xidplus\n", "import numpy as np\n", "%matplotlib inline\n", "from astropy.table import Table, join" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import seaborn as sns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook uses all the raw data from the CIGALE predictions and photoz catalogue, maps, PSF and relevant MOCs to create XID+ prior object and relevant tiling scheme" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in MOCs\n", "The selection functions required are the main MOC associated with the masterlist. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Sel_func=pymoc.MOC()\n", "Sel_func.read('../../dmu4/dmu4_sm_GAMA-15/data/holes_GAMA-15_ukidss_k_O16_20180327.fits')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in CIGALE predictions catalogue" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cigale=Table.read('../GAMA15_Ldust_prediction_results.fits')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "cigale['id'].name = 'help_id'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in photoz" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "photoz=Table.read('../../dmu24/dmu24_GAMA-15/data/master_catalogue_gama-15_20180119_photoz_20180210_r_optimised.fits')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<Table length=10109159>\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
help_idRADECidz1_medianz1_minz1_maxz1_areaz2_medianz2_minz2_maxz2_areaza_hbchi_r_eazychi_r_atlaschi_r_cosmoschi_r_stellarstellar_type
str27float64float64int64float64float64float64float64float64float64float64float64float64float64float64float64float64str6
HELP_J141546.547+000529.927213.9439444340.09164634854643220650.90280.5831.24070.781.66821.6421.6980.0190.8889996515380.00389017250.0363540.0708962751.8363205m4iii
HELP_J144113.844-000720.633220.307684538-0.1223981558823220661.12820.52251.8560.7750.39120.35870.42120.0210.8609178972660.0675391250.0346000750.012830381.328487f8v
HELP_J143631.813+002833.098219.1325532850.4758605579293220671.290.79521.89910.796-99.0-99.0-99.0-99.01.048127879740.00108020050.018829070.03687019.1299375m1iii
HELP_J143302.417+002405.826218.2600711190.4016182827663220681.13470.38751.95170.798-99.0-99.0-99.0-99.01.00562871194-99.0-99.0-99.0-99.0
HELP_J144038.334-002408.434220.159726887-0.4023428190393220691.01480.68581.48090.7751.70871.66591.75520.0240.8665006509580.0004019070.1252520750.2904887512.5883675wg8iii
HELP_J143418.946-004636.350218.578941517-0.7767638219893220700.8860.50891.26770.7021.71681.58721.8560.0730.883349602730.27087050.575805250.444847756.14024wk2iii
HELP_J143159.128-000214.789217.996368068-0.03744126534393220710.85710.39581.28130.6411.65391.38621.91650.1560.883349602730.0418017250.5731210.2207725752.48693275wk2iii
HELP_J144020.768-002750.029220.08653192-0.4638968494883220720.90880.69081.22070.796-99.0-99.0-99.0-99.00.8721001529110.111235850.703353250.611192518.1824775wk2iii
HELP_J143048.452+010925.488217.7018829341.157079964733220730.95170.62621.26770.796-99.0-99.0-99.0-99.00.8889996515380.10522130.856425750.4100457517.4037275wk2iii
HELP_J143927.123-001348.344219.863013416-0.2300956148143220740.52260.21980.83880.8-99.0-99.0-99.0-99.00.5043918371050.0742086750.0436417750.1578846752.0616415m2v
......................................................
HELP_J141432.049-001555.249213.633535508-0.265346961897131382511.46560.69082.38780.798-99.0-99.0-99.0-99.01.288187406862.9776483.1858863.053044.956148g5v
HELP_J145243.725-004513.007223.182187893-0.753613056524131382521.00160.60691.4150.796-99.0-99.0-99.0-99.00.9996298224750.1321350666670.057267250.41764858.42179333333rf6v
HELP_J143044.968-005458.450217.687367398-0.916236072866131382531.47880.9641.98730.795-99.0-99.0-99.0-99.01.473522411361.973303333332.2600251.4975866666710.41183wg8iii
HELP_J142956.441+005309.413217.4851703140.885947960598131382541.98461.51842.51180.7481.43811.38621.48840.0261.94286245868.671508571438.411755714299.1115542857119.0278142857m3iii
HELP_J142936.521+000426.316217.4021693780.0739765903559131382551.3070.41692.31750.798-99.0-99.0-99.0-99.01.097802185482.7254842.7138922.7938343.652842k3i
HELP_J143426.623-021144.593218.610930822-2.19572022242131382560.88120.31861.48840.798-99.0-99.0-99.0-99.00.800598771417-99.0-99.0-99.0-99.0
HELP_J140237.451+002023.210210.6560472780.339780497272131382570.36990.19810.55480.795-99.0-99.0-99.0-99.00.3107445158921.0287676251.0768106250.7943616253.46422375rk5iii
HELP_J142950.230+010506.501217.4592897221.0851390778131382592.95652.43893.30520.6191.89471.61842.20030.1772.994524902030.71816720.6875325.80187613.938702rk3iii
HELP_J142338.189+014606.589215.90912021.76849694126131382600.41610.16270.68580.795-99.0-99.0-99.0-99.00.387508897362-99.0-99.0-99.0-99.0
HELP_J143044.353+004718.948217.6848035320.788596531709131382610.38380.22710.53630.7820.20820.20170.21620.010.3833588208990.2774884444440.3230988888890.4612446666671.35382444444rk4iii
" ], "text/plain": [ "\n", " help_id RA ... chi_r_stellar stellar_type\n", " str27 float64 ... float64 str6 \n", "--------------------------- ------------- ... ------------- ------------\n", "HELP_J141546.547+000529.927 213.943944434 ... 1.8363205 m4iii\n", "HELP_J144113.844-000720.633 220.307684538 ... 1.328487 f8v\n", "HELP_J143631.813+002833.098 219.132553285 ... 9.1299375 m1iii\n", "HELP_J143302.417+002405.826 218.260071119 ... -99.0 \n", "HELP_J144038.334-002408.434 220.159726887 ... 12.5883675 wg8iii\n", "HELP_J143418.946-004636.350 218.578941517 ... 6.14024 wk2iii\n", "HELP_J143159.128-000214.789 217.996368068 ... 2.48693275 wk2iii\n", "HELP_J144020.768-002750.029 220.08653192 ... 18.1824775 wk2iii\n", "HELP_J143048.452+010925.488 217.701882934 ... 17.4037275 wk2iii\n", "HELP_J143927.123-001348.344 219.863013416 ... 2.0616415 m2v\n", " ... ... ... ... ...\n", "HELP_J141432.049-001555.249 213.633535508 ... 4.956148 g5v\n", "HELP_J145243.725-004513.007 223.182187893 ... 8.42179333333 rf6v\n", "HELP_J143044.968-005458.450 217.687367398 ... 10.41183 wg8iii\n", "HELP_J142956.441+005309.413 217.485170314 ... 19.0278142857 m3iii\n", "HELP_J142936.521+000426.316 217.402169378 ... 3.652842 k3i\n", "HELP_J143426.623-021144.593 218.610930822 ... -99.0 \n", "HELP_J140237.451+002023.210 210.656047278 ... 3.46422375 rk5iii\n", "HELP_J142950.230+010506.501 217.459289722 ... 13.938702 rk3iii\n", "HELP_J142338.189+014606.589 215.9091202 ... -99.0 \n", "HELP_J143044.353+004718.948 217.684803532 ... 1.35382444444 rk4iii" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "photoz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Join CIGALE and photoz tables" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "prior=join(cigale,photoz)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "from astropy.cosmology import Planck15 as cosmo\n", "from astropy import units as u\n", "f_pred=prior['bayes.dust.luminosity']/(4*np.pi*cosmo.luminosity_distance(prior['z1_median']).to(u.cm))" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "prior=prior[np.isfinite(f_pred.value)][np.log10(f_pred.value[np.isfinite(f_pred.value)])>8.5]" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "prior['DEC'].name='Dec'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in Maps" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pswfits='../../dmu19/dmu19_HELP-SPIRE-maps/data/GAMA-15_SPIRE250_v0.9.fits'#SPIRE 250 map\n", "pmwfits='../../dmu19/dmu19_HELP-SPIRE-maps/data/GAMA-15_SPIRE350_v0.9.fits'#SPIRE 350 map\n", "plwfits='../../dmu19/dmu19_HELP-SPIRE-maps/data/GAMA-15_SPIRE500_v0.9.fits'#SPIRE 500 map\n", "\n", "#output folder\n", "output_folder='./'" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "from astropy.io import fits\n", "from astropy import wcs\n", "\n", "#-----250-------------\n", "hdulist = fits.open(pswfits)\n", "im250phdu=hdulist[0].header\n", "im250hdu=hdulist[1].header\n", "\n", "im250=hdulist[1].data*1.0E3 #convert to mJy\n", "nim250=hdulist[3].data*1.0E3 #convert to mJy\n", "w_250 = wcs.WCS(hdulist[1].header)\n", "pixsize250=3600.0*w_250.wcs.cdelt #pixel size (in arcseconds)\n", "hdulist.close()\n", "#-----350-------------\n", "hdulist = fits.open(pmwfits)\n", "im350phdu=hdulist[0].header\n", "im350hdu=hdulist[1].header\n", "\n", "im350=hdulist[1].data*1.0E3 #convert to mJy\n", "nim350=hdulist[3].data*1.0E3 #convert to mJy\n", "w_350 = wcs.WCS(hdulist[1].header)\n", "pixsize350=3600.0*w_350.wcs.cdelt #pixel size (in arcseconds)\n", "hdulist.close()\n", "#-----500-------------\n", "hdulist = fits.open(plwfits)\n", "im500phdu=hdulist[0].header\n", "im500hdu=hdulist[1].header\n", "im500=hdulist[1].data*1.0E3 #convert to mJy\n", "nim500=hdulist[3].data*1.0E3 #convert to mJy\n", "w_500 = wcs.WCS(hdulist[1].header)\n", "pixsize500=3600.0*w_500.wcs.cdelt #pixel size (in arcseconds)\n", "hdulist.close()" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Set XID+ prior class" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "#---prior250--------\n", "prior250=xidplus.prior(im250,nim250,im250phdu,im250hdu, moc=Sel_func)#Initialise with map, uncertianty map, wcs info and primary header\n", "prior250.prior_cat(prior['RA'] ,prior['Dec'] ,'GAMA15_Ldust_prediction_results.fits',ID=prior['help_id'] )#Set input catalogue\n", "prior250.prior_bkg(-5.0,5)#Set prior on background (assumes Gaussian pdf with mu and sigma)\n", "#---prior350--------\n", "prior350=xidplus.prior(im350,nim350,im350phdu,im350hdu, moc=Sel_func)\n", "prior350.prior_cat(prior['RA'] ,prior['Dec'] ,'GAMA15_Ldust_prediction_results.fits',ID=prior['help_id'] )\n", "prior350.prior_bkg(-5.0,5)\n", "\n", "#---prior500--------\n", "prior500=xidplus.prior(im500,nim500,im500phdu,im500hdu, moc=Sel_func)\n", "prior500.prior_cat(prior['RA'] ,prior['Dec'] ,'GAMA15_Ldust_prediction_results.fits',ID=prior['help_id'] )\n", "prior500.prior_bkg(-5.0,5)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "#pixsize array (size of pixels in arcseconds)\n", "pixsize=np.array([pixsize250,pixsize350,pixsize500])\n", "#point response function for the three bands\n", "prfsize=np.array([18.15,25.15,36.3])\n", "#use Gaussian2DKernel to create prf (requires stddev rather than fwhm hence pfwhm/2.355)\n", "from astropy.convolution import Gaussian2DKernel\n", "\n", "##---------fit using Gaussian beam-----------------------\n", "prf250=Gaussian2DKernel(prfsize[0]/2.355,x_size=101,y_size=101)\n", "prf250.normalize(mode='peak')\n", "prf350=Gaussian2DKernel(prfsize[1]/2.355,x_size=101,y_size=101)\n", "prf350.normalize(mode='peak')\n", "prf500=Gaussian2DKernel(prfsize[2]/2.355,x_size=101,y_size=101)\n", "prf500.normalize(mode='peak')\n", "\n", "pind250=np.arange(0,101,1)*1.0/pixsize[0,1] #get 250 scale in terms of pixel scale of map\n", "pind350=np.arange(0,101,1)*1.0/pixsize[1,1] #get 350 scale in terms of pixel scale of map\n", "pind500=np.arange(0,101,1)*1.0/pixsize[2,1] #get 500 scale in terms of pixel scale of map\n", "\n", "prior250.set_prf(prf250.array,pind250,pind250)#requires psf as 2d grid, and x and y bins for grid (in pixel scale)\n", "prior350.set_prf(prf350.array,pind350,pind350)\n", "prior500.set_prf(prf500.array,pind500,pind500)" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----- There are 4940 tiles required for input catalogue and 101 large tiles\n", "writing total_bytes=1549524018...\n", "writing bytes [0, 1073741824)... done.\n", "writing bytes [1073741824, 1549524018)... done.\n" ] }, { "ename": "SystemExit", "evalue": "", "traceback": [ "An exception has occurred, use %tb to see the full traceback.\n", "\u001b[0;31mSystemExit\u001b[0m\n" ], "output_type": "error" } ], "source": [ "import pickle\n", "#from moc, get healpix pixels at a given order\n", "from xidplus import moc_routines\n", "order=9\n", "tiles=moc_routines.get_HEALPix_pixels(order,prior250.sra,prior250.sdec,unique=True)\n", "order_large=6\n", "tiles_large=moc_routines.get_HEALPix_pixels(order_large,prior250.sra,prior250.sdec,unique=True)\n", "print('----- There are '+str(len(tiles))+' tiles required for input catalogue and '+str(len(tiles_large))+' large tiles')\n", "output_folder='./'\n", "outfile=output_folder+'Master_prior.pkl'\n", "xidplus.io.pickle_dump({'priors':[prior250,prior350,prior500],'tiles':tiles,'order':order,'version':xidplus.io.git_version()},outfile)\n", "outfile=output_folder+'Tiles.pkl'\n", "with open(outfile, 'wb') as f:\n", " pickle.dump({'tiles':tiles,'order':order,'tiles_large':tiles_large,'order_large':order_large,'version':xidplus.io.git_version()},f)\n", "raise SystemExit()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1236678" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prior250.nsrc" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "" ] } ], "metadata": { "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3.0 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 0 }