Skip to content

Instantly share code, notes, and snippets.

@beckermr
Created October 30, 2021 10:53
Show Gist options
  • Save beckermr/555279e9e6f9feaa067dbad3bc8abf84 to your computer and use it in GitHub Desktop.
Save beckermr/555279e9e6f9feaa067dbad3bc8abf84 to your computer and use it in GitHub Desktop.
binning shears on CCDs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "%load_ext pycodestyle_magic\n%flake8_on --max_line_length 119 --ignore W293,W291",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import numpy as np\nimport fitsio\nimport meds\nimport json\nimport esutil as eu\nimport galsim",
"execution_count": 9,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "d = fitsio.read(\"DES2120-4706_metadetect-v4_mdetcat_range0000-0019.fits.fz\")",
"execution_count": 10,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "m = meds.MEDS(\"DES2120-4706_r5581p01_r_pizza-cutter-slices.fits.fz\")",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "einfo = fitsio.read(\"DES2120-4706_r5581p01_r_pizza-cutter-slices.fits.fz\", ext=\"epochs_info\")\niinfo = fitsio.read(\"DES2120-4706_r5581p01_r_pizza-cutter-slices.fits.fz\", ext=\"image_info\")\n\npcat = m.get_cat()",
"execution_count": 12,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "einfo.dtype.names",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 13,
"data": {
"text/plain": "('id',\n 'image_id',\n 'flags',\n 'row_start',\n 'col_start',\n 'box_size',\n 'psf_row_start',\n 'psf_col_start',\n 'psf_box_size',\n 'weight')"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "assert np.array_equal(iinfo[\"image_id\"], np.arange(len(iinfo)))",
"execution_count": 14,
"outputs": []
},
{
"metadata": {
"trusted": true,
"scrolled": false
},
"cell_type": "code",
"source": "from esutil.pbar import PBar\nimport sys\n\nbuff = 48\nxlen = 2048\nylen = 4096\nxmin = buff\nxmax = xlen - buff\nymin = buff \nymax = ylen - buff\ndx = 32\ndy = 32\n\nnx = (xmax - xmin) // dx\nny = (ymax - ymin) // dy\nassert nx * dx == (xmax-xmin)\nassert ny * dy == (ymax-ymin)\nprint(\"# of (y, x) bins:\", (ny, nx))\n\n\ndef _get_ccd_num(pth):\n return pth.split(\"/\")[1].split(\"_\")[2][1:]\n\n\ndef _get_bin_locs(gs_wcs, ra, dec, msk):\n # compute the bin locations for the objects\n x, y = gs_wcs.radecToxy(ra, dec, units=\"degrese\")\n x -= 1\n y -= 1\n # print(x.min(), x.max(), y.min(), y.max())\n \n # the factor of 0.5 is here because the first pixel \n # starts at -0.5 in 0 indexed pixel-centered coords\n xind = np.floor((x-xmin + 0.5)/dx).astype(int)\n yind = np.floor((y-ymin + 0.5)/dy).astype(int)\n \n # cut points outside the array\n msk_c = np.where(\n (xind >= 0)\n & (xind < nx)\n & (yind >= 0)\n & (yind < ny)\n )[0]\n if len(msk_c) == 0:\n return None\n\n msk = msk[msk_c]\n xind = xind[msk_c]\n yind = yind[msk_c]\n # print(xind.min(), xind.max(), yind.min(), yind.max())\n \n return xind, yind, msk\n \n\ndef _accum_shear(ccdres, ccdnum, cname, shear, mdet_step, xind, yind, g):\n msk_s = mdet_step == shear\n ccdres[ccdnum][cname] = np.zeros((ny, nx))\n ccdres[ccdnum][\"num_\" + cname] = np.zeros((ny, nx))\n if np.any(msk_s):\n # see https://numpy.org/doc/stable/reference/generated/numpy.ufunc.at.html#numpy.ufunc.at\n np.add.at(\n ccdres[ccdnum][cname], \n (yind[msk_s], xind[msk_s]), \n g[msk_s],\n )\n np.add.at(\n ccdres[ccdnum][\"num_\" + cname], \n (yind[msk_s], xind[msk_s]), \n np.ones_like(g[msk_s]),\n )\n\n\nccdres = {}\nfor image_id in PBar(np.arange(1, len(iinfo)), file=sys.stdout):\n # get all slices that used this SE image\n msk = (\n (einfo[\"flags\"] == 0) \n & (einfo[\"image_id\"] == image_id)\n & (einfo[\"weight\"] > 0)\n )\n if not np.any(msk):\n # if nothing move on\n continue\n unique_slices = np.unique(einfo[\"id\"][msk])\n\n # find all detections that used this slice\n msk_d = np.where(np.in1d(d[\"slice_id\"], unique_slices))[0]\n if len(msk_d) == 0:\n # if nothing move on\n continue\n \n # now construct the WCS and other metadata\n gs_wcs = galsim.FitsWCS(header=json.loads(iinfo['wcs'][image_id])) \n ccdnum = _get_ccd_num(iinfo['image_path'][image_id])\n \n ind_res = _get_bin_locs(gs_wcs, d[\"ra\"][msk_d], d[\"dec\"][msk_d], msk_d)\n if ind_res is None:\n continue\n xind, yind, msk_d = ind_res\n \n ccdres[ccdnum] = {}\n mdet_step = d[\"mdet_step\"][msk_d]\n _accum_shear(ccdres, ccdnum, \"g1\", \"noshear\", mdet_step, xind, yind, d[\"mdet_g_1\"][msk_d])\n _accum_shear(ccdres, ccdnum, \"g2\", \"noshear\", mdet_step, xind, yind, d[\"mdet_g_2\"][msk_d])\n _accum_shear(ccdres, ccdnum, \"g1p\", \"1p\", mdet_step, xind, yind, d[\"mdet_g_1\"][msk_d])\n _accum_shear(ccdres, ccdnum, \"g1m\", \"1m\", mdet_step, xind, yind, d[\"mdet_g_1\"][msk_d])\n _accum_shear(ccdres, ccdnum, \"g2p\", \"2p\", mdet_step, xind, yind, d[\"mdet_g_2\"][msk_d])\n _accum_shear(ccdres, ccdnum, \"g2m\", \"2m\", mdet_step, xind, yind, d[\"mdet_g_2\"][msk_d])",
"execution_count": 37,
"outputs": [
{
"output_type": "stream",
"text": "# of (y, x) bins: (125, 61)\n|####################| 158/158 100% [elapsed: 00:00 left: 00:00]\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import proplot as pplt",
"execution_count": 17,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def _compute_g1_g2(ccdres, ccdnum):\n g1 = ccdres[ccdnum][\"g1\"] / ccdres[ccdnum][\"num_g1\"]\n g1p = ccdres[ccdnum][\"g1p\"] / ccdres[ccdnum][\"num_g1p\"]\n g1m = ccdres[ccdnum][\"g1m\"] / ccdres[ccdnum][\"num_g1m\"]\n R11 = (g1p - g1m) / 2 / 0.01\n\n g2 = ccdres[ccdnum][\"g2\"] / ccdres[ccdnum][\"num_g2\"]\n g2p = ccdres[ccdnum][\"g2p\"] / ccdres[ccdnum][\"num_g2p\"]\n g2m = ccdres[ccdnum][\"g2m\"] / ccdres[ccdnum][\"num_g2m\"]\n R22 = (g2p - g2m) / 2 / 0.01\n \n return g1/R11, g2/R22\n\n\nccdnum = list(ccdres)[0]\ng1, g2 = _compute_g1_g2(ccdres, ccdnum)\n\nfig, axs = pplt.subplots(refaspect=1, refwidth=6, ncols=2)\naxs[0].imshow(g1)\naxs[0].grid(False)\n\naxs[1].imshow(g2)\naxs[1].grid(False)",
"execution_count": 33,
"outputs": [
{
"output_type": "stream",
"text": "/var/folders/5w/65hhf7d16cvbrv_wsj7y1_nm0000gn/T/ipykernel_35040/2760678376.py:2: RuntimeWarning: invalid value encountered in true_divide\n g1 = ccdres[ccdnum][\"g1\"] / ccdres[ccdnum][\"num_g1\"]\n/var/folders/5w/65hhf7d16cvbrv_wsj7y1_nm0000gn/T/ipykernel_35040/2760678376.py:3: RuntimeWarning: invalid value encountered in true_divide\n g1p = ccdres[ccdnum][\"g1p\"] / ccdres[ccdnum][\"num_g1p\"]\n/var/folders/5w/65hhf7d16cvbrv_wsj7y1_nm0000gn/T/ipykernel_35040/2760678376.py:4: RuntimeWarning: invalid value encountered in true_divide\n g1m = ccdres[ccdnum][\"g1m\"] / ccdres[ccdnum][\"num_g1m\"]\n/var/folders/5w/65hhf7d16cvbrv_wsj7y1_nm0000gn/T/ipykernel_35040/2760678376.py:7: RuntimeWarning: invalid value encountered in true_divide\n g2 = ccdres[ccdnum][\"g2\"] / ccdres[ccdnum][\"num_g2\"]\n/var/folders/5w/65hhf7d16cvbrv_wsj7y1_nm0000gn/T/ipykernel_35040/2760678376.py:8: RuntimeWarning: invalid value encountered in true_divide\n g2p = ccdres[ccdnum][\"g2p\"] / ccdres[ccdnum][\"num_g2p\"]\n/var/folders/5w/65hhf7d16cvbrv_wsj7y1_nm0000gn/T/ipykernel_35040/2760678376.py:9: RuntimeWarning: invalid value encountered in true_divide\n g2m = ccdres[ccdnum][\"g2m\"] / ccdres[ccdnum][\"num_g2m\"]\n",
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"text/plain": "Figure(nrows=1, ncols=2, refaspect=1, refwidth=6.0)",
"image/png": "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AAAAAFAkwAIAAAAAAAAAACgSYAEAAAAAAAAAABQJsAAAAAAAAAAAAIoEWAAAAAAAAAAAAEUCLAAAAAAAAAAAgCIBFgAAAAAAAAAAQJEACwAAAAAAAAAAoEiABQAAAAAAAAAAUCTAAgAAAAAAAAAAKBJgATNmfHw8119/fc4555wMDAxk2bJlOf/887Njx45OjwYAAAAAAAAAMC0EWMCU7N69O9dcc03OPvvsNJvNNJvN/PIv/3I+97nP5cUXXzxkfavVytq1a3PttdfmkUceSavVyujoaO6+++6sXbs2t9122/H/EAAAAAAAAAAA00yABRzVD3/4w7z3ve/NDTfckP/4j//I2NhYxsbG8sMf/jB/8Rd/kfe973157LHHJrzmM5/5TB544IEsWrQot956a3bv3p2dO3fmYx/7WF5++eVcfvnlh7wGAAAAAAAAAGC2EWABR3TgwIF88pOfzO7du/PWt741X/3qVzMyMpLHH388w8PDaTabefLJJ3PBBRfkpZdeSvL/T8u6+eabkyTDw8MZHBxMf39/li5dmptuuimrV69Ou93ODTfc0MFPBgAAAAAAAADw+gmwgCP69re/nZ07d2bevHn52te+lvPOOy/z58/PW97yllx44YX51re+lfnz5+fRRx/N17/+9STJXXfdlXa7nZUrV2bt2rWHPHPTpk1JkjvuuCMHDhw4nh8HAAAAAAAAAGBaCbCAI7r33nuTJB/4wAdyxhlnHHL/jDPOyODgYJLke9/7XpJk+/btSZLzzjvvsM9cs2ZNent78/zzz2fnzp0zMTYAAAAAAAAAwHEhwAKO6PHHH0+SrFy5ctI1zWYzSbJv374kya5du5Ikq1atOuz63t7erFixYsJaAAAAAAAAAIDZqLvTAwAntt/93d/NRz7ykbz97W+fdM2//uu/JkmWLl2aJHn66aeTJKeeeuqkr1myZEkefvjh19YCAAAAAAAAAMxGAizgiNasWXPE+9/61rde+5nCD37wg0kOnoS1cOHCSV/X39+fJNm7d++ka84+++wpzfjEE09k+fLlU1oLAAAAANPF/hUAAACJnyAEXoe///u/z0UXXZQk+e3f/u28613vSpK02+0kybx58yZ9bU9PT5Kk1WrN7JAAAAAAAAAAADPICVjAMXv44Ydz1VVX5b777kuSnHvuufnCF77w2v3e3t60Wq2Mj49P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W5uDDz6421oAAAAAAAAAgIFIAAvYoQkTJmTKlCnZsmVLpk2blnnz5uWNN97IK6+8kuuuuy5XXnllkuSKK67ouuaFF15IkowaNarX+44ePbrbWgAAAAAAAACAgai63AUAlW/27Nmpr6/Pv/7rv+aMM87odq6mpibf+ta3cs4553QdW79+fZJk2LBhvd6zsbExSdLa2trrmqOPPrpP9S1fvjwHHnhgn9YCAAAAQKmYXwEAAJDYAQvog1//+tdZunRpj+c2b96cJ598Mm1tbV3H2tvbkyRDhw7t9Z41NTVJ0u06AAAAAAAAAICBxg5YwA4tXbo0f/iHf5g1a9bkox/9aL761a/m0EMPzbp167JgwYLMmDEjN9xwQ1544YXcdtttqaqqSm1tbdra2rJp06Ze77tx48Yk24JYPVm0aFGfauzrOw0BAAAAoJTMrwAAAEjsgAXsxOWXX541a9bknHPOyW233ZZjjjkmw4YNy6hRo3LmmWfmvvvuy8iRI3PPPffk7rvvTrLt4wXXrVvX6307P3pw99133/UPAQAAAAAAAACwiwhgAb168803M2/evCTJn/3Zn/W4Zp999slZZ52VJJk7d26SZP/990+SvPzyy73eu/Pc6NGjS1YvAAAAAAAAAEB/E8ACerV69eq8+eabSXYclOoMXP3v//5vkuTggw9Okjz11FM9rm9vb8+SJUuSJIccckjJ6gUAAAAAAAAA6G/V5S4AqFzDhw/PkCFDsmXLlrzwwgvZa6+9ely3cuXKJMnee++dJJk4cWJuu+22zJ8/P1ddddV26x988MFs2rQpI0aMyIQJE3bdAwAA7zqbVv26T+tqmseW7Htu3LC+T+vqGhpL9j0BAAAAGJja2tr6tK6+vr5k33NjH79nXQm/JwDd2QEL6FVdXV3e//73J0lmzZrV45qWlpbceuutSZITTzwxSTJ58uTU1dXlmWee6foIw9/Wea+Pf/zjqaryYwgAAAAAAAAAGLgkH4Ad+trXvpbddtstt912W84888z88pe/TGtra1566aXceuut+cAHPpC1a9fmoIMOytSpU5Mkzc3NOf/885Mk06dPz1133ZUNGzZkxYoVufDCC3Pfffelvr4+l1xySTkfDQAAAAAAAADgHfMRhMAOnXjiibn22mtz6aWXZu7cuZk7d+52aw444ID88Ic/TE1NTdexK6+8Mo89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oWXLluWyyy7b4ZrW1tZ8+tOfzrp163LUUUdl3rx5Wb16dZ599tn87d/+bYYNG5annnoq5513XrfrnnzyycyZMydDhgzJ7bffnhNPPDH19fU59NBDc+utt+aggw7K2rVrc+ONN+7KRwQAAAAAAAAA6BcCWDBIPP7447n00kvzoQ99KEceeWSWL1++w/U/+MEPsmrVqowcOTJ33HFHjj/++NTV1WW//fbL5z73ufzkJz9JVVVV/vM//zOPPvpo13U//vGPkyQnnXRSJkyY0O2etbW1+cIXvpAkueOOO0r8hAAAAAAAAAAA/U8ACwaJhx56KNdff30effTRdHR07HT9fffdlyT5+Mc/nr322mu78+9///tz3HHHdd2704IFC5K8FcDqSefxJ554Iq+//vrbewgAAAAAAAAAgAojgAWDxFlnnZWFCxd2fV1wwQU7XN+5Q9b48eN7XdPc3JzkrY8r7PT8888nyXa7X3UaM2ZM9txzz2zdujXLli17W88AAAAAAAAAAFBpqstdANA/Ro4cmZEjR3b9e1NT0w7X/+Vf/mXWrVuXY445psfzW7duzVNPPZUkGTt2bJJkw4YNWbt2bZJk9OjRvd571KhRef3117Ny5cocddRRb+cxAAAAAAAAAAAqigAW0KOPfOQjOzz/ne98J0uWLEltbW3Xxwr+9k5Yu+++e6/Xdp5bv379Dr/H0Ucf3adaly9fngMPPLBPawEAAACgVMyvAAAASHwEIfA2dXR0ZObMmfnKV76SJPnCF76QfffdN0myadOmrnU1NTW93mPo0KFJ3toxCwAAAAAAAABgILMDFtBnDz74YL72ta/liSeeSJJMnTo1M2bM6Dr/26Gr9vb2DBs2rMf7tLe3J0lqa2t3+P0WLVrUp7r6+k5DAAAAACgl8ysAAAASO2ABffC///u/+dSnPpVTTjklTzzxRHbffffMnDkz3/3ud1NVte3HyG9/7OBvfxzh/7Vu3bokSWNj464rGgAAAAAAAACgHwhgATs0b968HHvssfnRj36UIUOG5FOf+lQef/zxXHDBBdutbWhoyIgRI5IkL730Uq/3fOWVV5Ik++23364pGgAAAAAAAACgnwhgAb36wQ9+kDPPPDNr167NhAkTsmDBglx33XXZd999e73mkEMOSZI89dRTPZ5fsWJF1w5YBx10UOmLBgAAAAAAAADoRwJY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uOOOy4IFC7qu0XsAgMpkflW5vIYuHfOrymJ+VR7mV+VhflU+5lcA2whgAQPepk2bkiQ1NTW9runc4nfDhg39UhNvaW9vT5Jet1hOtv25tbW19UtN70a33HJL1zsLzzjjjLzvfe9Lov/9acOGDZk/f35eeeWVrmP6X1orVqzIZZddlsbGxvzTP/1Tqqp2/DJW/0tn3bp1GT9+fE499dTcfffdOfbYY1NXV5fm5uZccMEFue2227Lbbrtl4cKFmTdvXhL9L5XO1y3XX399hg0blhtvvDErV67M6tWr8+///u953/velzfeeCPnnntu1q5dm0TvAQAqlflV5fIaun+YX5Wf+dWuZ35VPuZX5WN+BbCNABYw4HW+COt8wdaTznO1tbX9UhNv6ex355CxJxs3bkyy4wEkPXvqqacyefLkfPazn8369etzwgkn5Nvf/nbXef3fdS688MK0trZm6dKlueWWW3LQQQflnnvuyeTJk7f7eaP/71xHR0emT5+edevW5aqrrsoBBxyw02v0v3Q+8YlP5Je//GVuvfXWHv87OnHixHz4wx9Oktxzzz1J9L9UtmzZkiSpq6vLPffck7POOisjRoxIXV1dTjjhhNx5553Za6+9smbNmvzzP/9zEr0HAKhU5leVy2voXcv8qnzMr/qX+VV5mV+Vj/kVwDYCWMCA17k9+462IV23bl2SbVuW0j86+93Z/570ZQt+unv99dfz5S9/Occff3weeOCBDB06NJdffnnuvvvu1NfXd63T/11v3333zcc+9rHcfffd2XPPPbNkyZL85Cc/SaL/pTRr1qw8/PDDOemkk3L++ef36Rr9718nnHBCkm3bvet/aTQ0NCRJTj/99BxyyCHbnR8xYkTOO++8JMl//ud/JtF7AIBKZX5VubyG3jXMryqH+VX/ML+qfOZXu4b5FcA2AljAgLfffvslSV566aVe13Ruq9y5lv6x//77J0lefvnlXtd0nhs9enS/1DTQLVq0KO9///sze/bsdHR05LTTTsuiRYvy53/+56muru62Vv/7z+jRozNp0qQkb72zM9H/Uvmf//mffOMb38iIESNy/fXX9/k6/e9fI0eOTLLtHfv6XxqdfT388MN7XdM52Orsp94DAFQm86vK5TV06ZlfVSbzq13H/GpgML/aNcyvALYRwAIGvIMPPjjJtl8ae/L00093W0v/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\n"
},
"metadata": {
"image/png": {
"width": 1200,
"height": 634
}
}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "conda-env-desy6-py",
"display_name": "Python [conda env:desy6] *",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.8.12",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "binning shears on CCDs",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment