{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>.container { width:100% !important; }</style>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from __future__ import print_function, division, absolute_import, unicode_literals\n",
    "\n",
    "import numpy as np\n",
    "from astropy.io import fits\n",
    "import h5py\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "import seaborn as sns\n",
    "sns.set_context('notebook')\n",
    "sns.set_style('ticks')\n",
    "\n",
    "from IPython.core.display import display, HTML\n",
    "display(HTML(\"<style>.container { width:100% !important; }</style>\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "im_orig_psf = fits.getdata('/Volumes/astro/refreg/data/COSMOS/subaru/matched_psf/rp/subaru_rp_matched-psf_078_sci_20.fits')\n",
    "im_orig_psf = im_orig_psf[np.isfinite(im_orig_psf)]\n",
    "im_match_psf = fits.getdata('/Volumes/astro/refreg/data/COSMOS/subaru/original_psf/rp/subaru_rp_078_sci_20.fits')\n",
    "im_match_psf = im_match_psf[np.isfinite(im_match_psf)]\n",
    "cat_match_psf = fits.getdata('/Volumes/astro/refreg/data/COSMOS/subaru/matched_psf/rp/subaru_rp_matched-psf_078_sci_20.sexcat', ext=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x11c3c5250>"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n+uc//1lln549e9om5Q4ePFjr+lA31DjoHjhwQHfffXeFhdmFhYVKSUnRY489poiICMXExGjcuHFa\ntmyZXb/8/HxlZ2erY8eONS0BAIB6a/DgwWrWrJneeust2y4BlSkqKtIzzzxjWx9bE+Uzxrt27apw\n7uTJk384fk188sknKioq0kMPPaTRo0erffv2toD+3XffSXIuqNZW+dKM9evXV7oNWrnymn4/a476\nq8ZBNz09XVFRUVqxYoXdP6yZmZkqLS21WwcUGRlpWx9UbseOHbr++utrOjwAAPVaixYtNHv2bBUU\nFGj06NHauXNnhT4///yzxowZo0OHDik2NlZRUVE1Gqtr16666qqrtGnTJn3++ee29rKyMs2bN09n\nz56t8euojNFolNVq1U8//WTX/uuvv2rOnDmSVKsxHX0UcrmQkBCZzWbl5eVp4sSJOnHiRIU+33//\nvZYuXarg4GD96U9/qnFtqFtqvEa3qi1BcnJyFBwcbLcvXcuWLVVcXKy8vDzbIvrDhw87tIAeANCw\nFBSVeLqESrmjrltvvVXPP/+8EhMTFRsbq8jISHXp0kW+vr46ePCgtmzZopKSEt133336+9//Xqux\n5syZo1GjRunBBx9UTEyM2rRpo23btunIkSMKCAhwadi95ZZbFBwcrBUrVuiXX35R+/btlZubq7S0\nNBUVFalx48Y6deqUysrKKv3BWHVqMhs8a9YsHT16VFu2bFF0dLSuv/56tWvXTmVlZfr+++/1v//9\nT4GBgXrllVdkMpmcvj/qJpfvulBYWFhh/VD5cfmvMSXpvvvuq/EY2dnZysnJqfRcSUlJpX9opne6\nR2ePZjs91sVDB2jiq1Odvg4AUDORsa96uoQLasCAAbr22mu1YsUKpaWladWqVbJYLGrTpo2GDRum\nP//5z1VuXVX+Iy9HznXt2lXLly/Xc889py+++EIlJSWKjIzUvHnzNHLkSJWWljp87+qEhIRo6dKl\nevbZZ/XNN98oPT1drVu31s0336z7779fycnJevfdd7Vlyxb17dvX6fFqUpvJZNKbb76pDz/8UGvX\nrtXevXu1detWGQwGtWnTRiNHjtTo0aMVGhrq9OtFzZSWlmrv3r1Vng8JCan152GwumCRTEREhJYu\nXaqePXtq7dq1mjNnjt1TWQ4cOCCz2axt27bZtiCpjRdffFELFiyo8nzTpk0r7Ms7qcUtMuXlOj2W\n/239NfMjHgcIAO5UUFSiDne+5OkyHLZv1QSZjP6eLsNhFotF2dnZatOmTYXJoOLiYvXo0UOXX365\nPvjgAw9ViIYmOjpaJ0+e1MmTJ6vsEx8fr4kTJ9ZqHJfP6IaFhSk/P9/u64jc3FwZjUaXhFzp3NNN\nzt/w+nzjx4//w69BAu4Zpst6d6p2jJ2vrpRpX9V/ywAAuE5ggJ/2rao/u/AEBtSvB4sWFRWpf//+\nioiI0MqVK+Xr62s7t3jxYpWWlvK7GVxwQUFBWrJkSZXnq9oOzxku/5PaoUMH+fn5adeuXerRo4ek\ncz8869Sp+nDpqNDQ0Cqnsv39//hv2N2iIzVwnLnaMfZ/9JlKCboAcEEYDIZ6NUNa3zRt2lSDBg3S\ne++9p0GDBqlPnz7y9fXVnj17lJ6erksuuYTtPnHB+fr6un33LZcHXaPRqMGDB2vmzJmaO3eujh07\npuTkZM2bN8/VQwEAAAfNnTtX3bt313//+1+99957Ki4uVuvWrXX//ffrgQcecPhRxEB94pKg+/sF\n4YmJiZo9e7ZGjRqlJk2aKCEhgSeMAADgQT4+Pho+fLiGDx/u6VKAC8YlQXffvn12x0ajUUlJSUpK\nSnLF7auVmpqq1NRUSefWA7MtCAAAQN1WUFCguLg427HZbJbZXP3yUmfUr9X0VTj/jYmOjvZwNQAA\nAKiOyWTSwoUL3TpGjZ+MBgAAANRlBF0AAAB4JYIuAAAAvBJBFwAAAF7JK36Mxq4LAAAA9Qu7LjiI\nXRcAoH6zWq0qKSj0dBkO8zcFVthDHoBzLsSuC14RdAEA9VtJQaEeb9zb02U4bMbpbWoUxLeHQF3H\nGl0AADxg1apVioiIUGJi4h/2mzZtmiIiIrR69eoLVJn3iYiI0M033+zRGlauXKmIiAgtWLCg2r6J\niYmKiIio8J+OHTuqZ8+euvvuu5WcnKySkpIK15aVlWnlypUaNWqUoqKi1LlzZ/Xp00dxcXH68MMP\nKx1vxIgRlY53/n86dOigDRs21Pp9uNCY0QUA1CnTjm1So6BAT5dRgeVMoeaF3XzBxzUYDCyTqKX4\n+Hg1adLE02U49TkaDAZFR0crIiLC1lZWVqaTJ09q48aNmj9/vrZu3arXXnvNdt5isei+++7T9u3b\nddVVV6l///4KDg5Wdna2Pv30U23atEkffPCBFixYID8/vwrjDRkyROHh4VXWdPnllzvxausGgi4A\noE5pFBTIsgC4VHx8vKdLkHRuLbozYmJiNGTIkArtkydP1rBhw7R582Z99NFHuv322yVJixcv1vbt\n2/XAAw9o0qRJdtcUFhbqwQcf1Keffqo33nhD9913X4X7Dh06VD179nSqxrqOpQsAAAD1SGBgoEaO\nHCmr1aqNGzfa2jds2CCDwaCxY8dWes1jjz0mq9WqNWvWXMhyPYoZXQAA6qHi4mL9+9//1po1a3Tk\nyBEFBASoU6dOGj16tG666Sa7vhEREYqJiVF8fLyefvppffXVV/L19dV1112nf/7zn2rWrJkWLFig\nDz74QPn5+br00kv14IMP6rbbbrO7T1lZmd566y2tWrVKBw8elI+Pj66++mrFxsZq8ODBFWrcuXOn\nXnrpJe3evVtnz55V79699cgjj+iBBx5QWVlZhTWfH330kZYtW6bMzExZrVZdeeWVGj58uIYNG2bX\nb8SIEdq7d682bdqk5557TuvXr1deXp7Cw8N155136v7775ePz29zeREREWrdurU2bdpkO/4j4eHh\ndrVlZ2fr5Zdf1meffaacnBwFBwerT58+io+Pr/Sr/uXLl2v58uX64Ycf1KJFC/35z39W8+bN/3BM\nZ1100UWSpLy8PFtb+Zrdffv2KSoqqsI1V199tZ5//nm1atXKpbXUZV4RdNlHFwDQkJw+fVr33nuv\nMjMzddVVV2n48OE6efKk0tLS9OCDDyohIUHjx4+3u+bgwYOKjY1Vt27dFBsbq/T0dH3yySf65Zdf\n1LhxY/3www+Kjo6WxWLR6tWrNWnSJIWFhalHjx6SzoWouLg4bdmyRW3bttWdd96pkpISbdq0SVOn\nTtX27ds1Z84c23ibNm3SxIkT5ePjowEDBqhVq1Zav3697rnnHlmt1gprZufMmaNly5apTZs2GjRo\nkAIDA5WWlqbHHntMu3btsru3JJWWlmrEiBH69ddfFR0dLV9fX3344Yd69tlnlZeXp2nTplX5/lW1\nlOGDDz7QkSNHdO2119raDhw4oJEjRyovL0833nij7rjjDmVlZemDDz5QWlqa3njjDbvgPHv2bL39\n9ttq06aNhg0bpl9//VWLFi1SkyZNXLrW+tChQ5Kk1q1b29r69u2rb7/9VhMnTtRf//pX9e/fX9dc\nc43duAMGDHBZDbXFProOYh9dAEB9lZmZ+Ye/xN+3b1+FtqeeekqZmZm6++67NWvWLNvsZVZWlu69\n91698MILuu6669S9e3fbNYcOHdKYMWM0ZcoUSdLZs2cVExOj3bt369JLL9WHH35omyjq1KmTZsyY\nodWrV9uCbnJysrZs2aJbbrlFzz77rIxGo6RzM4pjxozRu+++q6ioKN1xxx0qLi7WjBkzZDAY9NZb\nb6lTp06SpISEBI0YMULffPONXdBNS0vTsmXLFBUVpYULFyogIEDSubWocXFxevfdd9W3b1+7kFZc\nXCyTyaQVK1bYarn33ntlNpu1YsUKPfLII/L19a30Pa0s6Kampurw4cPq3LmznnjiCVv7I488ovz8\nfC1cuFA33nijrT09PV2jR4/WlClT9P7770uSvvrqK7399tvq0qWLXn/9dTVu3FiSlJGRob/+9a+V\n1lITJ06cUHJysgwGg2699VZb+4QJE/T1119rx44dWrRokS1gd+/eXVFRUYqJidHFF19c5X3/+9//\natu2bZWeGzp0qNq0aeOy1yCxjy4AAF4vMzNTmZmZDvcvKSnR+++/r2bNmumxxx6z+4q+bdu2evjh\nhzVt2jS98847dkFXksaNG2f7335+furSpYuOHTumESNG2H0bGhkZKelccC737rvvytfXV48//rgt\nWEpS8+bN9eijj2rEiBFavny57rjjDn3++efKzs7W8OHDbSFXkgICAjRlyhTde++9dnUtX75cBoNB\niYmJtpBbXuM//vEPbd68WStXrrQLuuVrUc+v5bLLLtMVV1yh7777Trm5uQoLC3PoPf3qq680ffp0\ntW7dWi+99JIaNWokSdq9e7cyMjLUv39/u5ArSb169VK/fv20YcMGff311+ratatWr14tg8Gg+Ph4\nW8iVpGuuuUbDhw/XG2+84VA95datW2f3GZSWluro0aNKS0vTyZMnNWTIEPXp08d2PjAwUEuXLtXq\n1av17rvvaufOnTp9+rQ+//xzffbZZ3ryySd111136dFHH1VgoP3OJlar9Q+3sOvdu7fLg+6FQNAF\nAMCDhgwZoqSkpCrPJyYm2gWQH374QYWFhbr22mttgex85V+7Z2Rk2LU3adJELVq0sGsLCgqSpAqz\nfOXhsbi4WNK5r5gPHz6syy+/XCEhIRXG7NGjh3x9fW2zz7t375bBYFC3bt0q9O3evXuFmdY9e/ZI\nktasWaNPPvnE7lxpaakMBkOF1yNJ7dq1q9DWtGlTSee22nLEjz/+qAkTJsjX11cvvfSSQkNDbed2\n794t6dwMamWz7r/++qusVqv27t2rrl272v7C0rlz5wp9e/TooSVLljhUk3QueKalpSktLc3W5uvr\nq2bNmqljx44aNGhQpTsySOf+mRoyZIhOnz6tL7/8Utu2bdOnn36qgwcPKiUlRbm5uRVmUg0Gg5Yu\nXWq3bMMbEHQBAKhHTp06JUlV7gtbPotZWGj/SOU/+v1KZYHZmTF9fX3VokULnThxQtJvP5CqLBSX\n9z3fyZMnJekPv8Yu73O+82d/a+L06dN68MEHlZ+fr2effVYdO3asdMwvv/xSX375ZaX3MBgMtn6/\n/vqrJNnN5pYLDg52qjaDwaCkpKQqw6wjGjdurJtuukk33XSTpkyZoo8//lhTpkzRp59+qn379qlD\nhw52/Z3d/qw+IOgCAFCPlIeoY8eOVXq+PHQ5G6xqM6bVatXp06dtY5bPFJcH5N8rKCiwC9dBQUGy\nWCzauXOny2quTmlpqf72t7/p0KFDmjBhgt1a1/Prks6tFT5/2UdVmjdvriNHjujUqVMVwnxBQYFr\nCq/Chg0bNGfOHA0bNkwTJkyotM+AAQO0ZcsWrVy5UgcPHqwQdL0R++gCAFCPXH755QoMDNS3335b\naZD84osvJJ3bSspVgoKCdOmllyo7O1tHjhypcP7rr79WYWGh2rdvL+ncV/dWq1W7du2q0Pf777/X\nmTNn7No6dOigoqIifffddxX6Hz9+XHPnztXKlStd9GrOmT17trZu3apbb721yl0YyoPgN998U+n5\nlStX6sUXX9QPP/wgSbb1yDt27KjQ9+uvv3ZB1VULCQnRL7/84vAeuY6uX67vCLoAANQjfn5+Gjhw\noE6fPq25c+eqtLTUdi4rK0vPPvus7XGurnTXXXeprKxMs2fPtlsWkZeXp//7v/+TwWDQnXfeKUnq\n16+fWrRooZSUFLtdI4qLizV//vwK9x42bJisVqtmz56t06dP29qtVqueeOIJvfnmm7bttFwhOTlZ\n77zzjrp27ap58+ZV2S8yMlKXX3651q1bp48//tju3O7du/XEE09o8eLFatasme11GAwGvfDCC8rN\nzbX1PXjwoP7zn/+49VHOXbp0UWRkpA4cOKBp06ZV+MuEJG3fvl0ffPCBrrjiCq9bi1sVli4AAOoU\ny5nC6jt5QF2qa8qUKfr666+1evVq7dmzR71799apU6eUlpam06dPKz4+3uVBZuzYsfriiy+0detW\nmc1m3XjjjTp79qw2btyo48ePa+jQoRo4cKCkcz9me/zxx5WQkKB77rlHf/rTnxQcHKzPP//cFmTP\n/0Ga2WzW5s2b9d577+m2227TzTffrMaNG2vz5s3av3+/OnXqpIceesglr2PHjh166qmn5Ovrq+uv\nv15vvPFGpT9cK99O61//+pfGjBmjhIQE3XDDDWrfvr2OHTumdevW6ezZs0pKSrI9DCIiIkLx8fF6\n8cUXNWTIENu+xJ988olatWplW8PrLs8//7zGjBmj9957Txs3btQNN9ygtm3bqqSkRHv27NGOHTvU\nqlUrvfDCC26toy4h6AIA6pR5YTd7uoQLxmAw1GiWr3Hjxlq+fLkWL16sNWvWaOXKlTKZTIqMjNTI\nkSN1/fXXVzpWbWrz8/PTa6+9pmXLlum9997T6tWr5e/vr/bt22v69Om6/fbb7a6PiYnR66+/rpdf\nfllpaWny8fHRDTfcoAkTJtgeCHG+efPm6brrrtM777yjjz76SFar1bZd2r333mtbL+vI66nsXHnb\njz/+KKvVKqvV+oc/fivfTuuaa67RqlWrtHDhQm3evFnbt29X8+bN1adPH40bN862z3C5hx56SO3a\ntdOSJUv0/vvvq3HjxoqNjVXPnj0VFxfn1lndVq1aafXq1UpJSdH69ev15ZdfasOGDfL399cll1yi\nCRMmaPTo0ZX+WM6ddXmSweplP7Erf2DE7x8rOKnFLTLl5ar3a0kaOK76p27M7J+g0nVp8r+tv2Z+\n9LRbagUAnGM5U6DHG/f2dBkOm3F6mxoF8RTOqpw5c0anTp1SWFhYhQB1+PBhDRgwQDfffLPbHxaA\nuquqvOZqzOgCADzO3xSoGacrfyJTXeRvCqy+UwP2448/asiQIerXr59efvllu3OvvfaaDAZDpbPO\ngKsRdAEAHmcwGJgh9SIRERHq2bOnNm7cqD//+c+69tprZbVatX37du3du1fdunVTbGysp8tEA0DQ\nBQAALle+nvfDDz9USkqKysrK1LZtW/3973/XmDFj5O/v7+kS0QAQdAEAgMsZjUaNGzfOoQctAO7i\nFUE3NTVVqampkqTc3Nw/fMwhAAAAPK+goEBxcXG2Y7PZLLO5+g0DnOEVQff8N6b8V3wAAACou0wm\nk9t33uDJaAAAAPBKBF0AAAB4JYIuAAAAvBJBFwAAAF6JoAsAAACv5LGg+9JLL+mee+7RsGHDtHHj\n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\nukREREQkSf8HNl1V+7OwGuoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11c3c5110>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(im_orig_psf, bins=50, range=(0, 5000), log=True, histtype='step', linewidth=1.5, color=sns.xkcd_rgb['cobalt'], label='Original PSF')\n",
    "plt.hist(im_match_psf, bins=50, range=(0, 5000), log=True, histtype='step', linewidth=1.5, color=sns.xkcd_rgb['bordeaux'], label='Homogenized PSF')\n",
    "plt.xlim(-50, 5000)\n",
    "plt.ylim(1e-1, 5e7)\n",
    "plt.xlabel('Pixel values in $r+$-band [nJy or $e^-$]', fontsize=15)\n",
    "plt.legend(loc='upper right', fontsize=15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1129bf710>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArgAAAIBCAYAAACiBcySAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xlc1VX+x/H3BdlEzQWuW5tihluCuJZLImqWmluajZaW\nYsriTKOlaZla6kRZJi6NY9pgCyZlqTVNqVlqJRIiuUw/NUcxWW65ocAluL8/fHinG2BcwAt+eT0f\njx7G95zv93y+J+y+OZz7vSabzWYTAAAAYBBulV0AAAAAUJEIuAAAADAUAi4AAAAMhYALAAAAQyHg\nAgAAwFAIuAAAADAUAi4AAAAMhYALAAAAQ6k2ATczM1NLly5VZmZmZZdyXWHenMeclQ3z5jzmrGyY\nN+cxZ2XDvDmvoubM6YB74sQJPfbYYwoODlZoaKhWr15tb0tLS9P48eMVHBysgQMHateuXQ7n7t69\nW4MGDVJQUJDGjRunkydPOrSvXbtWPXv2VEhIiGbNmqW8vLwy3lZRWVlZio2NVVZWVoVdszpg3pzH\nnJUN8+Y85qxsmDfnMWdlw7w5r6LmzKmAa7PZFB4eLj8/P3344Yd67rnntGLFCm3ZskWSNGXKFJnN\nZiUkJGjw4MGKjIxUenq6JOn06dOKiIjQ8OHDlZCQoHr16ikiIsJ+7U8//VTLly/X/Pnz9eabbyol\nJUUxMTHlujkAAABUP04FXIvFotatW2vOnDm6+eab1bNnT3Xr1k1JSUn65ptvlJaWpnnz5ql58+YK\nDw9XUFCQNmzYIElav3692rVrp3HjxikgIEALFy7UqVOnlJiYKEmKi4vTI488ol69eqlt27aaO3eu\nNmzYUKGruAAAADA+pwKuv7+/Fi9erJo1a0qSkpKStHfvXnXu3FkpKSlq06aNvLy87P1DQkK0b98+\nSdL+/fvVqVMne5u3t7dat26t5ORkFRYWKjU1VR07drS3BwUFKT8/X4cPHy7XDQIAAKB6KfObzEJD\nQzVmzBgFBQWpX79+ysrKktlsdujToEEDZWRkSLq8afj37X5+fsrIyND58+eVl5fn0O7u7q66deva\ntzgAAAAApVHmgLt06VKtXLlShw8f1oIFC5STkyNPT0+HPp6enrJarZKk3NzcEttzc3PtX5d0PgAA\nAFAaNcp6Yps2bSRJM2bM0LRp0zRixAidP3/eoY/VapW3t7ckycvLq0hYtVqtqlOnjj3YFtfu4+NT\n6poyMzNLfNfdQw89JEmaPHmyPDw8Sn3N6i4/P18S8+YM5qxsmDfnMWdlw7w5jzkrG+bNeVd+83/0\n6NES+/j7+xfZFfB7TgXcn3/+WcnJyQoLC7Mfa9GihfLz8+Xv71+kGIvFIn9/f0lSw4YNi4RPi8Wi\nVq1aqV69evLy8pLFYlGzZs0kSQUFBTp79qz9/NKIj49XbGzsVfu4uVWbR/9WCDc3N9WpU4d5cwJz\nVjbMm/OYs7Jh3pzHnJUN8+a8wsJCmUwmTZ8+vcQ+kZGRioqKuup1nAq4aWlpioqK0pdffmkPnqmp\nqWrQoIFCQkK0evVqWa1W+4psUlKS/Y1j7du313fffWe/Vk5Ojg4ePKjo6GiZTCa1a9dOSUlJ9jei\nJScny8PDQ4GBgaWub9SoUQoNDS22bfLkyXJzc9MXX3zhzC0DAADARfr06aOCggItW7asxD6lWfx0\nKuC2a9dObdu21cyZMzVz5kylpaXppZde0uTJk9WpUyc1btxYM2bM0JQpU7Rt2zalpqZq0aJFkqTh\nw4frjTfe0KpVq9S7d2/Fxsbqpptusgfahx56SHPmzFGLFi1kNps1d+5cjRw50uGpDH/EbDaXuGTN\nrwYAAACqPnd3d/tW2LIy2Ww2mzMnZGVlaf78+fr666/l4+OjMWPGKDw8XJJ08uRJPf3009q/f79u\nvvlmzZo1S127drWf+9VXX+mFF15QRkaGOnTooHnz5qlp06b29lWrVmnt2rXKz89X//799cwzzxR5\n41lZ9enTR5K0devWCrkeAAAAKlZF5TWnA+71ioALAABQtVVUXmPXMwAAAAyFgAsAAABDIeACAADA\nUAi4AAAAMBQCLgAAAAyFgAsAAABDIeACAADAUAi4AAAAMBQCLgAAAAyFgAsAAABDIeACAADAUGpU\ndgEAAOD6l51hUdqe7ytlbA9fHwWEdqmUsVE1EXCdZLPZlH8pp7LLKDWPmj4ymUyVXQYAwODSEg9o\n3eCoShnbr+Wt+vN/NlXK2KiaCLhOyr+Uo3m1rp+fEp/N/laevjUruwwAQDXhUdNHDdu2cMlYeRcu\nKuvQMZeMhesLARd/6IMPPtDMmTM1dOhQLVy4sMR+M2bM0MaNG7Vo0SINGTLEhRUaR2BgoBo1aqQv\nvvii0mp477339MwzzygyMlKRkZFX7Ttz5kx98MEHRY67u7urZs2aatasmQYMGKAxY8bIw8PDoU9h\nYaESEhK0efNm/fDDD8rOztYNN9ygtm3batCgQbrvvvuKXHfs2LFKTEy8ak0mk0mxsbHq06dPKe4W\nQEVr2LaFHv/2bZeMdXznd/pHj0dcMhauLwTccpiR8YU8fX0qu4wirBdztKjh3S4f12QysR2inCIj\nI1W7du3KLsOp/44mk0l9+vRRYGCg/VhhYaHOnz+v7du3629/+5t2796tVatW2dutVqsee+wxJSYm\n6rbbblO/fv1Ut25dZWZmaseOHfriiy+0adMmxcbGqkaNGkXGGzJkiJo2bVpiTc2bN3fibgEARkPA\nLQdPXx9+/Y8K9Ucrpq5is9mc6h8WFlbsqv1f//pXjRgxQjt37tTHH3+se++9V5K0evVqJSYmKjw8\nXE888YTDOTk5OZo0aZJ27NihN998U4899liR6w4bNkydOnVyqkYAQPXBY8IAXDM+Pj56+OGHZbPZ\ntH37dvvxrVu3ymQy6dFHHy32nNmzZ8tms+mTTz5xZbkAAINgBRfXXF5env7xj3/ok08+0YkTJ+Tl\n5aW2bdtq3Lhx6tWrl0PfwMBAhYWFKTIyUi+//LK+++47ubu7q2vXrnrmmWd0ww03KDY2Vps2bdLZ\ns2d1yy23aNKkSRowYIDDdQoLC/XWW2/pgw8+0LFjx+Tm5qaWLVtq9OjRuv/++4vUmJycrGXLlik1\nNVW//vqrunTpounTpys8PFyFhYXaunWrQ/+PP/5Y69at0+HDh2Wz2dSiRQuNGjVKI0aMcOg3duxY\nHThwQF988YVeffVVff755zpz5oyaNm2qoUOHauLEiXJz+9/Pmb/fg/vbX/sXp2nTpg61ZWZmavny\n5fryyy+VlZWlunXrqnv37oqMjCz2V/rvvvuu3n33XR0/flz169fXAw88oHr16l11TGc1btxYknTm\nzBn7sfz8fEnSoUOH1K1btyLntGzZUkuWLJGfn1+F1gIAqB4IuLimsrOzNWbMGB0+fFi33XabRo0a\npfPnz2vbtm2aNGmSpk6dqsmTJzucc+zYMY0ePVpBQUEaPXq09uzZo3//+986ffq0atWqpePHj6tP\nnz6yWq3auHGjnnjiCTVs2FAdOnSQdDk8Pf7449q1a5duvPFGDR06VPn5+friiy/01FNPKTExUc8/\n/7x9vC+++EJRUVFyc3NT//795efnp88//1wPPvigbDZbkT2xzz//vNatW6cmTZpo8ODB8vHx0bZt\n2zR79mzt27fP4dqSVFBQoLFjx+rcuXPq06eP3N3dtWXLFr3yyis6c+aMZsyYUeL8lbRlYdOmTTpx\n4oQ6duxoP3b06FE9/PDDOnPmjHr27Kn77rtPaWlp2rRpk7Zt26Y333zTITDPnTtX77zzjpo0aaIR\nI0bo3Llzev3111W7du0K3Uv9448/SpIaNWpkP9ajRw/95z//UVRUlP70pz+pX79+at26tcO4/fv3\nr7AaAADVCwEXpXb48GHFxsaW2H7o0KEix2JiYnT48GGNHDlSzz33nH21Mi0tTWPGjNFrr72mrl27\nKjg42H7Ojz/+qPHjx+vJJ5+UJP36668KCwtTamqqbrnlFm3ZskU1a17e+9y2bVs9++yz2rhxoz3g\nrlmzRrt27VLv3r31yiuvyNvbW9LlFcTx48crISFB3bp103333ae8vDw9++yzMplMeuutt9S2bVtJ\n0tSpUzV27Fjt37/fIeBu27ZN69atU7du3bRy5Up5eXlJurzX9PHHH1dCQoJ69OjhEM7y8vJUs2ZN\nxcfH22sZM2aMBg4cqPj4eE2fPl3u7u7FzmlxAXfz5s3673//q3bt2mn+/Pn249OnT9fZs2e1cuVK\n9ezZ0358z549GjdunJ588kl99NFHkqTvvvtO77zzju644w698cYbqlWrliTp4MGD+tOf/lRsLWXx\nyy+/aM2aNTKZTLrnnnvsxyMiIpSSkqK9e/fq9ddftwfr4OBgdevWTWFhYbrppptKvO7777+vb7/9\ntti2YcOGqUmTJhV2DwCA6w8BF6V2+PBhHT58uNT98/Pz9dFHH+mGG27Q7NmzHX4Vf+ONN+rPf/6z\nZsyYofXr1zsEXEmaMGGC/d9r1KihO+64QxkZGRo7dqw93EpSSEiIpMuB+YqEhAS5u7tr3rx59kAp\nSfXq1dOsWbM0duxYvfvuu7rvvvv01VdfKTMzU6NGjbKHW0ny8vLSk08+qTFjxjjU9e6778pkMmnm\nzJn2cHulxmnTpmnnzp167733HALulb2mv63l1ltvVUBAgH744QdZLBY1bNiwVHP63Xff6emnn1aj\nRo20bNkyeXp6SpJSU1N18OBB9evXzyHcSlLnzp0VGhqqrVu3KiUlRe3bt9fGjRtlMpkUGRlpD7eS\n1Lp1a40aNUpvvvlmqeq54rPPPnP4b1BQUKD09HRt27ZN58+f15AhQ9S9e3d7u4+Pj+Li4rRx40Yl\nJCQoOTlZ2dnZ+uqrr/Tll1/qxRdf1PDhwzVr1iz5+Dg+qcRms2njxo0l1tKlSxcCLgBUcwRclNqQ\nIUOu+hzcmTNnOgSP48ePKycnRx07drQHsd+68uv1gwcPOhyvXbu26tev73DM19dXkoqs6l0JjXl5\neZKkS5cu6b///a+aN28uf3//ImN26NBB7u7u9tXm1NRUmUwmBQUFFekbHBxcZGX1++8vfwzlJ598\non//+98ObQUFBTKZTEXuR5KaNWtW5FidOnUkXX5kVmmcPHlSERERcnd317Jly2Q2m+1tqampki6v\nmBa3yn7u3DnZbDYdOHBA7du3t/+g0q5duyJ9O3TooLVr15aqJuly4Ny2bZu2bdtmP+bu7q4bbrhB\nbdq00eDBg0t8LvKQIUM0ZMgQZWdnKykpSd9++6127NihY8eOacOGDbJYLFq5cqXDOSaTSXFxcQ7b\nMwAA+C0CLq6ZCxcuSFKJz3W9smqZk+P40ce/XaH9veKCsjNjuru7q379+vrll18k/e+NT8WF4St9\nf+v8+fOSVCR0Fdfnt3672lsW2dnZmjRpks6ePatXXnlFbdq0KXbMpKQkJSUlFXsNk8lk73fu3DlJ\ncli9vaJu3bpO1WYymbRw4cJyfbhHrVq11KtXL/Xq1UtPPvmkPv30Uz355JPasWOHDh06pFatWjn0\nd/YxZgCA6oWAi2vmSnjKyMgotv1K2HI2UJVnTJvNpuzsbPuYV1aGrwTj37t06ZJDqPb19ZXValVy\ncnKF1fxHCgoKFB0drR9//FEREREOe1l/W5d0eS/wb7d3lKRevXo6ceKELly4UCTEX7p0qWIKL8HW\nrVv1/PPPa8SIEYqIiCi2T//+/bVr1y699957OnbsWJGACwDA1fAcXFwzzZs3l4+Pj/7zn/8UGyC/\n+eYbSZcfCVVRfH19dcsttygzM1MnTpwo0p6SkqKcnBzdfvvtki7/it5ms2nfvn1F+v7f//2fLl68\n6HCsVatWys3N1Q8//FCk/88//6wFCxbovffeq6C7uWzu3LnavXu37rnnnhKfqnAlAO7fv7/Y9vfe\ne09Lly7V8ePHJcm+33jv3r1F+qakpFRA1SXz9/fX6dOnS/2M29LuTwYA4AoCLq6ZGjVqaNCgQcrO\nztaCBQtUUFBgb0tLS9Mrr7xi/9jVijR8+HAVFhZq7ty5Dtsfzpw5oxdeeEEmk0lDhw6VJIWGhqp+\n/frasGGDw1Mg8vLy9Le//a3ItUeMGCGbzaa5c+cqOzvbftxms2n+/Pn65z//aX8sVkVYs2aN1q9f\nr/bt22vRokUl9gsJCVHz5s312Wef6dNPP3VoS01N1fz587V69WrdcMMN9vswmUx67bXXZLFY7H2P\nHTumt99++5p+5PIdd9yhkJAQHT16VDNmzCjyQ4QkJSYmatOmTQoICGCvLQDAaWxRKAfrxZw/7lQJ\nqlJdTz75pFJSUrRx40Z9//336tKliy5cuKBt27YpOztbkZGRFR5gHn30UX3zzTfavXu3Bg4cqJ49\ne+rXX3/V9u3b9fPPP2vYsGEaNGiQpMtvUps3b56mTp2qBx98UH379lXdunX11Vdf2QPsb99oNnDg\nQO3cuVMffvihBgwYoLvvvlu1atXSzp07deTIEbVt21ZTpkypkPvYu3evYmJi5O7urjvvvFNvvvlm\nsW9Iu/JYrJdeeknjx4/X1KlTddddd+n2229XRkaGPvvsM/36669auHCh/UMcAgMDFRkZqaVLl2rI\nkCH25wr/+9//lp+fn32P7rWyZMkSjR8/Xh9++KG2b9+uu+66SzfeeKPy8/P1/fffa+/evfLz89Nr\nr712TesAABgTAbccFjW8u7JLcBmTyVSmVb1atWrp3Xff1erVq/XJJ5/ovffeU82aNRUSEqKHH35Y\nd955Z7Fjlae2GjVqaNWqVVq3bp0+/PBDbdy4UR4eHrr99tv19NNP695773U4PywsTG+88YaWL1+u\nbdu2yc3NTXfddZciIiLsH+TwW4sWLVLXrl21fv16ffzxx7LZbPbHno0ZM8a+H7Y091Nc25VjJ0+e\nlM1mk81mu+qb2q48Fqt169b64IMPtHLlSu3cuVOJiYmqV6+eunfvrgkTJtifE3zFlClT1KxZM61d\nu1YfffSRatWqpdGjR6tTp056/PHHr+kqrp+fnzZu3KgNGzbo888/V1JSkrZu3SoPDw/dfPPNioiI\n0Lhx44p9E9y1rAsAYAwmWzV5O3KfPn0kqchHrjrLevGS5tXqUhElucSz2d/K07fkpxJUdxcvXtSF\nCxfUsGHDIsHpv//9r/r376+77777qgETACAd3rxD6wZF6sbO7fT4t2+7ZMzjO7/TP3o8Ir+Wt+rP\n/9nkkjFxbVVUXmMF10keNX30bHbxn6BUFXnU9PnjTtXYyZMnNWTIEIWGhmr58uUObatWrZLJZCp2\nlRkAAFRdBFwnmUwmVkQNJDAwUJ06ddL27dv1wAMPqGPHjrLZbEpMTNSBAwcUFBSk0aNHV3aZAOCU\nY18kavcr/3TpmNnpP7t0POBqCLio9q7s192yZYs2bNigwsJC3XjjjfrLX/6i8ePHy8PDo7JLBACn\nnE9L1+GPvqjsMoBKQ8BFteft7a0JEyaU6gMSAOB6Ym4doDv/MtalY/r613PpeEBxCLgAABhUnRsb\nquOE4ZVdBuByfNADAAAADIWACwAAAEMh4AIAAMBQCLgAAAAwFAIuAAAADIWACwAAAEMh4AIAAMBQ\nCLgAAAAwFAIuAAAADIWACwAAAEMh4AIAAMBQCLgAAAAwFAIuAAAADIWACwAAAEMh4AIAAMBQCLgA\nAAAwFAIuAAAADIWACwAAAEMh4AIAAMBQCLgAAAAwFAIuAAAADIWACwAAAEMh4AIAAMBQCLgAAAAw\nFKcDbkZGhqKjo9WlSxf16tVLixYtktVqlSQ9//zzCgwMVKtWrex/vvXWW/ZzN2/erL59+yo4OFiR\nkZE6c+aMw7VfeukldevWTV26dFFMTEw5bw0AAADVUQ1nT4iOjlbdunX19ttv6+zZs3r66afl7u6u\n6dOn69ixY5o2bZqGDh1q71+rVi1J0v79+zV79mzNmzdPgYGBmj9/vmbOnKmVK1dKkt544w1t2bJF\ny5cvV35+vqZNmyY/Pz+NHz++gm4VAAAA1YFTK7jHjh3T/v37tXDhQgUEBCgkJETR0dHavHmzJOno\n0aNq3bq1GjRoYP/Hy8tLkvTWW29pwIABGjx4sFq2bKmYmBjt2LFDp06dkiTFxcVp6tSpCg4OVufO\nnTVt2jStW7eugm8XAAAARufUCq6/v79WrVql+vXr24/ZbDZduHBB2dnZysjI0K233lrsufv27dOk\nSZPsXzdq1EiNGzdWSkqKPDw8dPr0aXXs2NHeHhISop9++kkWi0V+fn5O3hYAAKgufrXmy/LDcZeO\naXJ3V4OAm1w6JkrPqYBbu3Ztde/e3f61zWbTunXrdOedd+rYsWMymUxasWKFvvzyS9WtW1fjx4/X\nkCFDJElZWVkym80O1/Pz81N6erqysrJkMpkc2v38/GSz2ZSenk7ABQAAJTp7/JRevX2QS8f0NdfX\nzIwdLh0Tpef0HtzfevHFF3X48GFt2LBB33//vdzc3BQQEKCxY8dqz549euaZZ1SrVi2FhYUpNzdX\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e9913d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(cat_match_psf['MAG_AUTO'], bins=20, range=(15, 30), histtype='step', linewidth=1.5, color=sns.xkcd_rgb['bordeaux'], label='Homogenized PSF')\n",
    "plt.xlabel('mag$_{r+}$', fontsize=15)\n",
    "plt.legend(loc='upper left', fontsize=15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "with h5py.File('/Volumes/astro/refreg/temp/herbelj/COSMOS/subaru/tileinfo_subaru_matched-psf_144_tiles_bkg.h5') as f:\n",
    "    tileinfo = f['data'][...]\n",
    "    \n",
    "tileinfo = tileinfo[tileinfo['tile_index'] == 78][0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "gain = tileinfo['gain']\n",
    "mag_0 = tileinfo['magzero_r']\n",
    "t_exp = tileinfo['exptime_r']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def calc_nphot(mag, mag_0, gain):\n",
    "    nphot = 10 ** (0.4 * (mag_0 - mag)) * gain\n",
    "    return nphot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean number of electrons for magnitude 18: 229086.765277\n",
      "Mean number of electrons for magnitude 19: 91201.0839356\n",
      "Mean number of electrons for magnitude 20: 36307.805477\n",
      "Mean number of electrons for magnitude 21: 14454.3977075\n",
      "Mean number of electrons for magnitude 26: 144.543977075\n",
      "\n",
      "Mean number of electrons / exposure time for magnitude 18: 106.058687628\n",
      "Mean number of electrons / exposure time for magnitude 19: 42.2227240443\n",
      "Mean number of electrons / exposure time for magnitude 20: 16.8091692023\n",
      "Mean number of electrons / exposure time for magnitude 21: 6.69185079049\n",
      "Mean number of electrons / exposure time for magnitude 26: 0.0669185079049\n"
     ]
    }
   ],
   "source": [
    "for mag in [18, 19, 20, 21, 26]:\n",
    "    print('Mean number of electrons for magnitude {}: {}'.format(mag, calc_nphot(mag, mag_0, gain)))\n",
    "    \n",
    "print()\n",
    "    \n",
    "for mag in [18, 19, 20, 21, 26]:\n",
    "    print('Mean number of electrons / exposure time for magnitude {}: {}'.format(mag, calc_nphot(mag, mag_0, gain) / t_exp))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
