{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pylab\n", "import pymoc\n", "import xidplus\n", "import numpy as np\n", "%matplotlib inline\n", "from astropy.table import Table" ] }, { "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 XID+MIPS 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('../data/Lockman-SWIRE/holes_Lockman-SWIRE_irac1_20171214_O16_MOC.fits')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in XID+MIPS catalogue" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "XID_MIPS=Table.read('../data/Lockman-SWIRE/MIPS/dmu26_XID+MIPS_Lockman-SWIRE_cat_20171214.fits')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<Table length=10>\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
help_idRADecF_MIPS_24FErr_MIPS_24_uFErr_MIPS_24_lBkg_MIPS_24Sig_conf_MIPS_24Rhat_MIPS_24n_eff_MIPS_24Pval_res_24flag_mips_24
degdeguJyuJyuJyMJy / srMJy / sr
str27float64float64float32float32float32float32float32float32float32float32bool
HELP_J104834.640+553618.070162.144334455.6050193754953.6521391.02558.782-0.2631344.94239e-061.0021959.00.0False
HELP_J104844.111+553806.455162.1837977655.63512631575.83515.68551.42353-0.1244185.0304e-06nan1428.00.0True
HELP_J104909.113+554129.002162.28796938955.691389484916.593833.3475.675313.73435e-054.89605e-061.000591623.00.0True
HELP_J104910.454+554135.336162.29355963155.693148862947.504966.38528.21033.73435e-054.89605e-06nan775.00.0False
HELP_J104911.099+554218.548162.2962458455.7051523559187.706204.257169.476-0.002086015.06499e-061.001051615.00.0False
HELP_J104919.290+554303.561162.33037429955.717655946939.987258.728222.266-0.002086015.06499e-06nan2000.00.0False
HELP_J104916.682+554301.860162.31950737755.717183241918.109733.53746.31178-0.002086015.06499e-061.001471201.00.0True
HELP_J104914.098+554211.057162.30874151355.7030714689270.506288.916253.788-0.002086015.06499e-06nan1763.00.0False
HELP_J104910.874+554227.417162.29530698855.707615831930.271747.415113.7691-0.002086015.06499e-060.9993441381.00.0False
HELP_J104914.130+554220.288162.30887337555.7056354849251.413270.354232.821-0.002086015.06499e-06nan1918.00.0False
" ], "text/plain": [ "\n", " help_id RA ... Pval_res_24 flag_mips_24\n", " deg ... \n", " str27 float64 ... float32 bool \n", "--------------------------- ------------- ... ----------- ------------\n", "HELP_J104834.640+553618.070 162.1443344 ... 0.0 False\n", "HELP_J104844.111+553806.455 162.18379776 ... 0.0 True\n", "HELP_J104909.113+554129.002 162.287969389 ... 0.0 True\n", "HELP_J104910.454+554135.336 162.293559631 ... 0.0 False\n", "HELP_J104911.099+554218.548 162.29624584 ... 0.0 False\n", "HELP_J104919.290+554303.561 162.330374299 ... 0.0 False\n", "HELP_J104916.682+554301.860 162.319507377 ... 0.0 True\n", "HELP_J104914.098+554211.057 162.308741513 ... 0.0 False\n", "HELP_J104910.874+554227.417 162.295306988 ... 0.0 False\n", "HELP_J104914.130+554220.288 162.308873375 ... 0.0 False" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "XID_MIPS[0:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The uncertianties become Gaussian by $\\sim 20 \\mathrm{\\mu Jy}$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "good=XID_MIPS['F_MIPS_24']>20" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "249732" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "good.sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read in Maps" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "\n", "pswfits='../data/Lockman-SWIRE/SPIRE/Lockman-NEST_image_250_SMAP_v6.0.fits'#SPIRE 250 map\n", "pmwfits='../data/Lockman-SWIRE/SPIRE/Lockman-NEST_image_350_SMAP_v6.0.fits'#SPIRE 350 map\n", "plwfits='../data/Lockman-SWIRE/SPIRE/Lockman-NEST_image_500_SMAP_v6.0.fits'#SPIRE 500 map\n", "\n", "#output folder\n", "output_folder='./'" ] }, { "cell_type": "code", "execution_count": 9, "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[2].data*1.0E3 #convert to mJy\n", "w_250 = wcs.WCS(hdulist[1].header)\n", "pixsize250=3600.0*w_250.wcs.cd[1,1] #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[2].data*1.0E3 #convert to mJy\n", "w_350 = wcs.WCS(hdulist[1].header)\n", "pixsize350=3600.0*w_350.wcs.cd[1,1] #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[2].data*1.0E3 #convert to mJy\n", "w_500 = wcs.WCS(hdulist[1].header)\n", "pixsize500=3600.0*w_500.wcs.cd[1,1] #pixel size (in arcseconds)\n", "hdulist.close()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Set XID+ prior class" ] }, { "cell_type": "code", "execution_count": 11, "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(XID_MIPS['RA'][good],XID_MIPS['Dec'][good],'dmu26_XID+MIPS_Lockman-SWIRE_cat_20171214.fits',ID=XID_MIPS['help_id'][good])#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(XID_MIPS['RA'][good],XID_MIPS['Dec'][good],'dmu26_XID+MIPS_Lockman-SWIRE_cat_20171214.fits',ID=XID_MIPS['help_id'][good])\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(XID_MIPS['RA'][good],XID_MIPS['Dec'][good],'dmu26_XID+MIPS_Lockman-SWIRE_cat_20171214.fits',ID=XID_MIPS['help_id'][good])\n", "prior500.prior_bkg(-5.0,5)" ] }, { "cell_type": "code", "execution_count": 12, "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] #get 250 scale in terms of pixel scale of map\n", "pind350=np.arange(0,101,1)*1.0/pixsize[1] #get 350 scale in terms of pixel scale of map\n", "pind500=np.arange(0,101,1)*1.0/pixsize[2] #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": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----- There are 942 tiles required for input catalogue and 24 large tiles\n", "writing total_bytes=349257933...\n", "writing bytes [0, 349257933)... done.\n" ] }, { "ename": "SystemExit", "evalue": "", "output_type": "error", "traceback": [ "An exception has occurred, use %tb to see the full traceback.\n", "\u001b[0;31mSystemExit\u001b[0m\n" ] } ], "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": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "242521" ] }, "execution_count": 15, "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 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }