{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# PSF normalization\n", "\n", "Let us assume that we have reduced an observation, for which we have determined the PSF by stacking the flux of point-like sources. The PSF we obtain will not be as high S/N as the instrumental PSF that has been determined by the instrument team. Moreover, it is likely to be fattened due to the some small pointing errors. We need to find out what fraction of a point-like flux the PSF we have determined represent. In order to do this, we use the growth curve of the theoretical PSF that has been determine by the instrument team, and compare it to the growth curve we determine from our PSF.\n", "\n", "We will first look at a theoretical case, then go practical with an example drawn from the PACS observation of the the XMM-LSS.\n", "\n", "## 1) Theoretical example. \n", "\n", "Let us suppose we have a perfect telescope, without any central obscuration and spider to support the secondary. Diffraction theory gives us the shape of a PSF in this case, an Airy function. Let's compute it, and assume the resolution is 10\".\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# import what we will need. \n", "%matplotlib inline\n", "import numpy as np\n", "from astropy.io import fits\n", "from astropy.table import Table\n", "from astropy.io import ascii as asciiread\n", "from matplotlib import pyplot as plt\n", "from scipy import interpolate \n", "from scipy import special\n", "from scipy import signal\n", "from scipy import fftpack" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Let us perform our computation with a 0.1\" resolution on a 5' field of view\n", "resol = 0.1\n", "size = 300.\n", "# wavelength\n", "wavelength = 250e-6\n", "# primary aperture = 3.6 m diameter\n", "aperture = 3.6 / 2." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Ensure we have an odd number of points \n", "nbpix = np.ceil(size/resol) // 2 * 2 + 1\n", "xcen = int((nbpix - 1) / 2)\n", "ycen = int((nbpix - 1) / 2)\n", "x = y = (np.arange(nbpix) - xcen)*resol\n", "xv, yv = np.meshgrid(x, y, sparse=False, indexing='xy')\n", "r = np.sqrt(xv**2+yv**2)\n", "# avoid division by 0 problems in the center\n", "r[xcen,ycen] = 1e-6\n", "# coordinates in fourier\n", "q = 2 * np.pi / wavelength * aperture * np.sin(r/3600.*np.pi/180.)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "psf = (2*special.jn(1, q)/q)**2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# put back the correct value at center\n", "psf[xcen, ycen] = 1.\n", "# and normalize the PSF\n", "psf = psf/(np.sum(psf)*resol**2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.imshow(np.log10(psf))\n", "print(r'$\\int\\int$ psf dx dy = {}'.format(np.sum(psf)*resol**2))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(y[ycen-500:ycen+500], psf[ycen-500:ycen+500, xcen], label='Without obscuration')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us now suppose that we observe a point source, and our image reconstruction has a ...This will shows a a blurring of the image, with a gaussian of 10\" FWHM. Let's generate this blurring" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fwhm = 10.\n", "sigma = fwhm / 2. / np.sqrt(2. * np.log(fwhm))\n", "sigmasq = sigma**2\n", "kernel_blur = 1./ 2./ np.pi / sigmasq * np.exp(-(r**2/2./sigmasq))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Check our kernel is properly normalized\n", "np.sum(kernel_blur*resol**2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# apply the blur\n", "psfblur = signal.convolve(psf, kernel_blur, mode='same')*resol**2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(y[ycen-500:ycen+500], psf[ycen-500:ycen+500, xcen], label='Original')\n", "plt.plot(y[ycen-500:ycen+500], psfblur[ycen-500:ycen+500, xcen], label='With blurring')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see the effect of blurring, the, observed PSF is wider, and we have lost some flux in the central core. Suppose now that we observed this psf with sources of unknown fluxes, so that we re unsure of its scaling, and that a background remain in our observation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "psfobs = psfblur * 2. + 1e-4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The question is now how to recover the PSF that serve for our observation. For this, we will use the PSFs curve of growth. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "radii = np.arange(0, np.max(r), resol)\n", "growth_psf = np.zeros(radii.shape)\n", "growth_psfobs = np.zeros(radii.shape)\n", "nbpix_psfobs = np.zeros(radii.shape)\n", "for i, radius in enumerate(radii):\n", " if ((i % 100) == 0):\n", " print(radius, np.max(radii))\n", " if i == 0:\n", " idj, idi = np.where(r <= radius)\n", " growth_psf[i] = np.sum(psf[idj, idi])*resol**2\n", " growth_psfobs[i] = np.sum(psfobs[idj, idi])*resol**2\n", " nbpix_psfobs[i] =len(idi)\n", " else:\n", " idj, idi = np.where((r > radii[i-1]) & (r <= radius))\n", " growth_psf[i] = growth_psf[i-1]+np.sum(psf[idj, idi])*resol**2\n", " growth_psfobs[i] = growth_psfobs[i-1]+np.sum(psfobs[idj, idi])*resol**2\n", " nbpix_psfobs[i] = nbpix_psfobs[i-1]+len(idi)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(radii, growth_psf, label='PSF')\n", "plt.plot(radii, growth_psfobs, label='Observed PSF')\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This strongly rising shape of the observed PSF is a sure sign of an non zero background. Let's determine it. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(nbpix_psfobs, growth_psfobs)\n", "plt.xlabel('Number of pixels')\n", "plt.ylabel('Encircled flux')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When plotted as a function of the intergated area, there is a clear linear relation, that we will fit:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "idx, = np.where(radii > 50)\n", "p = np.polyfit(nbpix_psfobs[idx], growth_psfobs[idx], 1)\n", "bkg = p[0]/resol**2" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Correct PSF and curve of growth\n", "psfcor = psfobs-bkg\n", "growth_psfcor = growth_psfobs - bkg*nbpix_psfobs*resol**2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(radii, growth_psf, label='PSF')\n", "plt.plot(radii, growth_psfcor, label='Observed PSF')\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Let's have a look at the ratio of the two:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(radii[1:], growth_psfcor[1:]/growth_psf[1:])\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Ratio of encircled flux')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Due to the different resolution, the ratio is not constant. Let's note the calibration $C(r)$. Let us assume that our observed PSF encirled energy is of the form:\n", "\n", "$E(r) = \\alpha C(r \\times \\beta)$\n", "\n", "Where $\\beta$ is the fattening of the PSF. If we differentiate as a function of $r$:\n", "\n", "$E'(r) = \\alpha \\beta C'(r \\times \\beta)$\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# compute the derivatives\n", "deriv_growth_psf = (growth_psf[2:]-growth_psf[0:-2])/(radii[2:]-radii[0:-2])\n", "deriv_growth_psfcor = (growth_psfcor[2:]-growth_psfcor[0:-2])/(radii[2:]-radii[0:-2])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(radii[1:-1], deriv_growth_psf)\n", "plt.plot(radii[1:-1], deriv_growth_psfcor)\n", "plt.xlim([0,60])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compared with the growth curve plot, the derivative show clear maxima and minima that are out of phase. Findind the positions of the these will tell us if our assumption of homothetical variation is correct." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Find the local minima and maxima of the two curves.\n", "# To find a local extremum, we will fit the portion of curve with a degree 3 polynomial, \n", "# extract the roots of its derivative and only retain the one that are between the bounds.\n", "# This is what the following function does.\n", "def local_max(xvalues, yvalues, lower_bound, upper_bound, check_plot=False):\n", " idx,=np.where((xvalues > lower_bound) & (xvalues < upper_bound))\n", " p = np.polyfit(xvalues[idx], yvalues[idx], 3)\n", " delta = (2.*p[1])**2 - 4.*3.*p[0]*p[2]\n", " r1 = (-2*p[1]+np.sqrt(delta))/(2*3*p[0])\n", " r2 = (-2*p[1]-np.sqrt(delta))/(2*3*p[0])\n", " result = r1 if ((r1 > lower_bound) and (r1 < upper_bound)) else r2\n", " if check_plot:\n", " plt.plot(xvalues[idx], yvalues[idx])\n", " plt.plot(xvalues[idx], p[0]*xvalues[idx]**3+p[1]*xvalues[idx]**2+\n", " p[2]*xvalues[idx]+p[3], '--')\n", " plt.plot(np.array([result, result]), np.array([np.min(yvalues), np.max(yvalues)]), '-')\n", " return result\n", " \n", " \n", "max_dpsf_1 = local_max(radii[1:-1], deriv_growth_psf, 3, 10, check_plot=True)\n", "max_dpsfcor_1 = local_max(radii[1:-1], deriv_growth_psfcor, 3, 10, check_plot=True)\n", "\n", "max_dpsf_2 = local_max(radii[1:-1], deriv_growth_psf, 14, 21, check_plot=True)\n", "max_dpsfcor_2 = local_max(radii[1:-1], deriv_growth_psfcor, 14, 21, check_plot=True)\n", "\n", "max_dpsf_3 = local_max(radii[1:-1], deriv_growth_psf, 21, 28, check_plot=True)\n", "max_dpsfcor_3 = local_max(radii[1:-1], deriv_growth_psfcor, 21, 28, check_plot=True)\n", "\n", "max_dpsf_4 = local_max(radii[1:-1], deriv_growth_psf, 28, 35, check_plot=True)\n", "max_dpsfcor_4 = local_max(radii[1:-1], deriv_growth_psfcor, 28, 35, check_plot=True)\n", "\n", "max_dpsf_5 = local_max(radii[1:-1], deriv_growth_psf, 35, 45, check_plot=True)\n", "max_dpsfcor_5 = local_max(radii[1:-1], deriv_growth_psfcor, 35, 45, check_plot=True)\n", "\n", "max_dpsf_6 = local_max(radii[1:-1], deriv_growth_psf, 40, 50, check_plot=True)\n", "max_dpsfcor_6 = local_max(radii[1:-1], deriv_growth_psfcor, 40, 50, check_plot=True)\n", "\n", "plt.xlabel('Radius [arcsec]')\n", "\n", "# Lets pack all of them, adding the r=0 point. \n", "max_dpsf = np.array([0, max_dpsf_1, max_dpsf_2, max_dpsf_3, max_dpsf_4, max_dpsf_5, max_dpsf_6])\n", "max_dpsfcor = np.array([0, max_dpsfcor_1, max_dpsfcor_2, max_dpsfcor_3, max_dpsfcor_4, \n", " max_dpsfcor_5, max_dpsfcor_6])\n", "\n", "print(max_dpsf,max_dpsfcor)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the plot, we can deduce that our homothetical assumption is not perfect: the spacing increases for the first three (don't forget the point at 0, 0, not shown), is very small for the 4th and 6th, and gets narrower for the 5th and 7th...\n", "Let's plot the situation" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "plt.plot(max_dpsf, max_dpsfcor, 'o-')\n", "p = np.polyfit(max_dpsf[0:3], max_dpsfcor[0:3], 1)\n", "plt.plot(max_dpsf, p[0]*max_dpsf+p[1])\n", "plt.xlabel('extremum position of theoretical psf [arcsec]')\n", "plt.ylabel('extremum position of observed blurred psf [arcsec]')\n", "\n", "\n", "print(p)\n", "print((max_dpsfcor[1]-max_dpsfcor[0])/(max_dpsf[1]-max_dpsf[0]))\n", "print((max_dpsfcor[2]-max_dpsfcor[0])/(max_dpsf[2]-max_dpsf[0]))\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Lets use the data before 20\", corresponding to the central core\n", "beta = (max_dpsfcor[2]-max_dpsfcor[0])/(max_dpsf[2]-max_dpsf[0])\n", "\n", "# lets interpolate at the scaled radius\n", "tckpsfcor = interpolate.splrep(radii, growth_psfcor, s=0)\n", "interp_growth_psfcor = interpolate.splev(radii*beta, tckpsfcor, der=0)\n", "\n", "# check interpolation\n", "plt.plot(radii*beta, growth_psf)\n", "plt.plot(radii, growth_psfcor)\n", "plt.plot(radii*beta, interp_growth_psfcor)\n", "plt.xlim([0,60])\n", "plt.xlabel('radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us check the ratio, using the psf with a corrected radius" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "plt.plot(radii[1:]*beta, interp_growth_psfcor[1:]/growth_psf[1:])\n", "plt.xlabel('radius [arcsec]')\n", "plt.ylabel('Ratio of encircled flux')\n", "plt.xlim([0,60])\n", "idx, = np.where(((radii*p[0]) > 0) & ((radii*p[0]) < 60))\n", "scale_factor = np.median(interp_growth_psfcor[idx]/growth_psf[idx])\n", "print(\"alpha = {:.3f}\".format(scale_factor))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now have a much better looking ratio [compared with the cell where we computed the direct ratio](#the_ratio), and we have a decent determination of the psf scaling. The normalized PSF to use for our observations is then:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "psf_obs_norm = psfcor / scale_factor" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "print('\\int \\int psf_obs_norm dx dy = {}'.format(np.sum(psf_obs_norm)*resol**2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Indeed, let's look at the encircled energy in the core of our psf:\n", "In this example, we have used the derivative of the scale factor" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "idj, idi = np.where(r" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "stackhd_im = fits.open('../dmu18_HELP-PACS-maps/data/AKARI-NEP_PACS100_v0.9.fits')\n", "im=stackhd_im[1].data\n", "stackhd = fits.open('./data/output_data/100um/Akari-NEP-100um-psffromstack.fits')\n", "psf = stackhd[0].data\n", "hd = stackhd[0].header\n", "plt.imshow(psf)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Convert units MJy/sr to Jy/pixel: http://coolwiki.ipac.caltech.edu/index.php/Units\n", "#psf=psf*2.35045e-5*(np.abs(stackhd[0].header['CDELT1'])*3600)**2\n", "#print(psf)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(psf.flatten(),bins=np.arange(1.7,2.8,0.005));\n", "plt.yscale('log')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the resolution of the psf. Because the map is in units of Jy/pixel, this turns out to be:\n", "* =1 if psf at same resolution of map\n", "* otherwise, should be in factor of map pixel size" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "resol= np.abs(stackhd[0].header['CDELT1'])/np.abs(stackhd_im[1].header['CDELT1'])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "resol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's build the growthcurve for our PSF." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# find the brightest pixel, it will be our center.\n", "jmax, imax = np.unravel_index(np.argmax(psf), psf.shape)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# build the array of coordinates\n", "x = np.arange(hd['NAXIS1'])\n", "y = np.arange(hd['NAXIS2'])\n", "xv, yv = np.meshgrid(x, y, sparse=False, indexing='xy')\n", "xp = (xv-imax)*np.abs(hd['CDELT1'])*3600.\n", "yp = (yv-jmax)*np.abs(hd['CDELT2'])*3600.\n", "r = np.sqrt(xp**2 + yp**2)\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# build the growth curve\n", "radii = np.unique(r)\n", "encircled_flux = np.zeros(radii.shape)\n", "nbpix = np.zeros(radii.shape)\n", "for i, radius in enumerate(radii):\n", " idj, idi = np.where(r <= radius)\n", " nbpix[i] =len(idi)\n", " encircled_flux[i] = np.sum(psf[idj, idi])*resol**2\n", " #multiply by ((np.abs(hd['CDELT1'])*3600.)**2)/4.25E10 as map is in units of MJy/sr\n", " #encircled_flux[i] = np.sum(psf[idj, idi])*((np.abs(hd['CDELT1'])*3600.)**2)/4.25E10" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-2.0000000484" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hd['CDELT1']*3600." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Encircled flux')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(radii, encircled_flux)\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking at the shape of the encircled flux, it looks like the background level of our PSF is not zero. Let's check" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.9361737966537476\n", "[[1.9305377 1.93868864 1.9468919 ... 1.95337749 1.9471693 1.93131387]\n", " [1.95117688 1.95364046 1.92854702 ... 1.91732001 1.89895165 1.87875772]\n", " [1.95450771 1.97374225 1.92847896 ... 1.93714428 1.91314435 1.91018295]\n", " ...\n", " [1.95620978 1.94912803 1.94491935 ... 1.95953107 1.96866763 1.93832409]\n", " [1.92571747 1.9311707 1.95144665 ... 1.9406116 1.90265071 1.95088291]\n", " [1.94206953 1.92712057 1.94454086 ... 1.96135902 1.93458414 1.92816424]]\n" ] } ], "source": [ "# This is clearly. \n", "print(np.median(psf[0:5,:]))\n", "\n", "print(psf)\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Encircled flux')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(nbpix, encircled_flux)\n", "plt.xlabel('Number of pixels')\n", "plt.ylabel('Encircled flux')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# Lets do a linear fit to the outer part of the curve to determine the backgound\n", "p = np.polyfit(nbpix[50:], encircled_flux[50:], 1)\n", "bkg = p[0]/resol**2\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "141\n" ] }, { "data": { "text/plain": [ "373.0" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(len(nbpix))\n", "nbpix[50]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.9380112968822254\n" ] } ], "source": [ "print(bkg)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Lets correct the psf and encircled flux\n", "psf = psf - bkg\n", "encircled_flux = encircled_flux - bkg * nbpix*resol**2" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Encircled flux')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(radii, encircled_flux)\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our PSF does now behaves correctly.\n", "\n", "Now let us compare our growth curve with the encircled energy curve provided by the instrument team. We use the standard growth curve for 100 Āµm PACS, taken with 20\"/s scan speed. " ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "f = open('./data/EEF_grn_20.txt', 'r')\n", "lines = f.readlines()\n", "f.close()\n", "radiuseff = np.zeros(len(lines)-3)\n", "valeff = np.zeros(len(lines)-3)\n", "i = 0\n", "for line in lines:\n", " if line[0] != '#':\n", " bits = line.split()\n", " radiuseff[i] = float(bits[0])\n", " valeff[i] = float(bits[1])\n", " i = i+1" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(radiuseff, valeff, label='Calibration')\n", "plt.plot(radii, encircled_flux/np.max(encircled_flux), label='Our PSF')\n", "plt.xlim([0, 100])\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will work below 10\" where our PSF is well behaved" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(radiuseff, valeff, label='Calibration')\n", "plt.plot(radii, encircled_flux/np.max(encircled_flux), label='Our PSF')\n", "plt.xlim([0, 50])\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that while the calibration curve still rises beyond 30\", our PSF has reached a plateau. Let's note the calibration $C(r)$. Our PSF encirled energy is of the form:\n", "\n", "$E(r) = \\alpha C(r \\times \\beta)$\n", "\n", "Where $\\beta$ is the fattening of the PSF.\n", "\n", "We could take the derivative, but this too noisy. Instead we do a brute force approach" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(radiuseff, valeff, label='Calibration')\n", "plt.plot(radii, encircled_flux/np.max(encircled_flux), label='Our PSF')\n", "plt.xlim([0, 50])\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "rfactor = np.arange(1.,2., 1e-3)\n", "ffactor = np.arange(1.,2., 1e-3)\n", "# work with the data points between 2 and 10\"\n", "idx, = np.where((radii > 2 ) & (radii < 5))\n", "xv = radii[idx]\n", "yv = encircled_flux[idx]/np.max(encircled_flux)\n", "resid = np.zeros((len(rfactor), len(ffactor)))\n", "for i, rf in enumerate(rfactor):\n", " #print(i, rf)\n", " tck = interpolate.splrep(radiuseff*rf, valeff, s=0)\n", " yfit = interpolate.splev(xv, tck, der=0)\n", " for j, ff in enumerate(ffactor):\n", " resid[i, j] = np.sum((yv-yfit*ff)**2)\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.imshow(np.log(resid))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This shows a minimum, with some degeneracy. " ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rf = 1.000, ff = 1.185, residual = 0.007\n" ] } ], "source": [ "imin = np.argmin(resid)\n", "rmin, fmin = np.unravel_index(imin, resid.shape)\n", "print(\"rf = {:.3f}, ff = {:.3f}, residual = {:.3f}\".format(rfactor[rmin], ffactor[fmin], resid[rmin, fmin]))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(radiuseff*rfactor[rmin], valeff, label='Calibration')\n", "plt.plot(radii, encircled_flux/np.max(encircled_flux)/ffactor[fmin], label='Our PSF')\n", "plt.xlim([0, 200])\n", "plt.xlabel('Radius [arcsec]')\n", "plt.ylabel('Encircled flux')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.8275544433239503" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The two curve overlap\n", "psfok = psf/np.max(encircled_flux)/ffactor[fmin]\n", "np.sum(psfok)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "psfok is the PSF that a source of flux 1 Jy has in our data, and is to be used for source extraction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Validation\n", "To check PSF is reasonable, lets look at a 100 micron source, e.g. `-------`. We can see from `AKARI-NEP_PACS100_v0.9.fits` that it has a flux of -- mJy. Maximum value in our normalised PSF gives a peak ---.\n" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from astropy.table import Table" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "ename": "FileNotFoundError", "evalue": "[Errno 2] No such file or directory: './data/AKARI-NEP_PACSxID24_v1.fits'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mPACScat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mTable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./data/AKARI-NEP_PACSxID24_v1.fits'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/astropy/table/table.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 2532\u001b[0m \u001b[0mpassed\u001b[0m \u001b[0mthrough\u001b[0m \u001b[0mto\u001b[0m \u001b[0mthe\u001b[0m \u001b[0munderlying\u001b[0m \u001b[0mdata\u001b[0m \u001b[0mreader\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m~\u001b[0m\u001b[0mastropy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mascii\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2533\u001b[0m \"\"\"\n\u001b[0;32m-> 2534\u001b[0;31m \u001b[0mout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio_registry\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2535\u001b[0m \u001b[0;31m# For some readers (e.g., ascii.ecsv), the returned `out` class is not\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2536\u001b[0m \u001b[0;31m# guaranteed to be the same as the desired output `cls`. If so,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/astropy/io/registry.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(cls, format, *args, **kwargs)\u001b[0m\n\u001b[1;32m 500\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 501\u001b[0m \u001b[0mctx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_readable_fileobj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'binary'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 502\u001b[0;31m \u001b[0mfileobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mctx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 503\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;32mraise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/contextlib.py\u001b[0m in \u001b[0;36m__enter__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__enter__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 81\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 82\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mStopIteration\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"generator didn't yield\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/astropy/utils/data.py\u001b[0m in \u001b[0;36mget_readable_fileobj\u001b[0;34m(name_or_obj, encoding, cache, show_progress, remote_timeout)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0mname_or_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshow_progress\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshow_progress\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m timeout=remote_timeout)\n\u001b[0;32m--> 193\u001b[0;31m \u001b[0mfileobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFileIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname_or_obj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 194\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mis_url\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 195\u001b[0m \u001b[0mdelete_fds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfileobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: './data/AKARI-NEP_PACSxID24_v1.fits'" ] } ], "source": [ "PACScat=Table.read('./data/AKARI-NEP_PACSxID24_v1.fits')" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'PACScat' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mPACScat\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'HELP_ID'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'PACScat' is not defined" ] } ], "source": [ "PACScat['HELP_ID']" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'PACScat' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mPACScat\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mPACScat\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'HELP_ID'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0;34m'AKARI-NEP-PACSxID24-1-11009'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'PACScat' is not defined" ] } ], "source": [ "PACScat[PACScat['HELP_ID']=='AKARI-NEP-PACSxID24-1-11009']" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Max PSF = 0.0002 Jy/pix, off pixel Max PSF = 0.0001 Jy/pix\n" ] } ], "source": [ "cpix=np.int((hd['NAXIS1']+1)/2.0)\n", "\n", "print(\"Max PSF = {:.4f} Jy/pix, off pixel Max PSF = {:.4f} Jy/pix\".format(psfok[cpix-1,cpix-1]*0.008,psfok[cpix-2,cpix-2]*0.008))" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/mc741/anaconda3/lib/python3.6/site-packages/mpl_toolkits/axes_grid/__init__.py:12: MatplotlibDeprecationWarning: \n", "The mpl_toolkits.axes_grid module was deprecated in Matplotlib 2.1 and will be removed two minor releases later. Use mpl_toolkits.axes_grid1 and mpl_toolkits.axisartist provies the same functionality instead.\n", " obj_type='module')\n", "WARNING: hdu=0 does not contain any data, using hdu=1 instead [aplpy.core]\n", "WARNING: Cannot determine equinox. Assuming J2000. [aplpy.wcs_util]\n", "WARNING: Cannot determine equinox. Assuming J2000. [aplpy.wcs_util]\n" ] }, { "data": { "image/png": "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97//vdq1a6etW7fKGKMHH3xQt912mz9qAwAACHi1hjFJatOmjUJDQ3XLLbfo1KlTOn78uJo0aVLftQEAAAS8Wq8ZW7p0qcaNG6dp06ZJkpxOp8aMGVPvhQEAAASDWsPY4sWLtWTJEveRsNatW+vw4cP1XhgAAEAwqDWMhYWFKSwszP26rKysXgsCAAAIJrVeM/bb3/5WL730kk6fPq0tW7bo73//u+Li4vxRGwAAQMCr9cjY5MmT1aJFC1177bV666231LNnT02YMMEftQEAAAS8Wo+MhYSEqE+fPurTp49atGjhj5oAAACChs8wZozR3Llz9cYbb7hfh4SEaOjQoRo7dqzfCgQAAAhkPk9TLlq0SDt27FBmZqa2bdum7du3a9myZdq5c6cWLlzoxxIBAAACl88wlpWVpeeee04xMTHutpiYGP3nf/6nsrKy/FIcAABAoPMZxsrKyrxeI9aiRQtubwEAAHCR+AxjDRs29NmppmkAAACoO58X8H/22We64YYbPNqNMXK5XPVaFAAAQLDwGcb27t3rzzoAAACCUq03fQUAAED9IYwBAABYRBgDAACwqNbHIf0clZaWasiQIXK5XCovL1dCQoLGjRsnY4xeeOEFrV69WiEhIbrnnnt077332i4XAAAEsYAMY2FhYVq0aJEaN26sM2fOaPDgwerRo4e+/PJLHTx4UO+9955CQkL0ww8/2C4VAAAEuYA8TelwONS4cWNJZ29eW1ZWJofDoSVLlmjMmDEKCTm72S1btrRZJgAAQGCGMUkqLy9XUlKSbrnlFt1yyy267rrrVFhYqHfffVepqakaOXKkCgoKbJcJAACCXMCGsQYNGmjlypXauHGj8vPz9cUXX8jlcqlRo0Zavny57rrrLj3++OO2ywQAAEEuYMNYpfDwcMXGxmrTpk2KiopS3759JUnx8fH6/PPPLVcHAACCXUCGscOHD6u4uFiSdPr0aX344Ye6+uqr1adPH+Xl5UmStm/frtatW1usEgAAIEB/TXno0CFNnTpV5eXlMsbo9ttvV69evXTjjTdq8uTJWrRoka644grNmDFDkrR79269+eab7tcAAAD+EpBhrH379srKyvJoDw8P14IFCzzau3Tpoi5duvijNAAAgCoC8jQlAADAzwVhDAAAwCLCGAAAgEWEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFhHGAAAALCKMAQAAWEQYAwAAsIgwBgAAYBFhDAAAwCLCGAAAgEWEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFhHGAAAALCKMAQAAWEQYAwAAsIgwBgAAYBFhDAAAwCLCGAAAgEWEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFhHGAAAALCKMAQAAWEQYAwAAsIgwBgAAYBFhDAAAwCLCGAAAgEWEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWhdouoL6Ul5frzjvvVFRUlF5++WVNmjRJe/bsUcOGDdWlSxdNnz5dDRs2tF0mAAAIcgF7ZOy1115TmzZt3K/vuOMOrV69Wu+8845KS0u1bNkyjz5Hjx71Z4kAAACBGcaKior0wQcfaNCgQe62nj17yuFwyOFw6De/+Y2cTqdHv82bN/uzTAAAgMAMYzNnztSUKVMUEuK5eWfOnNHKlSt12223eUzzFtAAAADqU8CFsQ0bNqhFixbq3Lmz1+lPP/20brrpJt10000e04wx9V0eAABAFQF3Af+OHTuUk5Oj3NxclZaW6vjx45o8ebIyMjI0d+5cHT58WHPnzvXaNzo62s/VAgCAYBdwR8YmTZqk3Nxc5eTk6Pnnn1e3bt2UkZGhZcuWafPmzXr++ee9nr6UpFtvvdXP1QIAgGAXcGHMlyeffFLff/+97r77biUlJbmPju3evVt//OMfJUnNmjWzWSIAAAhCAXea8nyxsbGKjY2VJH366ade5+nSpYu6dOniz7IAAADcgubIGAAAwKWIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFhHGAAAALCKMAQAAWEQYAwAAsIgwBgAAYBFhDAAAwCLCGAAAgEWEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFhHGAAAALCKMAQAAWEQYAwAAsIgwBgAAYBFhDAAAwCLCGAAAgEURAjK1AAAO/klEQVSEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFhHGAAAALCKMAQAAWEQYAwAAsIgwBgAAYBFhDAAAwCLCGAAAgEWEMQAAAIsIYwAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAsIowBAABYRBgDAACwiDAGAABgEWEMAADAIsIYAACARYQxAAAAiwhjAAAAFgV0GCsvL1dycrL+8Ic/SJK2bt2qlJQUJSUl6Z577tHXX39tuUIAABDsAjqMvfbaa2rTpo379VNPPaWMjAytXLlSAwcO1Pz58y1WBwAAEMBhrKioSB988IEGDRpUpf348ePufyMjI22UBgAA4BZqu4D6MnPmTE2ZMkUnTpxwt82YMUOjRo1So0aN1KRJEy1dutRihQAAAAEaxjZs2KAWLVqoc+fO2rZtm7t94cKFWrBgga677jr97W9/06xZszRjxowqfb8/dFRjR/xJzZo1kyR98803atq0qcLDwy+oho8//vinb0gQa9CggcrLy22XEfQYB/sYg0sD4/DT3XjjjT95GaWlpRehkktPQIaxHTt2KCcnR7m5uSotLdXx48c1atQo/fOf/9R1110nSerfv79Gjhzp0feyyy7T3Xff7b7of8SIERo7dqyuv/56v25DsEtNTdXy5cttlxH0GAf7GINLA+NwaUhNTbVdQr0IyGvGJk2apNzcXOXk5Oj5559Xt27dNG/ePJWUlOirr76SJG3ZsqXKxf2VmjZtquzsbLlcLhUWFqqgoEC/+c1v/L0JAAAgSATkkTFvQkND9cwzz2jcuHFyOByKiIjQzJkzJUnr16/Xnj17NH78eDVq1Ejx8fHq37+/GjRooGnTpqlBgwaWqwcAAIHKYYwxtou4lLz11lu6++67bZcR9BiHSwPjYB9jcGlgHC4NgToOhDEAAACLAvKaMQAAgJ8LwhgCUvVHYRljNGfOHCUkJKhfv3567bXXvPZbsWKF+vbtq759+2rFihXu9j179igxMVHx8fF65plnxAFlO6qP69SpUxUXF6ekpCQlJSVp7969Xvt16NDBPc/o0aPd7YWFhUpLS1Pfvn01YcIEuVwuv2zHz93Bgwc1bNgw9evXTwMGDNCiRYskScOGDdPu3bs95t+yZYtSU1OVmJio1NRUbd261T1t1apVSkxMVGJiokaMGKHDhw9fcD3V9wup7vsGn3lcEgwQgF555RUzceJEM2rUKGOMMZmZmWbKlCmmvLzcGGPM999/79HnyJEjJi4uzhw5csQcPXrUxMXFmaNHjxpjjLnzzjvNjh07TEVFhRkxYoT54IMP/LcxcKs+ro8++qh57733au3XtWtXr+3jxo0zq1atMsYY88QTT5jFixdfvGIDmNPpNHv27DHGGFNSUmL69u1r9u3bZ4YOHWry8/M95v/kk09MUVGRMcaYzz//3Nx6663GGGPOnDljunXrZn744QdjjDHPPvus+a//+q8Lrqf6fmFM3fYNPvO4VHBkDAHH26OwlixZojFjxigk5Owu37JlS49+mzdvVvfu3dWsWTNFRESoe/fu2rRpkw4dOqTjx4/r+uuvl8PhUHJystavXy/p7PNP+/fvr8TERD388MP+2cAg5esRZz+WMUZ5eXlKSEiQJKWkpLjH9b333tPAgQN1xx13aMiQIRdlfYEkMjJSnTp1kiQ1adJEV199tZxOpyRp9erVGjRokBISEvS///u/kqSOHTsqKipKktS2bVu5XC65XC4ZY2SM0alTp2SMqfKYumHDhmnmzJkaMmSI+vXrp/z8fI0dO1Z9+/bVnDlz3LX8lP2CzzwuFUFzawsED2+PwiosLNS7776rdevWqUWLFkpPT1fr1q2r9HM6nYqOjna/joqKktPp9GiPjo52f/EsWLBAOTk5CgsLU3Fxcf1uWJDzNq6SNGfOHP31r3/VzTffrMmTJyssLMyjb2lpqVJTUxUaGqpRo0apT58+OnLkiMLDwxUaevbP4PnjOm/ePP3P//yPoqKiGNdaHDhwQHv37nXfULu8vFyZmZnauHGj5s6dq4ULF1aZf82aNerQoYN7nJ566iklJibqiiuu0FVXXaUnn3zSPW/Dhg21ePFiLVq0SA8++KCWL1+uZs2aqU+fPho+fLiaN2/uc7+Qat83+MzjUsGRMQSU8x+FdT6Xy6VGjRpp+fLluuuuu/T444979DVerglxOBw+2yWpXbt2mjx5slauXMn96OqRr3GdOHGiVq9erX/84x86duyYFixY4LP/8uXL9dxzz2nmzJnav3+/1/kqx/X666/X1KlTtXTpUh6BU4MTJ05o3Lhxevzxx9WkSRNJUnx8vCSpU6dO+uabb6rMv2/fPmVkZGj69OmSpDNnzmjJkiXKysrSpk2b1K5dO7388svu+ePi4iRJ1157rdq2bavIyEiFhYUpJiZGRUVFPvcLqW77Bp95XCoIYwgolY/CiouL08SJE5WXl6fJkycrKipKffv2lXT2y+Lzzz/36BsdHa2ioiL3a6fTqcjISI/2oqIi96mUBQsWaPDgwfrkk0+UmpqqsrKyet7C4ORrXCMjI+VwOBQWFqbU1FSvF49Lcp8ii4mJ0f/7f/9Pn376qZo3b67i4mL3mJ0/rtOnT9eECRN08OBBJScn68iRI/7Z0J+RM2fOaNy4cUpMTHR/tiS5jz6FhIRUCbJFRUUaO3asnn32WV155ZWS5L6o/sorr5TD4VC/fv20c+dOr8s6/6hWSEiIysrKfO4Xkuq0b/CZx6WCMIaA4u1RWBkZGerTp4/y8vIkSdu3b/c4RSlJt956qzZv3qxjx47p2LFj2rx5s2699VZFRkaqcePG2rVrl4wxysrKUu/evVVRUaGDBw+qW7dumjJlikpKSnTy5Ek/b3Fw8DWuhw4dknT2CMf777+vtm3bevQ9duyY+1eShw8f1o4dO3TNNdfI4XAoNjZWa9askXT2V3WVR2L279+v6667TuPHj1fz5s2rfDHj7Pv9xz/+UVdffbX+4z/+o9b5i4uLNWrUKE2cOLHKw6KjoqL05Zdfun9B6esxdb742i8k1Wnf4DOPSwXXjCEojBo1SpMnT9aiRYt0xRVXaMaMGZKk3bt3680339SMGTPUrFkzPfjgg+4LgceMGaNmzZpJOntdy2OPPabTp0+rR48e6tGjh8rKyjRlyhQdP35cxhgNHz5c4eHh1rYxGE2ePFlHjhyRMUbt27fX008/LanquH755Zd68skn3aeffv/73+uaa66RJE2ZMkUPP/ywXnjhBXXo0EFpaWmSpNmzZ+vrr7+WMUbdunVT+/btrW3jpejjjz/WypUrde211yopKUnS2dOCvrzxxhvav3+/5s2bp3nz5kmSXnnlFUVFRWnMmDEaMmSIQkND9ctf/lKzZs26KDXWZd/gM49LBXfgBwAAsIjTlAAAABYRxgAAACwijAEAAFhEGAMAALCIMAYAAGARYQyAFR06dFBSUpIGDhyo0aNHezxaZuHCherSpYtKSkp8LuPQoUP6wx/+IEnatm2b+7/ffvttJSYmKjExUb/73e/02Wefufvk5uYqISFB8fHxVe7KXlhYqLS0NPXt21cTJkxw35vM5XJpwoQJio+PV1pamg4cOCBJ+vzzzzV16tSL82YACGqEMQBWXHbZZVq5cqVWrVqliIgILV68uMr0VatWqUuXLlq3bp3PZbz66qvue4Od71e/+pXeeOMNvfPOO3rggQf0xBNPSDr73MTp06frb3/7m7Kzs7Vq1Sr93//9nyQpIyNDw4cP19q1axUeHq7MzExJ0rJlyxQeHq5169Zp+PDh7puKtmvXTkVFRfr2228vyvsBIHgRxgBY17VrV/eDmKWzd8A/efKkJkyYoOzsbJ/91q5dqx49eni033DDDYqIiHAvu/IO+vn5+brqqqsUExOjsLAwDRgwQOvXr5cxRnl5eUpISJAkpaSkaP369ZKknJwcpaSkSJISEhK0detW97MLe/XqVWN9AFAXhDEAVpWXl2vr1q3uRxFJZ4+KDRgwQDfddJO++uor/fDDDx79CgsLFRERUeWZhd5kZma6A5vT6VR0dLR7WlRUlJxOp44cOaLw8HCFhp59KEl0dLQ7HDqdTrVq1UqSFBoaqqZNm7qfVdm5c2d9/PHHP2HrAYAwBsCS06dPKykpSbGxsTp27Ji6d+/unvbuu+9qwIABCgkJUXx8vFavXu3R/7vvvlPz5s1rXEdeXp4yMzPdD4/29sARh8PhtW9le019WrZs6X4GIgD8WIQxAFZUXjO2YcMGnTlzxn3N2GeffaaCggLdf//9iouLc1/b5a1/5UX23nz22WdKT0/XvHnz3KEtOjq6ykO/nU6nIiMj1bx5cxUXF6usrEySVFRUpMjISHefgwcPSpLKyspUUlLifn5haWmpGjVqdBHeDQDBjDAGwKqmTZsqPT1dr7zyis6cOaPs7Gw99NBDysnJUU5OjjZv3iyn06lvvvmmSr/WrVt7tFX69ttv9dBDD2n27Nn69a9/7W7v0qWLCgoKVFhYKJfLpezsbMXFxcnhcCg2NlZr1qyRJK1YscJ92jQuLk4rVqyQJK1Zs0bdunVzHxkrKChQ27ZtL/p7AiC4EMYAWNexY0e1b99e2dnZys7OVp8+fapMj4+P97hQ/oorrlBMTIy+/vprSWevPau8fuyvf/2rjh49qqefflpJSUlKTU2VdPaar2nTpmnkyJHq37+/+vXr5w5TU6ZM0auvvqr4+HgdPXrU/SvNQYMG6ejRo4qPj9err77qPuUpnb2dxr//+7/Xy3sCIHg4jLcLIgDgZ2DdunXas2ePHn74YS1atEhOp1OPPPKIX9btcrk0dOhQ/f3vf3df+A8APwZhDMDP2rJly7Rz507t27dPL7zwgn75y1/6Zb0FBQVyOp2KjY31y/oABC7CGAAAgEVcMwYAAGARYQwAAMAiwhgAAIBFhDEAAACLCGMAAAAWEcYAAAAs+v+rVpr1uJkbJwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import aplpy\n", "import seaborn as sns\n", "sns.set_style(\"white\")\n", "cmap=sns.cubehelix_palette(8, start=.5, rot=-.75,as_cmap=True)\n", "fig=aplpy.FITSFigure('./data/input_data/AKARI-NEP_PACS100_v0.9.fits')\n", "fig.recenter(PACScat[PACScat['HELP_ID']=='AKARI-NEP-PACSxID24-1-69605']['RA'],PACScat[PACScat['HELP_ID']=='AKARI-NEP-PACSxID24-1-69605']['Dec'], radius=0.004)\n", "fig.show_colorscale(vmin=0.0,vmax=1,cmap=cmap)\n", "fig.add_colorbar()\n", "fig.colorbar.set_location('top')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In summary, the PSF is within 10% of this source, and given noise and shape of source will add additional uncertianty, as well as non-zero background, this seems reasonable.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create PSF fits fileĀ¶\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "stackhd[0].data=psfok\n", "stackhd.writeto('dmu18_PACS_100_PSF_AKARI-NEP_20190125.fits',output_verify='fix+warn', overwrite=True)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.03680963796133707" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.max(psfok)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.hist(psfok.flatten(),bins=np.arange(-0.01,0.05,0.0005));\n", "plt.yscale('log')" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1024" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(psfok.flatten())" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python (herschelhelp_internal)", "language": "python", "name": "helpint" }, "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.6" } }, "nbformat": 4, "nbformat_minor": 2 }