{
"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/GAMA-12_PACS100_v0.9.fits')\n",
"stackhd = fits.open('./data/output_data/GAMA12-100um-psffromstack_20171002.fits')\n",
"psf = stackhd[0].data\n",
"hd = stackhd[0].header\n",
"plt.imshow(psf)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SIMPLE = T / conforms to FITS standard \n",
"BITPIX = -64 / array data type \n",
"NAXIS = 2 / number of array dimensions \n",
"NAXIS1 = 22 \n",
"NAXIS2 = 22 \n",
"CTYPE1 = 'RA---TAN' \n",
"CTYPE2 = 'DEC--TAN' \n",
"CDELT1 = -0.0008333333535 \n",
"CDELT2 = 0.0008333333535 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hd"
]
},
{
"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": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"resol= np.abs(stackhd[0].header['CDELT1'])/np.abs(stackhd_im[1].header['CDELT1'])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 5,
"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": 6,
"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": 7,
"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": 8,
"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": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-3.0000000726000002"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hd['CDELT1']*3600."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Encircled flux')"
]
},
"execution_count": 10,
"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": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0018390489858575165\n"
]
}
],
"source": [
"# This is clearly. \n",
"print(np.median(psf[0:5,:]))\n"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Encircled flux')"
]
},
"execution_count": 12,
"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": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"75\n"
]
}
],
"source": [
"print(len(nbpix))"
]
},
{
"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[30:], encircled_flux[30:], 1)\n",
"bkg = p[0]/resol**2\n"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"193.0"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nbpix[30]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3.893235602113789e-13\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": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xl8VNX9+P/XO/tOCAmIBEiIAdk0QBAUBQQXXOpel6ofrW2ttdZWa7+fVlu3fupPa6vVVttq61q17oqKtRZQ0YIQFGTfZEnYEhKSELLO5P37497sk4XAZDKZ9/PxmMfMvffMnXcuzH3POefec0RVMcYYY1oLC3QAxhhjeidLEMYYY3yyBGGMMcYnSxDGGGN8sgRhjDHGJ0sQxhhjfLIEYYwxxidLEMYYY3yyBGGMMcaniEAHcKhSU1M1IyMj0GEYY0xQWb58+T5VTTuU9wRdgsjIyCAvLy/QYRhjTFARke2H+h5rYjLGGOOTJQhjjDE+WYIwxhjjkyUIY4wxPlmCMMYY45PfEoSIPCUihSKyup3tIiKPishmEflKRCb6KxZjjDGHzp81iGeAOR1sPwvIdh/XA3/2YyzGGGMOkd/ug1DVT0Qko4Mi5wPPqTPn6RIRSRaRwaq6218xGRNSaipg7VtQcwAGZMPg4yHhkO6T6r7aSijLh4RBENMPRHrmc80RFcgb5YYA+c2WC9x1bRKEiFyPU8tg2LBhPRKcMb1C8RbY9imMOgsSBnbtPXvXQN5TsPJlqD3QclvaaMg8xdmX1wP1HkDhqPEw/OS2CcRTAx//Fir2wIhTYcRMqCmHog2wbyPs3wYVheCpdsrWVTnPpTugpszZR2Q8JA2GpKMhaQgkDoaxF8Lg4w7v2Bi/C2SC8PWTQn0VVNUngCcAcnNzfZYxps+oKITVb8CqV2Dncmfd/FTnxB6bAnEpznNs/6bX8QOc5/n3OMkhPNo5CedeBymZsG8TFCyFrZ/AF8+Dp8rZr4Q7z+p1ngeOhdHfgAO7oXCd86g9ANH94Mt/tI01tj8kHAWRsRARAzFJEBELR+fA8GlQuQ/Kd0P5Tmef2z51npc/DTd+DomD/H88TbcFMkEUAEObLacDuwIUizFdV1ni/EqP6QexyRCTDFHxEBbevf1Vl0PxJji4D1a8AGvfdtYPGg+n/xqOngCfPgx7VjmfXV0KWt/+/oZMgitfc5JHg4SBkDENTr4F6r3OIywCwsKcmsTuFbBtEaydCx/f75z4B46FnCtg5Byn5rDzC9j+mbPftGMhNdspd6iKNsBfToHHp8LUH0Dud5zj2N3jZ/xGnC4AP+3c6YN4V1XH+dh2DnATcDYwBXhUVU/obJ+5ublqYzGZgCnfBU/OhgM+fsuERTb9ko5LgbMfhMzp7e+rugw+egCWPwN1B1tuu+EzOKrN18ZRX+8kiar9zqOyxPmlXrUfqkoh+3QY2ulXyTdVpwkpOsm//QY7lztNVxv/1bROwiA8yn1EOs/xadB/OCQPh/4ZMGwqDBrXM30aqk4i7iOJS0SWq2ruIb3HXwlCRF4CZgKpwF7gLiASQFX/IiIC/AnnSqdK4Nuq2umZ3xKE6VGqUFbgNM/kL4MN7zkn5PP/5DTPVJc6J+W6KqfZpq7aed72qfO+2P7O9obWU9Wm1/UeZ/n4K2D0uU6HbtwAp40+MiZQf3HP2rMaNn8InlqorwNvLXjdZ08NHNgDpdudPg1PtfOexMEw4BhIHtb0iIx1OuNrKpzn2gMtlz3VbtKJdk74nhq338R91FW3XfbWOJ8nYc77IhqSV7Szr4jopn02f92wLSzSraWFO+vCIto+wn2sO+Y0p1nwCOtOgvDnVUxXdLJdgR/66/ON6baq/U5b/eb5sGUhlO1w1kfEwpCJcP5jHdcMwGkuev9/nZNDgtvO3vir130OC4djz3X2GaqOGtd+Tam5+nqn1rZ5vpN8S3c4/zYHduOz6zIiFqITITrBeY5wE4i31knMEdHOuogYJ4k3Lke7tUB3WcKcRNGQuDwNr90E5q1zt9c5V255S5u21Xvc5rw697Wn6cKAek9Tv09rl/3DLwmiO/zaxOQPVoMwh6yyBL7+yOn8rdjrdKT2z3ASQUURHCx0th0scp73b3WaFqISYcQMJxmkT3au9AmPDPRfY5rz1Dg1NU+1mxASnX+38CCYyaC+3kkS9R4nwTQklOhEv9Qge1UNwpheY/49Tjs/OM1CrX+5xfaH+IFOR+7g42HcxZA1C9JzLSH0dhHRMCAr0FF0T1gYEOb8H4uMDXQ0PlmCMH2bt87pEB1wDFz3bycZVJc6vzrjUyEu1WlbNsa0YQnC9F31Xljwf87loZc87dwrAM4VRs0vATXG+GQJwvQt1WVOR+bGD5yrYyqLIedKGHdRoCMzJuhYgjC9S309fHC7cxdxxikw5jzIPtO5GqVBbaXbsdysg7lir3N1y47FTmdfbH845nQYeSaMOT9wf48xQcwShOk9SnfAf+6B1a854/5s/8wZbC48Go6Z7QwlsekD52ojX9JGw0k/cu78HZIbHFeyGNOL2TfI9Kz6emdYierypmvBizbAqledX/8As34Fp/zUudR0xxJYNxfWveO8Z+SZMGhM01VH8WlNzxHRgf3bjOlj7D4I41+eWti90qkN7FjsPKrL2pZLHQXHfRPGXeL7JiFV5xFmkyAa0x12H4QJDFXnl37xpqaRO8t3OY+Sr5tGDh1wDIw+D4ad6PzqDwt3hiOIT4O0UR2PryNicwoY08MsQZjDt+TP8MEvmpbjBzpj//fPcEYBHTalKSkYY7rNW69U13mprvNSVeeluq6e6jovNZ6m143PzdbV1LUzrEcnLEGYw7NrBXx4J4w8C856wBlIzW48MyFGVanzKlW1zom7stbjnsC9VNZ6G9dX1brLdd5mZd0Tfq2Xyjov1bVeKus8LU74Ne4Jv87bs10CliBM99VVwWvXOU1EFzxuN5+ZXk1VqarzUlHjobLGy8FaDwfd55Ynbg9VtfXOSbrZ+saTfeuTu3ti99Yf2slbBOIiw4mNch+R4cRGRRAbGUZaQjQxkc666MhwYiLDiIkMJyai2evGZ/cR0Xy5qXx0ZBjREWGEPXDox8wShOm+3SuhZAtc/HdLDuaIUlVqPPUtTuaVtR4qarxU1ng4WOvlYI3HWd94snfWV9Y0nfgraxsSgofKOi+Hck1OVHhY44k7Lso58cZFhZMQHUFaQjSxUS3Xx0Y2vI4gNiqM2MiIxjKxkeFt9hUdEYb08n41SxCme1Rh/3bnddyAwMZieoWGk/qBag8VNR4qqj0cqKmjomG5xtNiW9NyXdMJvabpxN/VH+RhAvHREcRHRRAX7ZzA46LCOSophrjoCBKinZN2fFQ4cdERbllnXUK08564qHDiIiOIiQojLiqCmIgwIsLtijlLEKbrVJ1aw9q3YM2bzoT14dFOh7QJajUeL2VVdZRXeSivbnZSb3Zyb3mCr2u57Jb1dOGsHhkuJMZEkhAd0fhIS4xmeFRcq5N8BPHRDSfy8FbLThKIj44Iil/iwcoShOmYqjPY3Zo33aSw1Rkye8QM52a2Y8+15qVeoL5eKa+uY39lnXuir6O8uumE37BcVuVptq2O8mpnucbTwRzXrpjIMBKiI0mMaTqxD02JIzE6goSYCHd9pPO64eTvlm18T0wE0RF9YwrPUGAJwrSlCntXu0nhLaefQcKdiXNOvsVJCvHWrOQvqkpFjYf9B+soqaxl/8FaSg7Wsr+y1XOz7fsraztskokIE5JiI0mKiaBfbCRJsZEc3S+WpNgIkmIiG7clxToJoPkv/MQYp1km0ppcQo4lCNNSZQn881vOHc8S5iSFaTfDsd+wpHCYVJXyKg97yqvZW17tPJdVs/dANXvKatjrrt9fWdvu5YwRYUL/+ChS4qLoHx/JyEEJ9I+LIiU+iv7uun6xkc1O+pEkxUYQGxluzTDmkFmCME3Kd8HzF0LJVphzvzPsRUJaoKMKGgeq69hRUsmO4kp2lla5SaDpxL+3vJrqurZNOf3jIhmUFMOgpBhGD04kNSGalPgokuOiSImPbEoA8VEkRkfYid70GEsQxlGyFZ4735k/4arXnJqDaaG+XtlTXt2YBHaUOI/tJZXkl1RScrC2RfnoiDAGJcVwVFIMx6Unc1RSdGMiOKpfDIMSYxiY5FzvbkxvZAnCwN61Ts3BWwPXzIUhkwIdUUAVV9SwqbCCze5je/FBtpdUUlBSRa23qQYQHiYMSY5lWEocZ449iuED4hiW4jyGJMeSHBdpv/ZNULMEEep2fwXPfgMiYuDb78PA0YGOqEeoKnvLa9hUeIDNhRVOQthbweaiihY1gfiocDJS4zn2qEROHzOIYSlxDE+JZ1hKHIOTY6zj1vRpliBCWXUZvHI1RMXDte/5HmY7yNXXKztLq5oSwV4nGWwprOBAjaexXL9Yp8P3zLFHcczABLIHJpA9KIGjkmKsFmBCliWIUKUKc38EpflOzSHIk0N1nZftxZVsKXJO/luK3ERQVNGiYzg1IZrsgQlcOHEI2QMTyBqYQPbARFIToiwRGNOKJYhQtexvsPZtOO0eZzjuIKCqlBysZUvRwRaJYEvRQQr2V7a4D2BwvxiOGZjAlMzhZA9yagTHDEwgOc5GmjWmqyxBhKK6Kpj/a2fe55NuDnQ0bdR568kvqfSZCMqq6hrLRUeEkZkaz/j0flwwYQhZafFkpSUwIi2euCj7r23M4bJvUShaOxdqyuCUWwM6hWdlrYfNhRVs3FvRIhFsL65sMaZPWmI0WWnxnHvcYEakJTQmgiHJsYSFWbOQMf5iCSIUffm8M9vb8JN75OOq67xOn8DeCjbsPcCmvQfYuLeC/P2VjcMvR4YLwwfEc8xAp6O4oSYwIi2BfrGRPRKnMaYlSxChpuRr2LYIZv3SL7WHihoPa3aWsWpnGSsLylizs4xtxQcb+wciw4XM1HiOS+/HJZPSGTkogexBiQxPibPhlY3pZSxBhJov/+GMsZRz5RHZXXFFDUu3lvD51hKWfF3Mhr0HGmsFQ5JjGTckiXOPP5pRgxIZOSiBjNR4u3fAmCBhCSKUeD2w4kU45vRuz+HgrVe+3LGfBesLWbC+kPV7DgDOUNCThvfn5rHZ5AxNZtyQfqQlRh/J6I0xPcyvCUJE5gCPAOHA31T1/lbbhwHPAslumZ+r6jx/xhSydiyBTx+GA7vh7AcP6a0ebz2fbSlm7opdLFi/l/2VdYSHCbnD+/OzM0cxdUQK44ckExVhNQNj+hK/JQgRCQceA04HCoBlIjJXVdc2K/ZL4BVV/bOIjAHmARn+iink1Hthwzz47FEoWAqx/WHm7TDqnC69ffXOMl7Ny+e9VbvZV1FLYkwEp40exOzRAzklO806j43p4/xZgzgB2KyqXwOIyD+B84HmCUKBJPd1P2CXH+MJHXVVTlPS4secyX6Sh8NZD8KEK51hNTp6q7eef63ewzP/3cby7fuJjghj9uiBnHf8EGaOSrORR40JIf5MEEOA/GbLBUDrW3bvBv4tIj8C4oHTfO1IRK4HrgcYNmzYEQ+0z/DUwGePwOd/hcp9cPQEuORpGH0ehHf8T11V6+WFz7fzt0Vb2VNezfABcfzq3DFcMindagrGhCh/JghfdzC1nibrCuAZVf29iJwIPC8i41S1xawqqvoE8ARAbm5u57OihyKvB167Dta/C9lnOrPADZ8GnYwvVFnr4fnF23ly0dfsq6jlxBEDuO+iccwcOdBuQjMmxPkzQRQAQ5stp9O2Cek7wBwAVV0sIjFAKlDox7j6nvp6ePtGJznMeQCm3tCFtyhvfLmT+99fz76KGk7JTuXm2dlMzkjpgYCNMcHAnwliGZAtIpnATuBy4FutyuwAZgPPiMhoIAYo8mNMfY8qzPspfPUyzPpVl5LDqoIy7py7mi93lDJhWDJ/vXoik4ZbYjDGtOS3BKGqHhG5CfgA5xLWp1R1jYjcC+Sp6lzgp8CTInILTvPTtapqTUhdpQof/grynoKTb4Hpt3VY/GCNhwc/2MCzi7cxID6a333zeC6aMMSakowxPvn1Pgj3noZ5rdbd2ez1WmCaP2Po0z7+Lfz3j3DC9TD7ro6Lbizi9jdWsausimtOzODWM0aSFGOdz8aY9tmd1MHqv3+Cj+5zhsyY80C7ndFVtV7ufXcNLy3NJystntduONGak4wxXWIJIhjlPQ3/vgPGXADfeLTdQffW7ynnRy9+yeaiCm6YkcVPTsu2+xiMMV1mCSLYfPUKvHuLcynrRU+2e3/Dy8t2cOfba0iMieT566ZwcnZqDwdqjAl2liCCybp34M0bIONkuPRZiGg7fWadt55fv7uW5xZv55TsVB66NMcGzTPGdIsliGBRttO5Ee7oCXDFSxAZ26ZIycFabnxhOUu+LuH66SP43znHEm5XKBljuskSRLDYMh+8tXDeHyE6sc3m9XvK+e6zeRQeqOGhS4/noonpAQjSGNOXWIIIFl9/DPEDYeDoNpv+tXoPt76ygoToCF75/onkDE0OQIDGmL7GEkQwUIWtn0Dm9BaXs9bXK39csJmH/7OR44cm88TVkxiUFBPAQI0xfYkliGBQtB4OFsKIGY2rDtZ4uO3Vlby/eg8XTRzCfReOt0tYjTFHlCWIYLD1E+c5czoA+SWVfO+5PDbuPcAvzxnNd07ORDoZtdUYYw6VJYhg8PXHzqQ//TNY8nUxN77wBR5vPU9/+wRmjEwLdHTGmD7KJhHu7bwe2PYpZE7nH0u2c9XfPic5LpK3fjjNkoMxxq+sBtHb7VkJNWW8XDyCXy5ezamj0njkigk20J4xxu8sQfRyB9cvIB54cONR3DAji5+dOcpufjPG9AhLEL3Y2l3lVHz2Dsmazq8un8H5OUMCHZIxJoRYH0Qv9f6q3Vz+5485rn4dKeNOt+RgjOlxVoPoZVSVPy3YzO8/3MhVR+0kprSWmPGnBzosY0wIsgTRi1TXefn561/x1opdXDRhCPdEvQcVMc7orcYY08MsQfQS+ypquP65PL7YUcrPzhzFjRNjkEdegUnXQky/QIdnjAlBnfZBiMgYH+tm+iWaELV+Tznn/+kz1u4u5/ErJ/LDU49BFj8OWg8n/SjQ4RljQlRXOqlfEZH/FUesiPwR+P/8HVioWLB+Lxc//l/qvPW88v0TOXv8YKgsgeXPwPhLoP/wQIdojAlRXUkQU4ChwH+BZcAuYJo/gwoVz3y2le8+m0dGajxv3zSN49LdYbqXPgl1B2HaTwIboDEmpHWlD6IOqAJigRhgq6rW+zWqPk5V+cN/NvHI/E2cPmYQj1yeQ1yU+09RexA+/wuMPAsGtWndM8aYHtOVGsQynAQxGTgZuEJEXvNrVH2YqnLfvHU8Mn8T35yUzp+vnNiUHAC+eA6qSuDkWwIXpDHG0LUaxHdUNc99vQc4X0Su9mNMfdpDH27kyUVbufakDO48dwxhzYfN+OoVWPAbGD4Nhk0JXJDGGEPXEkShiAxrte5jfwTT1z3xyRb+uGAzl08eyl3fGNM0h0N1Gbz3U1j1KgydChf+NbCBGmMMXUsQ7wEKCE4fRCawARjrx7j6nJeW7uC+ees557jB/ObC8U3JYftieON6KN8Jp94BJ98K4XZ7ijEm8Do9E6nq+ObLIjIR+L7fIuqD3lm5i9vfXMXMUWk8fGmOMxqr1wMfPwCLfgfJw+C6D2Do5ECHaowxjQ75p6qqfiEidibrohX5pfz01ZVMHp7Cn6+cRFREGJR87dQaCpbB8d+Csx6AmKRAh2qMMS10miBE5NZmi2HARKDIbxH1IYUHqrnh+eUMTIzmL1dPIjYyDFa8BPNuAwmHS56CcRcHOkxjjPGpKzWIxGavPTh9Eq/7J5y+Q1W59eWVlFbV8sYPppESVgmv3QJr3nCuUrrwr5A8NNBhGmNMu7rSB3FPTwTS17y0NJ9PN+/j1xeMY0ztKvjL9+HAbpj1K+ceh7DwQIdojDEdajdBiMg7OFcv+aSq53W2cxGZAzwChAN/U9X7fZS5FLjb/ayVqvqtzsPu3XaVVnHfvHWcOGIAV8q/4ZmfQUomXPdvSJ8U6PCMMaZLOqpB/O5wdiwi4cBjwOlAAbBMROaq6tpmZbKBXwDTVHW/iAw8nM/sLe6euwZvvfLAxccR9tKPYMgk+J+3IToh0KEZY0yXdZQg7lTV2SLygKr+bzf2fQKwWVW/BhCRfwLnA2ublfke8Jiq7gdQ1cJufE6vMn/dXv69di//O+dYhvWLgOItTpOSJQdjTJDpKEEMFpEZwHnuyV2ab1TVLzrZ9xAgv9lyAc7IsM2NBBCRz3Caoe5W1X91JfDeqLrOy11z15A9MIHvnJwJJRtAvZB2bKBDM8aYQ9ZhDQL4OZAO/J6WCUKBWZ3sW3ysa92nEQFkAzPdz1kkIuNUtbTFjkSuB64HGDas9agfvcffP91Kwf4qXvzeFOd+h6L1zoa0kYENzBhjuqHdBKGqrwGvicivVPXX3dh3Ac48Eg3SceaSaF1miarWAVtFZANOwljWKpYngCcAcnNz2+04D6TCA9U8vnAzZ4wZxElZqc7Kog2AwIDsgMZmjDHd0elw391MDuCc5LNFJFNEooDLgbmtyrwFnAogIqk4TU5fd/PzAurhDzdR46nnF2ePblpZtMGZES4qLnCBGWNMN3VlPohuUVUPcBPwAbAOeEVV14jIvSLScInsB0CxiKwFFgI/U9Vif8XkLzuKK3k1L58rpwwjMzW+aUPRBut/MMYELb8OG6qq84B5rdbd2ey1Are6j6D12MLNhIUJN556TNNKrweKN0H2aYELzBhjDkNHN8qldPRGVS058uEEn/ySSl7/ooCrpg5nUFJM04b928BbC6mjAhabMcYcjo5qEMtpmgdiGLDffZ0M7MCZFyLkPb9kOwA3zMhquaHxCiZrYjLGBKd2+yBUNVNVR+D0E3xDVVNVdQBwLvBGTwXYm1XXeXklL58zxg7iqH4xLTfu2+A82yWuxpgg1ZVO6sluXwIAqvo+MMN/IQWP977aTWllHVdNHd52Y9EGSEqH6MS224wxJgh0pZN6n4j8EvgHTpPTVUDQXWnkDy98vp0RafGcOGJA241F6yHN+h+MMcGrKzWIK4A04E33keauC2mbCw/wxY5Srpg8rGl+6Qb19VC00RKEMSaodWU+iBLgxyKSoKoVPRBTUHg1r4DwMOGCCUPabizbAZ4qSxDGmKDWaQ1CRE5yb2Rb6y4fLyKP+z2yXszjreeNL3cy69iBpCVGty1Q1NBBbVcwGWOCV1eamB4GzsTtd1DVlcB0fwbV2328sYiiAzV8c1K67wINCSLVrmAyxgSvLg21oar5rVZ5/RBL0HglL5/UhChOPbad+Y2KNkDCIIjr8F5DY4zp1bqSIPJF5CRARSRKRG7DGVspJBVX1DB/XSEXThhCZHg7h69ovdUejDFBrysJ4gbghzgTABUAOe5ySHprxS489co3c4f6LqBqg/QZY/qErlzFtA+4sgdiCQpzV+xk/JB+jBzUzg1w5bug9oBdwWSMCXodDdb3R9rOANdIVW/2S0S9WH5JJSsLyvjFWR3UDvbZFUzGmL6hoxpEXo9FESTeW7UbgLPHD26/kF3iaozpIzqacvTZngwkGMxbtZvj0/sxNKWDGeKK1kNsf4hP7bnAjDHGD7pyo9yHIpLcbLm/iHzg37B6nx3FlXxVUMY5x3VQe4CmDurWw28YY0yQ6cpVTGmqWtqwoKr7gXZuAOi7utS8pAqF66yD2hjTJ3QlQXhFZFjDgogMp4PO677qvVW7yBmaTHr/DpqXDhZBdan1Pxhj+oSuDPd9B/CpiHzsLk8HrvdfSL3PjuJKVu8s546zR3dcsLGD2moQxpjg12GCEGcc6zXARGAqzpSjt7j3RoSMjzYWAnD6mEEdFyx0bzC3eaiNMX1AhwlCVVVE3lLVScC7PRRTr/PJxn0MTYll+IAOmpdqKmDxH2FANiQd3XPBGWOMn3SlD2KJiEz2eyS9VJ23niVfF3NKdlrbiYGaW/BrKN0B5z1qVzAZY/qErvRBnAp8X0S2AwdxmplUVY/za2S9xIr8UipqPEzP7uC+hh1L4PO/wgnXw/CTei44Y4zxo64kiLP8HkUvtmhjEWECJ2a1kyDqquHtm6DfUJh9V88GZ4wxftTRWExJqloOHOjBeHqdRZv3cfzQZPrFRvou8PH9ULwJrn4TohN6NjhjjPGjjmoQLwLnAstx7nto3rCuwAg/xtUrlFXWsTK/lJtmZfsusOtL+OxRmHAVZM3q2eCMMcbPOhqL6Vz3ObPnwuld/rtlH/UKp/jqf/DUOk1L8Wlwxm96PjhjjPGzrozFdKGI9Gu2nCwiF/g3rN5h0eZ9JERHkDM0ue3Gz/4Ae1fDuQ9DrI/txhgT5LpymetdqlrWsOCOy9Tne2NVlU82FnFi1oC2U4vuXQsf/xbGXQzHnh2YAI0xxs+6kiB8lenK1U9BbXtxJQX7q9pe3lrvhbk3QUwSnPXbwARnjDE9oCsJIk9EHhKRLBEZISIP43Rc92mLNhUBcHJ2WssNSx6Hncud5GBzPhhj+rCuJIgfAbXAy8CrQDXww67sXETmiMgGEdksIj/voNwlIqIiktuV/faERZv2kd4/lozmw2sUb4EF/wejznaal4wxpg/rtKlIVQ8C7Z7c2yMi4cBjwOlAAbBMROaq6tpW5RKBm4HPD/Uz/KXOW8/iLcWce/zRTcNr1NfD3B9BeDSc85ANp2GM6fM6TRAiMhK4DchoXl5VO7vw/wRgs6p+7e7nn8D5wNpW5X4N/Nb9jF5hZX4pB2o8LS9vzfs7bP8MzvsTJHUyq5wxxvQBXelsfhX4C/A3wHsI+x4C5DdbLgCmNC8gIhOAoar6roj0mgSxaNM+wgROyhrgrCjdAf+5G0ac6twUZ4wxIaArCcKjqn/uxr59tcE0zkQnImHAw8C1ne5I5HrcSYqGDRvWSenD9+nmfYxPTyY5LsqZRvSdnzjP33jEmpaMMSGjK53U74jIjSIyWERSGh5deF8BMLTZcjqwq9lyIjAO+EhEtuFMSDTXV0e1qj6hqrmqmpuWltZ68xFVVetlZX4pJ45waw8rXoRowozUAAAXkElEQVQt8+G0u6H/cL9+tjHG9CZdqUFc4z7/rNm6rozFtAzIFpFMYCdwOfCtxh04N981NvKLyEfAbaqa14WY/GZFfimeeuWEzP5QUQQf/AKGnQiTvxvIsIwxpsd15Sqmbo3FpKoeEbkJ+AAIB55S1TUici+Qp6pzu7Nff1u2rQQRmDQsBVY/A9VlcM7vIawrlS1jjOk72j3ricj/a/b6m6223deVnavqPFUdqapZqvobd92dvpKDqs4MdO0BnAQxalAi/eIiYdO/IWUEDBob6LCMMabHdfSz+PJmr3/RatscP8QScB5vPV9s38/kjBSoq4Ktn0D2GYEOyxhjAqKjBCHtvPa13Ces232Ag7VeJmemwLbPwFMN2acHOixjjAmIjhKEtvPa13KfsHRbCQCTM/o7zUsRsTD85ABHZYwxgdFRJ/XxIlKOU1uIdV/jLsf4PbIAyNtWQnr/WAYnxcCmDyBzOkT2yT/VGGM61dGMcuE9GUigqSrLtpUwPTvNGZRv/zY48aZAh2WMMQFj1266tu47yL6KWnIzUpzmJbD+B2NMSLME4crbth/AuUFu078hdRT0zwhsUMYYE0CWIFxLt5XQPy6SrH7ijNpqtQdjTIizBOFatq2E3IwUZNsi8Nba/Q/GmJBnCQIoLK9me3ElJzT0P0QlOOMvGWNMCLMEASxz+x+c+x8+hBEzISIqoDEZY0ygWYLAaV6KjQxnbOQuKMu3/gdjjMESBOAkiAnDkon8+j/OimMsQRhjTMgniAPVdazbXe4M0LfpQxg0DvoNCXRYxhgTcCGfIJZv30+9wtQhkbBjsTUvGWOMK+QTRN62/YSHCRM8K6DeY5e3GmOMK+QTxNJtJYw9OomYrfMhuh+knxDokIwxplcI6QRR4/GyIr+UycPdy1uzToXwrkzTbYwxfV9IJ4jVO8uo9dQzq38hVOyx5iVjjGkmpBPE0q3ODXI5NcucFcecFsBojDGmdwnpBLFsWwkj0uKJ374ABudA4qBAh2SMMb1GyCaI+nolb1sJM4ZGQv7n1rxkjDGthGyC2Fh4gPJqD2fGrAWttwRhjDGthGyCWLa1BIBxlZ9DbAoMmRjgiIwxpncJ3QSxbT9HJUYSv2MhHDMbwkJqCm5jjOlUSCYIVWXZthIuHFyMVO6z5iVjjPEhJBNEwf4qdpdVMyfiC0Aga3agQzLGmF4nJBNE3vYSkjjIuJ0vO4PzxQ8IdEjGGNPrhGSCWLp1PzdFv094TRnM+lWgwzHGmF4pJBPEpq+3cE3YPBh3MQw+LtDhGGNMrxRyCaLkYC3nlr5ApNbBqXcEOhxjjOm1Qi5BrFmzkm+Fz2ffyMtgQFagwzHGmF4r5BJEv88fop4wks68PdChGGNMr+bXBCEic0Rkg4hsFpGf+9h+q4isFZGvRGS+iAz3ZzzsXcu44vf5V/z5xAwY6tePMsaYYOe3BCEi4cBjwFnAGOAKERnTqtiXQK6qHge8BvzWX/EAeOf/mgqNZevo7/nzY4wxpk/wZw3iBGCzqn6tqrXAP4HzmxdQ1YWqWukuLgHS/RZN/jLCN87jr55zGZeV6bePMcaYvsKfCWIIkN9sucBd157vAO/72iAi14tInojkFRUVHXokqjD/HiojU3jaO4dJw/sf+j6MMSbE+DNBiI916rOgyFVALvCgr+2q+oSq5qpqblpa2qFHsmUBbFvEG4nfYnDaAFLiow59H8YYE2L8mSAKgOY9wenArtaFROQ04A7gPFWtOeJR1NfD/HvQ5GE8XHISucNTjvhHGGNMX+TPBLEMyBaRTBGJAi4H5jYvICITgL/iJIdCv0Sx7m3YvZK9E2+luBomZVjzkjHGdIXfEoSqeoCbgA+AdcArqrpGRO4VkfPcYg8CCcCrIrJCROa2s7vu8Xpgwf9B2mgWRs0EYHKG1SCMMaYrIvy5c1WdB8xrte7OZq9P8+fns+IFKN4Ml7/Isq/KGBAfRcaAOL9+pDGmfXV1dRQUFFBdXR3oUPqsmJgY0tPTiYyMPOx9+TVBBFRdNXz8AKRPhlFns/ydj5g0vD8ivvrOjTE9oaCggMTERDIyMuy76AeqSnFxMQUFBWRmHv7l/H13qI1lf4PynTD7LgoP1LC9uJJc638wJqCqq6sZMGCAJQc/EREGDBhwxGpofTNBVJfDot9D1izIPIX/bikG4MQRqQEOzBhjycG/juTx7ZsJYvGfoKoEZjvdHf/dso9+sZGMOTopwIEZYwJtz549XH755WRlZTFmzBjOPvtsNm7c2G75hIQEAHbt2sUll1wCwDPPPMNNN910WHH84Q9/oLKysnH57LPPprS09LD2eaT1vQRRUQSLH4MxF8DRE1BVPttczNQRKYSH2S8XY0KZqnLhhRcyc+ZMtmzZwtq1a7nvvvvYu3dvp+89+uijee211w7ps+rr69vd3jpBzJs3j+Tk5C7vvyf0vQSx6PdQVwWzfglAfkkVO0urmHaMNS8ZE+oWLlxIZGQkN9xwQ+O6nJwcJkyYwOzZs5k4cSLjx4/n7bffbvPebdu2MW7cuMbl/Px85syZw6hRo7jnnnsay4wePZobb7yRiRMnkp+fzw9+8ANyc3MZO3Ysd911FwCPPvoou3bt4tRTT+XUU08FICMjg3379gHw0EMPMW7cOMaNG8cf/vCHFvv+3ve+x9ixYznjjDOoqqryz4Fy9a2rmEp3QN7fYcKVkJoNwGdbnAN+UpYlCGN6k3veWcPaXeVHdJ9jjk7irm+MbXf76tWrmTRpUpv1MTExvPnmmyQlJbFv3z6mTp3Keeed12F7/tKlS1m9ejVxcXFMnjyZc845h9TUVDZs2MDTTz/N448/DsBvfvMbUlJS8Hq9zJ49m6+++oqbb76Zhx56iIULF5Ka2vLctHz5cp5++mk+//xzVJUpU6YwY8YM+vfvz6ZNm3jppZd48sknufTSS3n99de56qqrunm0Ote3ahAf3Q8IzGiaeuKzzfsYmBhNVlp84OIyxvRqqsrtt9/Occcdx2mnncbOnTs7bXY6/fTTGTBgALGxsVx00UV8+umnAAwfPpypU6c2lnvllVeYOHEiEyZMYM2aNaxdu7bD/X766adceOGFxMfHk5CQwEUXXcSiRYsAyMzMJCcnB4BJkyaxbdu2w/irO9d3ahCF62HlSzD1RujnDBqrqizeUsz0kWl25YQxvUxHv/T9ZezYsT77EV544QWKiopYvnw5kZGRZGRkdHqpaOtzSsNyfHzTj9GtW7fyu9/9jmXLltG/f3+uvfbaTver6nNMUwCio6MbX4eHh/u9ianv1CAW/h9ExsPJtzau2rD3AMUHazkpa0AAAzPG9BazZs2ipqaGJ598snHdsmXL2L59OwMHDiQyMpKFCxeyffv2Tvf14YcfUlJSQlVVFW+99RbTpk1rU6a8vJz4+Hj69evH3r17ef/9phkNEhMTOXDgQJv3TJ8+nbfeeovKykoOHjzIm2++ySmnnNLNv/jw9I0EUbAc1r0DJ/0I4puSwccbnLkjrIPaGAPOr/w333yTDz/8kKysLMaOHcvdd9/N2WefTV5eHrm5ubzwwgsce+yxne7r5JNP5uqrryYnJ4eLL76Y3NzcNmWOP/54JkyYwNixY7nuuutaJJHrr7+es846q7GTusHEiRO59tprOeGEE5gyZQrf/e53mTBhwuH/8d0gHVVneqPc3FzNy8trufLZ82DvGvjxCohObFx92V8XU1ZVx79+Mr2HozTG+LJu3TpGjx4d6DD6PF/HWUSWq2rbLNaB4K9BbFkIWz+G6be1SA5lVXXkbd/PrGMHBjA4Y4wJXsGdIFRh/r3QbyjkXtdi06JNRXjr1RKEMcZ0U3AniHXvwK4vYObPISK6xaYF6wtJjotkwjAboM8YY7ojeBNEw2RAqaPguMtbbKqvVz7eUMSMkWk2vIYxxnRT8N4H8dU/Yd8GuPR5CG/5Z6wsKKX4YK01LxljzGEIzhqEp8a5a/roiTD6G202L1xfSJjAjJFpAQjOGGP6huBMEHlPQVk+nHYX+LhDesGGQiYO609yXFQAgjPG9GYFBQWcf/75ZGdnk5WVxY9//GNqa2sPa5/XXntt4zAYEydOZPHixQAsWbKEKVOmkJOTw+jRo7n77rsBZ7jwtLQ0cnJyyMnJ4X/+538O98/yi+BLEFoPnzwImTNgxMw2m3eVVrF6ZzmzRlvzkjGmJVXloosu4oILLmDTpk1s3LiRiooK7rjjjkPaj9frbbPuwQcfZMWKFdx///18//vfB+Caa67hiSeeYMWKFaxevZpLL720sfxll13GihUrWLFiBc8999zh/WF+EnwJoqIQKoth9l0+N89btRuAs8YN7smojDFBYMGCBcTExPDtb38bcMYzevjhh3nqqaeorKxsMxHQueeey0cffQQ4EwfdeeedTJkypbGG4Mv06dPZvHkzAIWFhQwePLjxs8aMGeOnv8w/gq+TuqIQRl8K6W2H7AV4f/UeRg9OIjPVRm81pld7/+ewZ9WR3edR4+Gs+9vdvGbNmjbDfSclJTFs2LDGk3p7Dh48yLhx47j33ns7LPfOO+8wfvx4AG655RZGjRrFzJkzmTNnDtdccw0xMTEAvPzyy40jwP74xz9uTFq9SfDVILQeZv3K56bdZVUs376fc8Yf1cNBGWOCgar6HNm5vfXNhYeHc/HFF7e7/Wc/+xk5OTk88cQT/P3vfwfgzjvvJC8vjzPOOIMXX3yROXPmNJZv3sTUG5MDBGMNIiEN0kb53DRv1R4A5ljzkjG9Xwe/9P1l7NixvP766y3WlZeXk5+fT1ZWFitXrmwxTWjzobljYmIIDw9vd98PPvhg45zVzWVlZfGDH/yA733ve6SlpVFcXHwE/pKeEXw1iKQhPlerKq/m5XNcej+OGZjQw0EZY4LB7NmzqaysbOwU9nq9/PSnP+Xaa68lLi6OjIwMVqxYQX19Pfn5+SxduvSwPu+9995rnN9h06ZNhIeH97p5pzsSfAmiHV8VlLF+zwEuzR0a6FCMMb1Uw3Dfr776KtnZ2YwcOZKYmBjuu+8+AKZNm0ZmZibjx4/ntttuY+LEiYf1ec8//zyjRo0iJyeHq6++mhdeeKHDWkhv0zeG+wZuf3MVb3xRwNI7TiMpJjIAkRljOmPDffcMG+67leEpcVxzUoYlB2OMOUKCr5O6Hd+fkRXoEIwxpk/pMzUIY4wxR5YlCGNMjwq2fs9gcySPryUIY0yPiYmJobi42JKEn6gqxcXFjXdrHy6/9kGIyBzgESAc+Juq3t9qezTwHDAJKAYuU9Vt/ozJGBM46enpFBQUUFRUFOhQ+qyYmBjS09OPyL78liBEJBx4DDgdKACWichcVV3brNh3gP2qeoyIXA48AFzmr5iMMYEVGRlJZmZmoMMwXeTPJqYTgM2q+rWq1gL/BM5vVeZ84Fn39WvAbOlsQBRjjDE9wp8JYgiQ32y5wF3ns4yqeoAyYEDrHYnI9SKSJyJ5VjU1xpie4c8E4asm0LpnqitlUNUnVDVXVXPT0mwaUWOM6Qn+7KQuAJoPjJQO7GqnTIGIRAD9gJKOdrp8+fIKEdlwJAMNYqnAvkAH0UvYsWhix6KJHYsmvofB7oA/E8QyIFtEMoGdwOXAt1qVmQtcAywGLgEWaOfXv2041PFE+ioRybNj4bBj0cSORRM7Fk1EpO0gdp3wW4JQVY+I3AR8gHOZ61OqukZE7gXyVHUu8HfgeRHZjFNzuNxf8RhjjDk0fr0PQlXnAfNarbuz2etq4Jv+jMEYY0z3BOOd1E8EOoBexI5FEzsWTexYNLFj0eSQj0XQzQdhjDGmZwRjDcIYY0wPCKoEISJzRGSDiGwWkZ8HOp6eJCJPiUihiKxuti5FRD4UkU3uc/9AxtgTRGSoiCwUkXUiskZEfuyuD8VjESMiS0VkpXss7nHXZ4rI5+6xeFlEogIda08RkXAR+VJE3nWXQ/JYiMg2EVklIisarl7qznckaBJEs7GdzgLGAFeIyJjARtWjngHmtFr3c2C+qmYD893lvs4D/FRVRwNTgR+6/w9C8VjUALNU9XggB5gjIlNxxjR72D0W+3HGPAsVPwbWNVsO5WNxqqrmNLvM95C/I0GTIOja2E59lqp+QtubCJuPZfUscEGPBhUAqrpbVb9wXx/AORkMITSPhapqhbsY6T4UmIUzthmEyLEAEJF04Bzgb+6yEKLHoh2H/B0JpgTRlbGdQs0gVd0NzokTGBjgeHqUiGQAE4DPCdFj4TaprAAKgQ+BLUCpO7YZhNb35A/A/wPq3eUBhO6xUODfIrJcRK531x3ydySY5qTu0rhNJjSISALwOvATVS0P1UGAVdUL5IhIMvAmMNpXsZ6NqueJyLlAoaouF5GZDat9FO3zx8I1TVV3ichA4EMRWd+dnQRTDaIrYzuFmr0iMhjAfS4McDw9QkQicZLDC6r6hrs6JI9FA1UtBT7C6ZdJdsc2g9D5nkwDzhORbTjNz7NwahSheCxQ1V3ucyHOD4cT6MZ3JJgSROPYTu6VCJfjjOUUyhrGssJ9fjuAsfQIt13578A6VX2o2aZQPBZpbs0BEYkFTsPpk1mIM7YZhMixUNVfqGq6qmbgnBsWqOqVhOCxEJF4EUlseA2cAaymG9+RoLpRTkTOxvlV0DC2028CHFKPEZGXgJk4o1PuBe4C3gJeAYYBO4BvqmqHo+EGOxE5GVgErKKprfl2nH6IUDsWx+F0Nobj/Nh7RVXvFZEROL+iU4AvgatUtSZwkfYst4npNlU9NxSPhfs3v+kuRgAvqupvRGQAh/gdCaoEYYwxpucEUxOTMcaYHmQJwhhjjE+WIIwxxvhkCcIYY4xPliCMMcb4ZAnCGGOMT5YgTFASEa87lPFqEXmn4YaxQ3j/3SJym/v6XhE57TDjyRCRKndcpF5BRC5zh8Z/N9CxmOBkCcIEqyp3KONxOKPc/rC7O1LVO1X1P0cgpi2qmnMob3CHsfcLVX0Z+K6/9m/6PksQpi9YjDtKp4gkiMh8EfnCnTClcUh4EbnDnXDqP8CoZuufEZFL3NfbRCTVfZ0rIh+5r2e4NZYV7oQ0iZ0FJSJvuaNprmk2oiYiUuHWWj4HThSRySLyX3fin6UikigiY93XK0TkKxHJdt97VbP1f21IMOJMpvWFu4/5h39IjQmu0VyNacM9Qc7GGZ8JoBq40B3hNRVYIiJzgYk4Y/RMwPl//wWw/BA+6jbgh6r6mTuSbHUX3nOdqpa44yQtE5HXVbUYiAdWq+qd7rhi64HLVHWZiCQBVcANwCOq+oJbJlxERgOX4YzUWScijwNXisj7wJPAdFXdKiIph/B3GdMuSxAmWMW67f0ZOCf6D931AtwnItNxxmoaAgwCTgHeVNVKADdpHIrPgIdE5AXgDVUt6MJ7bhaRC93XQ4FsoBjw4oxGC05NZreqLgNQ1XI3vsXAHe4kOG+o6iYRmQ1Mwkk2ALE4I3JOBT5R1a3uPvr0GFSm51gTkwlWVW57/3AgiqY+iCuBNGCSu30vEONu68rAYx6avhcN70NV78dpz4/FqZUc29FO3AHjTgNOdKcE/bLZ/qrdeRzASWht4lLVF4HzcGoTH4jILLfss27fS46qjlLVu9vbhzGHyxKECWqqWgbcDNzmzhPRD2fimDoRORUngQB8AlwoIrFu/8E32tnlNpxf6QAXN6wUkSxVXaWqDwB5QIcJwo1jv6pWuslkajvl1gNHi8hk93MSRSTCHZHza1V9FGeY5uNw5hG+xJ0EpmES+uE4fTAzRCSzYX0nsRnTJdbEZIKeqn4pIitx+hheAN4RkTxgBc4JGFX9QkRedtdtxxky3Jd7gL+LSMMQ4g1+4iYcL7AWeL+TsP4F3CAiXwEbgCXtxF4rIpcBf3T7Kqpwah6XAVeJSB2wB7jX7c/4Jc5UkmFAHU6/yBK3E/wNd30hcHon8RnTKRvu25gjQJz5sd91L7vtNZrPjRDoWEzwsSYmY44ML9Cvt90oBzwO7A90LCY4WQ3CGGOMT1aDMMYY45MlCGOMMT5ZgjDGGOOTJQhjjDE+WYIwxhjj0/8PK+O7Nw92YVIAAAAASUVORK5CYII=\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 > 3 ) & (radii < 15))\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.396, ff = 1.185, residual = 0.016\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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YPPeGvVXiEiXlixZQlpaGp/61Kfat82dO5d58+axaNEi5s+fz5w5c/jjH//4lvdu2bKF2bNnt69v27aNxYsXc9RRR/GNb3yjvcyMGTP49Kc/zfz589m2bRtXX301xcXFzJo1i69//esA/OAHP2DHjh2cdtppnHbaaQAUFRWxd+9eAG699VZmz57N7Nmzuf322w/a95VXXsmsWbN4z3veQ11dXXz+oTqR3FdDuQed21NOwYHNe2s4+xhdNiuSDL7x6CpW76js133OHJfL18+Z1eXrK1eu5LjjjnvL9mg0ykMPPURubi579+7lxBNP5NxHYcIyAAAQJklEQVRzz+22/f/FF19k5cqVZGVlcfzxx/O+972PgoIC1q5dy913382Pf/xjAL75zW8ycuRIWlpaWLRoEa+++iqf/exnufXWW1myZAkFBQUH7Xf58uXcfffdvPDCC7g7CxYs4NRTT2XEiBGsX7+e3/72t/z85z/ngx/8IA8++CCXXnppL/+1Dk9y1yzK1kL1bphyCmXVDVTUNTF91LBERyUiScbd+epXv8oxxxzDu9/9brZv395j09QZZ5xBfn4+mZmZXHDBBTz33HMATJ48mRNPPLG93P3338/8+fOZN28eq1atYvXq1d3u97nnnuP8888nOzubYcOGccEFF/Dss88CMGXKFObOnQvAcccdx5YtW/pw1IcnuWsWm8P+iqmnsmF3NQDTR+ckMCARiVV3NYB4mTVrVqf9Dvfeey9lZWUsX76ctLQ0ioqKerz89NBaR9t6dvabV2Nu3ryZ7373uyxbtowRI0ZwxRVX9Lhf907HWwUgI+PNqaIjkciANkMld81i09OQNxlGFLF+T5gsVLMQkS6cfvrpNDQ08POf/7x927Jly9i6dSujRo0iLS2NJUuWsHXr1h739eSTT7Jv3z7q6up4+OGHOfnkk99SprKykuzsbIYPH87u3bt5/PE3Z2HIycmhqqrqLe855ZRTePjhh6mtraWmpoaHHnqId73rXb084v6TvMmipRm2PAdTTwVg/Z4qcqOpFOZk9PBGEXm7MjMeeughnnzySaZNm8asWbO48cYbOeussygpKaG4uJh7772Xo48+usd9vfOd7+Syyy5j7ty5XHjhhRQXF7+lzLHHHsu8efOYNWsWH//4xw9KKFdddRVnnnlmewd3m/nz53PFFVdwwgknsGDB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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, 120])\n",
"plt.xlabel('Radius [arcsec]')\n",
"plt.ylabel('Encircled flux')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"774035629821.2646"
]
},
"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": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"### As units of map in MJy/sr, divide by 1E6\n",
"psfok=psfok/1.0E6"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"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 `GAMA-12_PACS100_v0.9.fit` that it has a flux of -- mJy. Maximum value in our normalised PSF ---- \n"
]
},
{
"cell_type": "code",
"execution_count": 37,
"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/GAMA-12_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/GAMA-12_PACSxID24_v1.fits'\u001b[0m\u001b[0;34m)\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 2548\u001b[0m \u001b[0;31m# RST table and inserts at the end of the docstring. DO NOT REMOVE.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2549\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2550\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[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2551\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[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2552\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[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[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[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[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[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;32mraise\u001b[0m\u001b[0;34m\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[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[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[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[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[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[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[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[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[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: './data/GAMA-12_PACSxID24_v1.fits'"
]
}
],
"source": [
"PACScat=Table.read('./data/GAMA-12_PACSxID24_v1.fits')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"PACScat['HELP_ID']"
]
},
{
"cell_type": "code",
"execution_count": 123,
"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'GAMA12-PACSxID24-1-69605'\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']=='GAMA12-PACSxID24-1-69605']"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max PSF = 46.9903 Jy/sr, off pixel Max PSF = 44.2429 Jy/sr\n"
]
}
],
"source": [
"cpix=np.int((hd['NAXIS1']+1)/2.0)\n",
"\n",
"print(\"Max PSF = {:.4f} Jy/sr, off pixel Max PSF = {:.4f} Jy/sr\".format(psfok[cpix-1,cpix-1]*0.027,psfok[cpix-2,cpix-2]*0.027))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"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"
]
},
{
"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[1;32m 4\u001b[0m \u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msns\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcubehelix_palette\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m8\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstart\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrot\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m.75\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mas_cmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0maplpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFITSFigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'../dmu18_HELP-PACS-maps/data/GAMA-12_PACS100_v0.9.fits'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecenter\u001b[0m\u001b[0;34m(\u001b[0m\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'GAMA12-PACSxID24-1-69605'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'RA'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\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'GAMA12-PACSxID24-1-69605'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Dec'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mradius\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.004\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 7\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow_colorscale\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvmin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mvmax\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcmap\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_colorbar\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'PACScat' is not defined"
]
},
{
"data": {
"image/png": "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bW2tIiIi2i0bHh6uxsZGtbS0KDAwsN08TqdTNTU1cjqdamlpUVNTk8LCwjps+9xteL3eDtsAAAC4Wl32H/8TExOj8vJy+Xw++Xw+lZeXKyYmRhERERo6dKj27t0ry7JUUFCg6dOnt1vW4XBo8uTJKioqknT27u+2u6xdLpd9B3hRUZGmTJnS4WjjuHHjVFVVperqavn9fnk8Hu7SBgAA+P8uSUhu375dsbGxevfdd3X33Xdr/vz5Xc4bFham++67T3PmzNGcOXO0cOFC+8jhypUrtWzZMrndbv3zP/+zYmNjOyyfkZGhF198UW63Ww0NDUpNTZUkzZkzRw0NDXK73XrxxRe1ePFiSWePOv7sZz+TdPbayRUrVuiuu+7SjBkzdOutt2r06NE9vTsAAAD6JYfV2YWA6HFdXdcJAABwuelut1z2p7YBAABweSIkAQAAYISQBAAAgBFCEgAAAEYISQAAABghJAEAAGCEkAQAAIARQhIAAABGCEkAAAAYISQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgBFCEgAAAEYISQAAABghJAEAAGCEkAQAAIARQhIAAABGCEkAAAAYISQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgBFCEgAAAEYISQAAABghJAEAAGCEkAQAAIARQhIAAABGCEkAAAAYISQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgBFCEgAAAEYISQAAABghJAEAAGCEkAQAAIARQhIAAABGCEkAAAAYISQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgBFCEgAAAEYISQAAABghJAEAAGCEkAQAAIARQhIAAABGCEkAAAAYISQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgBFCEgAAAEYISQAAABghJAEAAGCEkAQAAIARQhIAAABGCEkAAAAYISQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYOSShGRDQ4PmzZunuLg4zZs3Tz6fT5J05swZPfzww7r99tv1/vvv2/OvX79ebrdb8fHx2rlzpz29rKxM8fHxcrvdysnJsafPnTtXR48elSTt379fiYmJcrvdysrKkmVZ5x3D5+Xn5ysuLk5xcXHKz8+3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fX29hg8fbq/f6/XK6XTajyMjI1VZWan6+vou1/vMM8/o+eefV2Rk5AWfwr0abNmyRbfeeqv9+P3331d+fr78fr/cbrcWL16sgoICrVq1SgUFBUpLS9OxY8fsf/giIiLsyxs+//q0vQ5t855vHkldrveFF17QihUr9K//+q86efKkBg0a1Et74/Ly+dfmwIEDKigoUFBQkL7//e9r7ty5+sc//nHB+1PivdqXVq1apYyMDJ08edKe9sQTT2jBggUaNGiQgoODtXnzZvu5xsZGvfzyyyopKdE999yj1157TaNHj9acOXN04MABtbS0GL3mbTp7bbxe73nfmzk5OSotLVVQUNAV9dqY6Ox92PZ+mD9/viorKxUbG2v/slRVVaW//vWvWrNmjQYNGqSHH35YN954oyR+3p6LI5JXsJMnT+rBBx/UI488ooCAAP3+97/Xz3/+807njY2N1cCBA3XdddeptbVVsbGxkqTrrruuy+uo2n5r+/wRjXOfa9OdeT4/feLEiVqyZIk2b97c7poVSM8++6wCAgI0c+ZMe9rkyZMVHBys4cOHa9iwYXK5XJLOvoYfffTRedfX069hm0mTJunJJ5/Uyy+/rKamJjtCrmSdvTZTp07VsGHDNGjQII0aNUofffSR0f6UeK/2lT//+c8aPny4xo4d2276xo0blZOTo7KyMs2aNUu//vWv7ee++93vyuFw6Prrr9eXvvQlXX/99RowYID+5V/+5aJe8zZdLX++9V5//fVavHixCgsLFRAQ0O1tXYk6ex+2ef7551VeXi6/36+KigpJZ6+PbWxs1ObNm/Xwww8rPT3d3tf8vP0/hOQV6vTp03rwwQeVmJiouLg4HTlyREePHlVSUpJcLpdqa2s1a9YsffLJJ5JkH7ofMGCABg4caP+FHTBggFpbWxUeHq7Gxka1tLRIOnvKp+03IqfTqZqaGklnTw00NTUpLCys3XicTme7U31tv32db72ZmZlKT09XTU2NkpOTVV9f31u7q1/Jz8/Xm2++qezs7HY/WNpeQ+n/Xse2/2/7x33EiBH2KZS6ujr7SNTnX59zX4c255unq/UuWLBAWVlZam5u1g9+8AMdPny4Z3bCZao7r01AQIBaW1uN9ue56+K92rveeecdlZaWyuVy6aGHHlJFRYUWLFiggwcPavz48ZKkGTNm6N1337WXaXttHA5Hh/dj29FIk9e8TVevzfnWm5OTox//+Md67733NGvWLPv1uxp19j4816BBg+RyuexTyJGRkXK73XI4HLrxxhs1YMAA++82P2//DyF5BbIsS7/61a907bXXat68eZLO/la6a9culZaWqrS0VE6nU1u3btWXv/zlbq3T4XBo8uTJKioqknT2H8y238BcLpd992BRUZGmTJnS4TencePGqaqqStXV1fL7/fJ4PHK5XOdd75EjRzR+/Hj9/Oc/V3h4eLs31dWqrKxMzz33nJ599lldc801F7y8y+VSQUGBJKmgoEDTp09vN92yLO3du1fDhg3r8IMtIiJCQ4cO1d69e2VZVqfLf369R44c0fXXX68FCxZo7Nix+uCDD4z/7Je7C31tTPZnd/Be7Rm/+MUvVFZWptLSUv32t7/VlClT9Mwzz6ipqcn+e/yXv/xFo0aN6vY6L/Y1j4mJUXl5uXw+n3w+n8rLyxUTE9Ples+cOaOamhpNmTJFGRkZampq0qlTp3pg71w5Tp48aUdZS0uL3nrrLfsay+9973v20ckPPvhAp0+fVnh4eLfXfbX8vL3yzzNdhf72t7+psLBQ1113nZKSkiRJDz30kG655ZaLWm9GRoYWLVqk3/3udxozZoxSU1MlSXPmzFFGRobcbrdCQ0O1Zs0aSWd/W162bJmee+45BQYGasWKFbrrrrvU2tqq2bNna/To0edd7+rVq/Xhhx/KsixNmTKl02s7r2QPPfSQ9uzZo/r6esXGxuqBBx5QTk6O/H6//QvC+PHju/xIi84sWLBA6enpysvLU1RUlJ5++mlJ0i233KK33npLbrdb11xzjVatWmUvk5SUpMLCQknSypUrtXTpUjU3Nys2NtY+rdrVel966SXt3r3bPr3XNn9/11OvzYXuz+7ivdo7AgMDlZWVpQcffFAOh0OhoaHt3ivdcaGv+b59+/SHP/xBTzzxhMLCwnTffffZN/8sXLjQPqLc2XpbWlqUkZGhEydOyLIspaWlKSQkpAf3yKXV2fswLCxMjz/+uI4fP667775bY8aM0fPPP9/lOj799FPde++98vv9OnPmjKZMmaLbb79dkjR79mw98sgjuu222zRw4EA9+eSTF3QpwtXy89ZhdXYiHgAAAPgCnNoGAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgBFCEgB6yZgxY5SUlKTbbrtN99xzT4evqNu4caPGjRunpqamLtdRV1enu+++W5K0e/du+/9ff/11JSYmKjExUbfffrsOHjxoL1NWVqb4+Hi53W7l5OTY06urq5Wamqq4uDilp6fL7/dLkvx+v9LT0+V2u5Wammp/Q87//u//2t8TDQCdISQBoJcMHjxYhYWF2rZtm0JDQ7Vp06Z2z2/btk3jxo3T9u3bu1zHiy++aH9e47m++tWv6pVXXtEbb7yhe++9V8uXL5d09mvdMjMztWHDBnk8Hm3btk2HDh2SJGVnZystLU3FxcUKCQlRXl6eJCk3N1chISHavn270tLSlJ2dLensFxnU1tbq448/7pH9AeDKQ0gCQB+YMGGCvF6v/fjIkSM6deqU0tPT5fF4ulyuuLi40w8WnjRpkkJDQ+11t32bTGVlpUaOHKno6GgFBQUpISFBJSUlsixLFRUVio+PlySlpKTYXwVXWlqqlJQUSVJ8fLx27dplf9fvd7/73fOOD8DVjZAEgF7W2tqqXbt22V8pKJ09GpmQkKBvfetb+uCDD3Ts2LEOy1VXVys0NLTd9/p2Ji8vz45Nr9crp9NpPxcZGSmv16v6+nqFhIQoMPDsF5o5nU47bL1er6KioiSd/faWYcOG2d8pPHbsWP3tb3+7iD89gCsZIQkAvaS5uVlJSUmaPHmyfD6fpk2bZj/3xz/+UQkJCRowYIDcbrf++7//u8Pyn3zyyRd+t29FRYXy8vK0ePFiSVJnX1bW1de6tU0/3zIjRoywv4sYAD6PkASAXtJ2jeSf//xnnT592r5G8uDBg6qqqtKdd94pl8tlX8vY2fJtN8R05uDBg1q2bJmeeeYZOzidTqd9mls6e7QxIiJC4eHhamxsVEtLiySptrZWERER9jI1NTWSpJaWFjU1Ndnf4fzZZ59p0KBBPbA3AFyJCEkA6GXDhg3TsmXL9MILL+j06dPyeDx64IEHVFpaqtLSUpWXl8vr9eqjjz5qt9zXvva1DtPafPzxx3rggQe0evVqff3rX7enjxs3TlVVVaqurpbf75fH45HL5ZLD4dDkyZNVVFQkScrPz7dPtbtcLuXn50uSioqKNGXKFPuIZFVVlUaPHt3j+wTAlYGQBIA+8I1vfEM33HCDPB6PPB6Pvve977V73u12d7ipZciQIYqOjtaHH34o6ey1lm3XS/7nf/6nGhoa9NhjjykpKUmzZs2SdPYaxxUrVuiuu+7SjBkzdOutt9ohmJGRoRdffFFut1sNDQ323eBz5sxRQ0OD3G63XnzxRfs0uXT2I4e+853v9Mo+AdD/OazOLo4BAFwWtm/frv3792vRokV66aWX5PV69fDDD/fJtv1+v37yk5/o1VdftW/SAYBzEZIAcJnLzc3Vu+++q/fff1+/+93v9E//9E99st2qqip5vV5Nnjy5T7YHoP8hJAEAAGCEayQBAABghJAEAACAEUISAAAARghJAAAAGCEkAQAAYISQBAAAgJH/B2won24JM3ZnAAAAAElFTkSuQmCC\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('../dmu18_HELP-PACS-maps/data/GAMA-12_PACS100_v0.9.fits')\n",
"fig.recenter(PACScat[PACScat['HELP_ID']=='GAMA12-PACSxID24-1-69605']['RA'],PACScat[PACScat['HELP_ID']=='GAMA12-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": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAT8AAAD8CAYAAAABraMFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAH2VJREFUeJzt3X9QXNX9N/D3hRVKGn477DJK0JpNYmU1Nj4OaQypl1l2AiK/ltkZq4aMFGt1mh1H4rROeSqdNiXiEOyMGkSJY6rjoBIrV4MEOoNf5HE0Y7NBU2Pa8AgKS5NsEpJoll3u8wdln2yA3atnhV32/XLuTJZ7lvPJH/n4Offcc46kqqoKIqIoE7PYARARLQYmPyKKSkx+RBSVmPyIKCox+RFRVGLyI6KoxORHRGGjr68PFosFZrMZLS0ts+673W7Y7XaYzWZUVlZiZGQEADA5OYlHH30UxcXF2Lx5M3bv3h20LyY/IgoLXq8X9fX1aG1thaIo6OzsxLFjx/zatLe3IykpCd3d3aiqqkJjYyMAYP/+/XC73Xjrrbfwxhtv4NVXX/Ulxvkw+RFRWHA4HMjOzkZWVhbi4uJQVFSEnp4evza9vb0oKysDAFgsFgwMDEBVVUiShK+//hoejwfffPMNrrjiCixfvjxgf7rv7W8iaPWqNZDU2MUOg2hJS05bjg8++EDod6xZaQKkKU1tr1t1DeLj432fbTYbbDYbAMDpdMJgMPju6fV6OBwOv+87nU5kZmYCAHQ6HRITE+FyuWCxWNDT04PbbrsN33zzDX7zm98gJSUlYCxhm/wkNRY695WLHQbRknbVVeniv0SawhUa/63Gx8fjjTfemPPeXCttJUnS1MbhcCAmJgbvvfcezp49i7vuugs//elPkZWVNW8sHPYSkSAJUkyMpisQg8GAsbEx32en04mMjIxZbUZHRwEAHo8HExMTSElJQWdnJzZu3IgrrrgC6enp+MlPfoLDhw8H7I/Jj4jESZK2KwCTyYShoSEMDw/D7XZDURTIsuzXRpZldHR0AAC6urqQm5sLSZKQmZmJDz74AKqq4sKFCzh06BB+9KMfBeyPyY+IxEiAJMVougLR6XSoq6tDdXU1CgsLsXnzZhiNRjQ3N/smPqxWK06fPg2z2Yy2tjY88sgjAICf//znOH/+PO644w5YrVaUl5djzZo1gcMO1y2t1hhv4DM/ou/ZqnXp8z6D02rNqhzEew3BGwK47qYk4f5CJWwnPIgoUkhBq7pwxORHROKCPM8LR0x+RCREAlj5EVEUkiRIETh3yuRHROIicNgbeemaiCgEWPkRkTA+8yOiKBR89UY4YvIjImGs/Igo+kgAYlj5EVHU+TYrPLTt+7cQIq9WJSIKAVZ+RCQu2iq/06dPY+vWrSgoKMDWrVtx5syZedueO3cOGzduRH19vUiXRBRmppe3SZqucCKU/FpaWrB+/Xq8++67WL9+/ZxHzc3YtWsXbr31VpHuiCgcSdJ05aflCiNC0fT09KC0tBQAUFpaigMHDszZbnBwECdPnsSGDRtEuiOicBWCnZwXmlDyO3nypG+P/YyMDJw6dWpWm6mpKTQ0NGD79u0iXRERhVTQCY+qqiqcOHFi1s/tdrumDl5++WXk5eX5jpsjoqVHWorv+e3Zs2fee+np6RgfH0dGRgbGx8eRlpY2q83HH3+MgwcP4pVXXsH58+cxOTmJZcuW+fbeJ6IlIETP8/r6+vDHP/4RU1NTqKysRE1Njd99t9uN7du345NPPkFKSgqamppw9dVX429/+xuef/55X7vPPvsMHR0duP766+ftS+hVF1mWsW/fPtTU1GDfvn3Iz8+f1ebJJ5/0/fmNN97A4OAgEx/RUhKimVyv14v6+nq0tbVBr9fDarVClmWsXLnS16a9vR1JSUno7u6GoihobGzErl27cOedd+LOO+8EMJ34fvWrXwVMfIDgM7+amhr09/ejoKAA/f39vix9+PBhPPbYYyK/mogiSQhmex0OB7Kzs5GVlYW4uDgUFRX5Tm2b0dvbi7KyMgCAxWLBwMDArIPMFUXBHXfcETRkocovNTUVL7744qyfm0wmmEymWT8vLy9HeXm5SJdEFI5C8MzP6XTCYPj/p8Dp9Xo4HI5ZbWbmD3Q6HRITE+Fyufweub399tt4+umng/bHFR5EtGBcLpdfAWSz2WCz2QBgVgUHYNZwOlibQ4cOISEhAatWrQoaC5MfEQnSvrFBamrqvOf2GgwGjI2N+T47nU7fq3SXthkdHYXBYIDH48HExARSUlJ89xVFQVFRkaZYwuuVayKKPNPr24RfcjaZTBgaGsLw8DDcbjcURYEsy35tZFlGR0cHAKCrqwu5ubm+ym9qagr79+/XnPxY+RGRuBA889PpdKirq0N1dTW8Xi8qKipgNBrR3NyMnJwc5Ofnw2q1ora2FmazGcnJyWhqavJ9/8MPP4TBYEBWVpam/iR1rkF0GFhjvAE695WLHQbRkrZqXfq8w1CtfnzDOqSkr9PU1nDlCeH+QoWVHxEJksJu0wItIi9iIqIQYOVHRGJmJjwiDJMfEYlbihsbEBEFMrOTc6Rh8iMiQZE54cHkR0RiIvTc3shL10REIcDKj4jE8ZkfEUUjTngQUfSJ0Gd+TH5EJCj8jqXUghMeRBSVWPkRkTgOe4koGnHCg4iiDzc2IKKoxWEvEUUfzvYSEUUMJj8iEiZJkqYrmL6+PlgsFpjNZrS0tMy673a7YbfbYTabUVlZiZGREd+9f/7zn7DZbCgqKkJxcTEuXrwYsC8Oe4lIzLdZ4eENcMvrRX19Pdra2qDX62G1WiHLMlauXOlr097ejqSkJHR3d0NRFDQ2NmLXrl3weDyora3FE088gTVr1sDlckGnC5zeWPkRkbgQnNvrcDiQnZ2NrKwsxMXFoaioCD09PX5tent7UVZWBgCwWCwYGBiAqqro7+/H6tWrsWbNGgDTh6PHxsYG7I+VHxEJkjRXfi6XC+Xl5b7PNpsNNpsNAOB0OmEwGHz39Ho9HA6H3/edTicyMzMBTJ/zm5iYCJfLhePHj0OSJNx33304deoUCgsL8Ytf/CJgLEx+RCRG0v6Sc2pq6rzn9s51hPjlv3e+Nl6vFwcPHsRrr72GhIQEVFVVIScnB+vXr583Fg57iSgsGAwGjI2N+T47nU5kZGTMajM6OgoA8Hg8mJiYQEpKCgwGA2699VakpaUhISEBeXl5+OSTTwL2x+RHROJiJG1XACaTCUNDQxgeHobb7YaiKJBl2a+NLMvo6OgAAHR1dSE3NxeSJOG2227DZ599hq+//hoejwcffvih30TJXDjsJSJxIXjJWafToa6uDtXV1fB6vaioqIDRaERzczNycnKQn58Pq9WK2tpamM1mJCcno6mpCQCQnJyMqqoqWK1WSJKEvLw8/OxnPwscsjrXIDoMrDHeAJ37ysUOg2hJW7Uufd5ncFrdcHMurswp0NQ2/fygcH+hwsqPiIRIEiBF4NpeoWd+p0+fxtatW1FQUICtW7fizJkzs9ocOXLE763rt99+W6RLIqKQEEp+LS0tWL9+Pd59912sX79+zuUoP/jBD9DQ0ABFUdDa2oo//elPOHv2rEi3RBRWNL7gHGabHwglv56eHpSWlgIASktLceDAgVltrr32WlxzzTUApl9aTEtLw6lTp0S6JaJwE4LZ3oUm9Mzv5MmTvvdwMjIygiY1h8OByclJrFixQqRbIgon0n+vCBM0+VVVVeHEiROzfm63279VR+Pj46itrUVDQwNiYvh6IdFSsiS3sd+zZ8+899LT0zE+Po6MjAyMj48jLS1tznbnzp3D/fffD7vdjrVr137nYIkoTIXZkFYLoRJMlmXs27cPALBv3z7k5+fPauN2u/Hggw+ipKQEmzdvFumOiChkhJJfTU0N+vv7UVBQgP7+ftTU1AAADh8+jMceewwA8M477+Cjjz5CR0cHSkpKUFJSgiNHjohHTkThQ9J4hRGhCY/U1FS8+OKLs35uMplgMpkAwJfwiGiJitCXnLnCg4jERV7uY/IjIlHh9w6fFkx+RCQm/BZvaMIX7ogoKrHyIyJxEVj6MfkRkbgIHEMy+RGRsCW5vI2IKCAJEVn5RWDIRBROJExXflquYPr6+mCxWGA2m+fcH9TtdsNut8NsNqOyshIjIyMAgJGREdx4442+RRV1dXVB+2LlR0Rhwev1or6+Hm1tbdDr9bBarZBl2e8Utvb2diQlJaG7uxuKoqCxsRG7du0CAKxYsQJvvvmm5v5Y+RGRuBiNVwAOhwPZ2dnIyspCXFwcioqK0NPT49emt7cXZWVlAACLxYKBgYE5DzLXgpUfEYmZHvdqaupyuVBeXu77bLPZYLPZAEwfUm4wGHz39Ho9HA6H3/edTicyMzMBTB91mZiYCJfLBWB66FtaWorly5fDbrfjlltuCRgLkx8RCdM62Zuamjrv0ZVzVXCXPyecr01GRgb+/ve/IzU1FYODg3jwwQehKAqWL18+bywc9hKRuBAMew0GA8bGxnyfnU6n75iMS9uMjo4CADweDyYmJpCSkoK4uDikpqYCAHJycrBixQocP348aMhERIvOZDJhaGgIw8PDcLvdUBQFsiz7tZFlGR0dHQCArq4u5ObmQpIknDp1Cl6vFwAwPDyMoaEhZGVlBeyPw14iEqPxNZZgdDod6urqUF1dDa/Xi4qKChiNRjQ3NyMnJwf5+fmwWq2ora2F2WxGcnIympqaAAAffvghnnrqKcTGxiI2NhaPP/44UlJSAoetftepku/ZGuMN0LmvXOwwiJa0VevS530Gp5UpdwOuKtC2YfGywf8j3F+ocNhLRFGJw14iEse1vUQUdSRAisAxZASGTEQkjpUfEYmLvFEvkx8RifkWq9vCCpMfEYnhub1EFLUiL/cx+RGRuEgc9nK2l4iiEis/IhIXgWUUkx8RiZEic9jL5EdEwnh0JRFFHQmRubyNyY+IxEVe4ReJjymJiMSx8iMiMRIQE4FlVASGTEQkLiTJr6+vDxaLBWazGS0tLbPuu91u2O12mM1mVFZWYmRkJBTdElGYkGK0XcGI5pKvvvoKN998M55//vmgfQknP6/Xi/r6erS2tkJRFHR2duLYsWN+bdrb25GUlITu7m5UVVWhsbFRtFsiCieSxiuAUOSSHTt2YOPGjZpCFk5+DocD2dnZyMrKQlxcHIqKitDT0+PXpre3F2VlZQAAi8WCgYGBOQ8fJqLoJZpLDhw4gKuvvhpGo1FTf8LJz+l0wmAw+D7r9Xo4nc5ZbTIzMwFMH0+XmJgIl8sl2jURhYP/rvDQcrlcLpSXl/uuV1991fdrRHLJhQsX8Nxzz+Ghhx7SHLbwbO9cFdzlb3traUNEkUkCEBOr7d9zamrqvEdXiuSSv/zlL9iyZQt++MMfaooDCEHyMxgMGBsb8312Op3IyMiY1WZ0dBQGgwEejwcTExNBDxQmougikksOHTqErq4uNDY24uzZs4iJiUF8fDzuvvvuefsTHvaaTCYMDQ1heHgYbrcbiqJAlmW/NrIso6OjAwDQ1dWF3NxcVn5ES4jWYW8gIrnk5ZdfRm9vL3p7e7Flyxbcf//9ARMfEILKT6fToa6uDtXV1fB6vaioqIDRaERzczNycnKQn58Pq9WK2tpamM1mJCcno6mpSbRbIgoXIdrVZaFziaSG6bTrGuMN0LmvXOwwiJa0VevS530Gp9XavA1Y/fMKTW0nu/5HuL9Q4fI2IhIWiU+xmPyISAi3tCKiqMXKj4iiD7exJ6JoFYnJLwJH6kRE4lj5EZEQCdzMlIgoYrDyIyIxEl91IaKoJEXkWn0mPyISFoG5j8/8iCg6sfIjIiGc7SUiiiCs/IhIjATEROAzPyY/IhLGCQ8iogjByo+IhLHyI6KoMzPbq+UKpq+vDxaLBWazGS0tLbPuu91u2O12mM1mVFZWYmRkBMD0geclJSUoKSnBnXfeie7u7qB9sfIjorDg9XpRX1+PtrY26PV6WK1WyLKMlStX+tq0t7cjKSkJ3d3dUBQFjY2N2LVrF4xGI15//XXodDqMj4+jpKQEt99+O3S6+VMcKz8iEvPf2V4tVyAOhwPZ2dnIyspCXFwcioqK0NPT49emt7cXZWVlAACLxYKBgQGoqoqEhARfort48aKm5Xas/IhImNa1vS6XC+Xl5b7PNpsNNpsNwPQh5QaDwXdPr9fD4XD4fd/pdCIzMxPA9FGXiYmJcLlcSEtLw6FDh/Db3/4WX331FXbu3Bmw6gOY/IhoAaWmps57dOVcp+henlQDtbnpppugKAr+9a9/4dFHH0VeXh7i4+PnjYXDXiISIgGIjdF2BWIwGDA2Nub77HQ6kZGRMavN6OgoAMDj8WBiYgIpKSl+ba677jokJCTg6NGjAftj8iOisGAymTA0NITh4WG43W4oigJZlv3ayLKMjo4OAEBXVxdyc3MhSRKGh4fh8XgAAF9++SWOHz+Oq666KmB/HPYSkbBQvOen0+lQV1eH6upqeL1eVFRUwGg0orm5GTk5OcjPz4fVakVtbS3MZjOSk5PR1NQEADh48CCee+456HQ6xMTE4Pe//z3S0tICx6zONYgOA2uMN0DnvnKxwyBa0latS5/3GZxW/yv/Nty2zaqp7f/d0yfcX6iw8iMiIRIic2MDPvMjoqjEyo+IhMVGYOnHyo+IohIrPyISIiEyd3Vh8iMiMRG6kzOHvUQUlUKS/ILtwdXW1obCwkIUFxdjy5Yt+PLLL0PRLRGFgenlbZKmK5wIJ7+ZPbhaW1uhKAo6Oztx7NgxvzbXX389Xn/9dbz11luwWCx44oknRLslojAiabzCiXDy07IHV25uLhISEgAAa9eu9Vu8TES0GIST31x7cDmdznnbv/baa8jLyxPtlojCSCg2M11owrO9WvbgmvHmm29icHAQe/fuFe2WiMJE1L7qomUPLgB4//338eyzz2Lv3r2Ii4sT7ZaISIjwsFfLHlyffvop6urq8MwzzyA9PV20SyIKJ1JkzvYKV35a9uDauXMnLly4gG3btgEAMjMz8eyzzwoHT0SLL1J3dQnJCo9NmzZh06ZNfj+bSXQAsGfPnlB0Q0QUMlzeRkSCJM2nt4UTJj8iEhaJ62QjMWYiWqKCLZV1u92w2+0wm82orKzEyMgIAKC/vx/l5eUoLi5GeXk5BgYGgvbFyo+IhEhSaDYznVkq29bWBr1eD6vVClmWsXLlSl+b9vZ2JCUlobu7G4qioLGxEbt27UJqaiqeeeYZ6PV6HD16FPfddx/ee++9gP2x8iOisKBlqWxvby/KysoAABaLBQMDA1BVFT/+8Y+h1+sBAEajEW63G263O2B/rPyISFiMxgkPl8uF8vJy32ebzQabzQZg7qWyDofD7/tOpxOZmZkApl+zS0xMhMvl8jumsqurC9dff33QxRRMfkQkRIL2IWRqauq8R1dqWSobrM3nn3+OxsZGvPDCC0Fj4bCXiIRJkrYrEC1LZQ0GA0ZHRwEAHo8HExMTSElJAQCMjY3hoYceQkNDA1asWBE0ZiY/IhIWI0markC0LJWVZRkdHR0Apoe3ubm5kCQJZ8+eRU1NDR5++GGsW7dOW8zf7a9KRDRtZnmb6JZWly6VLSwsxObNm31LZWcmPqxWK06fPg2z2Yy2tjY88sgjAIC9e/fiiy++wNNPP42SkhKUlJTg5MmTgeNW5xpEh4E1xhugc1+52GEQLWmr1qXP+wxOq40FG2H733dpatv7ZLdwf6HCCQ8iEiaF3Sb1wTH5EZEYDc/zwhGf+RFRVGLlR0RCZo6ujDRMfkQkLBKHkJEYMxGRMFZ+RCRk+j0/DnuJKNpIkZn8OOwloqjEyo+IhEgAYln5ERFFBlZ+RCQoMld4MPkRkTCu7SWiqMNXXYgoakXg6jYmPyISFxOBw17O9hJRVGLlR0RCpg8nYuVHRFFH2+FFWiZF+vr6YLFYYDab0dLSMuu+2+2G3W6H2WxGZWUlRkZGAEyfB3zPPffg5ptvRn19vaaomfyISFgMJE1XIF6vF/X19WhtbYWiKOjs7MSxY8f82rS3tyMpKQnd3d2oqqpCY2MjACA+Ph7btm3D9u3bv0XMREQCJEwPe7VcgTgcDmRnZyMrKwtxcXEoKiryndo2o7e3F2VlZQAAi8WCgYEBqKqKZcuW4ZZbbkF8fLzmuJn8iEhYKIa9TqcTBoPB91mv18PpdM5qk5mZCWD6qMvExES4XK7vFDMnPIhowbhcLpSXl/s+22w22Gw2AMBcp+heXi1qaaMVkx8RCdP6nl9qauq85/YaDAaMjY35PjudTmRkZMxqMzo6CoPBAI/Hg4mJCaSkpHzHmEMg2AzNjP3792P16tU4fPhwKLolojAghWi212QyYWhoCMPDw3C73VAUBbIs+7WRZRkdHR0AgK6uLuTm5i5e5TczQ9PW1ga9Xg+r1QpZlrFy5Uq/dufOncNLL72Em266SbRLIlqCdDod6urqUF1dDa/Xi4qKChiNRjQ3NyMnJwf5+fmwWq2ora2F2WxGcnIympqafN+XZRnnzp3D5OQkDhw4gBdeeGFWHvLrTzTgS2doAPhmaC7vtLm5GdXV1XjhhRdEuySicCIBsVJo5k43bdqETZs2+f1s27Ztvj/Hx8fjqaeemvO7vb2936ov4Yi1zNB8+umnGBsbw+233y7aHRGFmZldXULxkvNCEk5+wWZfpqamsGPHDjz66KOiXRERhYxw8gs2Q3P+/HkcPXoU9957L2RZxj/+8Q888MADnPQgWkIkjf+FE+FnfpfO0Oj1eiiKgieffNJ3PzExER988IHv8z333IPt27fDZDKJdk1EYSH8hrRaCCc/LTM0RLR0RfVOzsFmaC710ksvhaJLIgojUgSulI28iImIQoDL24hIWNQOe4koeklh+A6fFkx+RCQs3F5j0YLJj4iETM/2Rt70AZMfEQmLxGFv5KVrIqIQYOVHRILCb+maFkx+RCQkUld4cNhLRFGJlR8RCYuVYhc7hG+NyY+IxEgSpAh81SXyIiYiCgEmPyISImH66EotVzDBToJ0u92w2+0wm82orKzEyMiI797u3bthNpthsVjw3nvvBe2LyY+IhEmSpOkKZOYkyNbWViiKgs7OThw7dsyvTXt7O5KSktDd3Y2qqio0NjYCAI4dOwZFUaAoClpbW/H444/D6/UG7I/Jj4gESYiRYjRdgVx6EmRcXJzvJMhL9fb2oqysDABgsVgwMDAAVVXR09ODoqIixMXFISsrC9nZ2XA4HAH7C9sJj+S05bjqqvTFDoNoSfvyyy+Ff0emPgu/fbhZU9uLFy+ivLzc99lms8FmswGY+yTIyxOY0+lEZmYmgOld5BMTE+FyueB0Ov3OBJ/rFMnLhW3yu/TcDyIKX88//3xIfk+wkyADtdHy3ctx2EtEYSHYSZAzbUZHRwEAHo8HExMTSElJ0fTdyzH5EVFYuPQkSLfbDUVRIMuyXxtZltHR0QEA6OrqQm5uLiRJgizLUBQFbrcbw8PDGBoawo033hiwv7Ad9hJRdNFyEqTVakVtbS3MZjOSk5PR1NQEADAajdi8eTMKCwsRGxuLuro6xMYGXnUiqXMNlomIljgOe4koKjH5EVFUWvLJ7/Tp09i6dSsKCgqwdetWnDlzZt62586dw8aNG1FfX7+AEfrTEu+RI0dgs9lQVFSE4uJivP322wsao8gSpIUWLNa2tjYUFhaiuLgYW7ZsCcl7byKCxTtj//79WL16NQ4fPryA0S0x6hLX0NCg7t69W1VVVd29e7e6c+fOedv+4Q9/UB9++GH18ccfX6jwZtES77///W/1+PHjqqqq6tjYmLphwwb1zJkzCxKfx+NR8/Pz1S+++EK9ePGiWlxcrH7++ed+bfbu3av+7ne/U1VVVTs7O9Vt27YtSGyX0xLrwMCAeuHCBVVVVfWvf/3rosWqqtriVVVVnZiYUO+66y61srJSdTgcixDp0rDkK7+enh6UlpYCAEpLS3HgwIE52w0ODuLkyZPYsGHDQoY3i5Z4r732WlxzzTUApt9kT0tLw6lTpxYkPpElSAtNS6y5ublISEgAAKxdu9bvXbGFpiVeAGhubkZ1dTXi4+MXIcqlY8knv5MnT/pedszIyJgzSUxNTaGhoQHbt29f6PBm0RLvpRwOByYnJ7FixYqFCG/OJUiXLyOabwnSQtMS66Vee+015OXlLURoc9IS76effoqxsTHcfvvtCx3ekrMk3vOrqqrCiRMnZv3cbrdr+v7LL7+MvLw83z/Y75tovDPGx8dRW1uLhoYGxMQszP/H5qrgtC5BWmjfJo4333wTg4OD2Lt37/cd1ryCxTs1NYUdO3Zgx44dCxnWkrUkkt+ePXvmvZeeno7x8XFkZGRgfHwcaWlps9p8/PHHOHjwIF555RWcP38ek5OTWLZsGR555JGwjBeYnpy5//77YbfbsXbt2u8lzrl8myVIBoPBbwnSQtO65On999/Hs88+i7179yIuLm4hQ/QTLN7z58/j6NGjuPfeewEA//nPf/DAAw/gmWeegclkWvB4I96iPnFcAH/+85/9JhAaGhoCtn/99dcXdcJDS7wXL15U7733XrWtrW2Bo1PVyclJVZZlv4fyR48e9Wtz+YTHr3/96wWPU1W1xfrJJ5+o+fn5vgmkxaQl3kvdfffdnPAQsOSf+dXU1KC/vx8FBQXo7+9HTU0NAODw4cN47LHHFjm62bTE+8477+Cjjz5CR0cHSkpKUFJSgiNHjixIfJcuQSosLMTmzZt9S5BmHs5brVacPn0aZrMZbW1t31sFHYpYd+7ciQsXLmDbtm0oKSnBL3/5y0WJVWu8FDpc3kZEUWnJV35ERHNh8iOiqMTkR0RRicmPiKISkx8RRSUmPyKKSkx+RBSV/h/2T+XHXLu5kQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rad=1\n",
"plt.imshow(psfok[cpix-1-rad:cpix+rad:5,cpix-1-rad:cpix+rad:5]*0.358,vmin=0.0,vmax=0.08 ,cmap=cmap)\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create PSF fits fileĀ¶\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"stackhd[0].data=psfok\n",
"stackhd.writeto('dmu18_PACS_100_PSF_GAMA12_20190228_sr.fits',output_verify='fix+warn', overwrite=True)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1833.796852026324"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.max(psfok)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [],
"source": [
"#plt.hist(psfok.flatten(),bins=np.arange(-0.01,0.05,0.0005));\n",
"#plt.yscale('log')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"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(1500,2000,5));\n",
"plt.yscale('log')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"484"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(psfok.flatten())"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.mean(~np.isnan(psfok))"
]
},
{
"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.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}