{ "cells": [ { "cell_type": "code", "execution_count": 1, "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": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Sel_func=pymoc.MOC()\n", "Sel_func.read('../../dmu4/dmu4_sm_SGP/data/holes_SGP_vista_ks_20180509_O16_MOC.fits')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in CIGALE predictions catalogue" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cigale=Table.read('../../dmu28/dmu28_SGP/data/hatlas_sgp_Ldust_prediction_results.fits')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cigale['id'].name = 'help_id'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in photoz" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "photoz=Table.read('../../dmu24/dmu24_SGP/data/master_catalogue_sgp_20180221_photoz_20180502_r_optimised.fits')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<Table length=17057212>\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_J000034.399-292559.5200.143327990467-29.43320001857490.18170.0660.30680.795-99.0-99.0-99.0-99.00.1592571827980.232677450.104965750.727834258.409065k4i
HELP_J000023.158-295010.5680.0964932450257-29.836268822310270.43190.16970.71120.795-99.0-99.0-99.0-99.00.404234079574-99.0-99.0-99.0-99.0
HELP_J000005.462-295122.3350.0227600836353-29.856204266710850.56120.21620.9290.797-99.0-99.0-99.0-99.00.522525938906-99.0-99.0-99.0-99.0
HELP_J000051.301-291551.1400.213755113372-29.264205579313950.61620.23451.02370.799-99.0-99.0-99.0-99.00.568823299054-99.0-99.0-99.0-99.0
HELP_J000007.372-304303.6330.0307178887805-30.717675865114260.75140.58770.90610.79-99.0-99.0-99.0-99.00.78984360121812.708858571410.32486428579.948524285714.85362714286m4v
HELP_J000007.404-304200.0720.030848028776-30.700019948714290.47370.21980.71120.795-99.0-99.0-99.0-99.00.4382916956550.2608604285710.4342531428570.4008228571430.740359k7v
HELP_J000007.125-305610.2100.029689012927-30.936169354614300.81640.30681.36480.797-99.0-99.0-99.0-99.00.7214838556420.701085751.136476750.699954752.820445m0iii
HELP_J000007.269-304335.7040.0302890794322-30.726584569614370.97960.35871.6420.797-99.0-99.0-99.0-99.00.946440838550.5182840.478649750.27081653.6958875m6iii
HELP_J000007.195-304537.0480.0299783907374-30.760290992114380.33430.16620.49990.796-99.0-99.0-99.0-99.00.421160868940.655770251.400756252.116455.7564925wk0iii
HELP_J000007.684-304103.9740.0320155135818-30.684437162614460.96360.39171.55640.796-99.0-99.0-99.0-99.00.9876858183930.2950561666670.5024840.2674786666672.26358m5iii
......................................................
HELP_J000616.858-360123.1791.5702412738-36.0231052777297906810.92540.33451.56410.797-99.0-99.0-99.0-99.00.838753365465-99.0-99.0-99.0-99.0
HELP_J000621.150-360124.9791.5881262738-36.0236052777297906820.70320.31471.09780.7750.28120.26070.30290.020.6706813477360.005678560.1293758250.149111352.4331595m1iii
HELP_J000623.672-360128.7841.5986332738-36.0246622777297906830.93320.37921.55640.8-99.0-99.0-99.0-99.00.8498024344380.221418750.74874550.8184441.8933915m3iii
HELP_J000616.778-360129.6481.5699072738-36.0249022777297906840.71690.26831.20740.796-99.0-99.0-99.0-99.00.6656842948520.028407450.0405196250.0955024750.1588414k3v
HELP_J000624.928-360147.0481.60386566449-36.0297356518297906850.14320.07560.20890.791-99.0-99.0-99.0-99.00.1420237358150.04641504285710.1441864285710.1505344285711.51117285714g8iv
HELP_J000622.662-360153.4511.5944232738-36.0315142777297906860.87610.33051.43680.798-99.0-99.0-99.0-99.00.9117698575034.4382975e-050.0159837050.019984474.7078wk3iii
HELP_J000624.022-360154.4741.6000900605-36.031798257297906870.54490.21250.90040.796-99.0-99.0-99.0-99.00.4126721221582.2334122.3533222.3749442.970864g0i
HELP_J000624.354-360155.9031.6014732738-36.0321952777297906881.08760.39171.84750.797-99.0-99.0-99.0-99.00.9699034467910.0035190050.0019883160.00040893150.082182625m5iii
HELP_J000624.019-360158.2181.6000792738-36.0328382777297906891.05240.41.77170.796-99.0-99.0-99.0-99.00.9232576825760.086278450.07422380.0022914990.418724m5iii
HELP_J000623.530-360201.2171.5980432738-36.0336712777297906900.73650.27971.22730.797-99.0-99.0-99.0-99.00.7214838556420.0257133250.143179250.355132751.31836775wk4iii
" ], "text/plain": [ "\n", " help_id RA ... chi_r_stellar stellar_type\n", " str27 float64 ... float64 str6 \n", "--------------------------- --------------- ... ------------- ------------\n", "HELP_J000034.399-292559.520 0.143327990467 ... 8.409065 k4i\n", "HELP_J000023.158-295010.568 0.0964932450257 ... -99.0 \n", "HELP_J000005.462-295122.335 0.0227600836353 ... -99.0 \n", "HELP_J000051.301-291551.140 0.213755113372 ... -99.0 \n", "HELP_J000007.372-304303.633 0.0307178887805 ... 4.85362714286 m4v\n", "HELP_J000007.404-304200.072 0.030848028776 ... 0.740359 k7v\n", "HELP_J000007.125-305610.210 0.029689012927 ... 2.820445 m0iii\n", "HELP_J000007.269-304335.704 0.0302890794322 ... 3.6958875 m6iii\n", "HELP_J000007.195-304537.048 0.0299783907374 ... 5.7564925 wk0iii\n", "HELP_J000007.684-304103.974 0.0320155135818 ... 2.26358 m5iii\n", " ... ... ... ... ...\n", "HELP_J000616.858-360123.179 1.5702412738 ... -99.0 \n", "HELP_J000621.150-360124.979 1.5881262738 ... 2.4331595 m1iii\n", "HELP_J000623.672-360128.784 1.5986332738 ... 1.8933915 m3iii\n", "HELP_J000616.778-360129.648 1.5699072738 ... 0.1588414 k3v\n", "HELP_J000624.928-360147.048 1.60386566449 ... 1.51117285714 g8iv\n", "HELP_J000622.662-360153.451 1.5944232738 ... 4.7078 wk3iii\n", "HELP_J000624.022-360154.474 1.6000900605 ... 2.970864 g0i\n", "HELP_J000624.354-360155.903 1.6014732738 ... 0.082182625 m5iii\n", "HELP_J000624.019-360158.218 1.6000792738 ... 0.418724 m5iii\n", "HELP_J000623.530-360201.217 1.5980432738 ... 1.31836775 wk4iii" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "photoz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Join CIGALE and photoz tables" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prior=join(cigale,photoz)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "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": 10, "metadata": { "collapsed": true }, "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": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prior['DEC'].name='Dec'" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4436690" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(cigale)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in Maps" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pswfits='../../dmu19/dmu19_HELP-SPIRE-maps/data/HATLAS-SGP_SPIRE250_v0.9.fits'#SPIRE 250 map\n", "pmwfits='../../dmu19/dmu19_HELP-SPIRE-maps/data/HATLAS-SGP_SPIRE350_v0.9.fits'#SPIRE 350 map\n", "plwfits='../../dmu19/dmu19_HELP-SPIRE-maps/data/HATLAS-SGP_SPIRE500_v0.9.fits'#SPIRE 500 map\n", "\n", "#output folder\n", "output_folder='./'" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "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": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Set XID+ prior class" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "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'] ,'hatlas_sgp_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'] ,'hatlas_sgp_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'] ,'hatlas_sgp_Ldust_prediction_results.fits',ID=prior['help_id'] )\n", "prior500.prior_bkg(-5.0,5)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "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": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----- There are 18279 tiles required for input catalogue and 379 large tiles\n", "writing total_bytes=5118646130...\n", "writing bytes [0, 1073741824)... done.\n", "writing bytes [1073741824, 2147483648)... done.\n", "writing bytes [2147483648, 3221225472)... done.\n", "writing bytes [3221225472, 4294967296)... done.\n", "writing bytes [4294967296, 5118646130)... 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 }