diff --git a/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb b/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb index 8723b6ef5aff7bcf3775c29a95bd1af3944fc64f..ab838561f5787a39709cc91bc5bc426ed5dc19ab 100644 --- a/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb +++ b/notebooks/pnCCD/Correct_pnCCD_NBC.ipynb @@ -105,7 +105,6 @@ "import copy\n", "import os\n", "import glob\n", - "import gc\n", "import datetime\n", "from datetime import timedelta\n", "from prettytable import PrettyTable\n", @@ -739,14 +738,8 @@ " ddsetp[...] = np.moveaxis(patterns, 2, 0)\n", "\n", " histCalPcorr.fill(data) # filling histogram with split events corrected data\n", - " \n", - " singles_events = np.zeros(data.shape, data.dtype)\n", - " for s in range(100, 102): # events' patterns indices are: 100 (singles), 101 (first singles)\n", - " singles_events = copy.copy(data[...])\n", - " singles_events[patterns != s] = np.nan # Throwing out doubles, triples, quadruple, clusters\n", - " histCalPcorrS.fill(singles_events) # filling histogram with singles events data\n", - " del singles_events # This line and the next delet this variable from the memory so we do not \n", - " gc.collect() # fill the memory up with copies of data per sequence\n", + " data[patterns != 100] = np.nan # Discard doubles, triples, quadruple, clusters, first singles\n", + " histCalPcorrS.fill(data) # filling histogram with singles events data\n", " \n", " # mean_im_cc = averaged over all pattern classified corrected images \n", " # (in the first sequence only)\n", @@ -815,7 +808,7 @@ "# good.\n", "\n", "if gain == 1:\n", - " x_range = (3000, 16000)\n", + " x_range = (0, 30000)\n", "elif gain == 64:\n", " x_range = (0, 1000)" ] @@ -885,7 +878,7 @@ " 'label': 'Singles Events'\n", " }])\n", "fig = xana.simplePlot(figure, aspect=1, x_label='ADU', y_label='Number of Occurrences', figsize='2col',\n", - " y_log=True, x_range=xrange, title = '1 ADU per bin is used.',\n", + " y_log=True, x_range=x_range, title = '1 ADU per bin is used.',\n", " legend='top-right-frame-1col')" ] }, @@ -1063,35 +1056,6 @@ " a = ax.axis('equal')" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2018-12-06T16:10:56.212586Z", - "start_time": "2018-12-06T16:10:56.204731Z" - } - }, - "outputs": [], - "source": [ - "# Again, we are setting a few parameters so that the plots always look good regardless of what the gain is:\n", - "\n", - "if gain == 1:\n", - " vmin = -50 \n", - " vmax = 40000\n", - " panel_top_low_lim = -3000\n", - " panel_top_high_lim = 65000\n", - " panel_side_low_lim = -3000 \n", - " panel_side_high_lim = 65000\n", - "elif gain == 64:\n", - " vmin = 0\n", - " vmax = 20000\n", - " panel_top_low_lim = 0\n", - " panel_top_high_lim = 20000\n", - " panel_side_low_lim = 0\n", - " panel_side_high_lim = 20000" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -1112,61 +1076,29 @@ "outputs": [], "source": [ "fig = xana.heatmapPlot(uncor_mean_im, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax, \n", - " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", + " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)',\n", " title = 'Uncorrected Image Averaged over the First Sequence')\n", "\n", - "# At lower gain, we need to change the vmin and vmax for the following plots:\n", - "if gain == 64:\n", - " vmin = 0\n", - " vmax = 8000\n", - " \n", - "\n", "fig = xana.heatmapPlot(offset_mean_im, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax, \n", - " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", + " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", " title = 'Offset Corrected Image Averaged over the First Sequence')\n", "if corr_bools.get('relgain'):\n", " fig = xana.heatmapPlot(gain_mean_im, x_label='Columns', y_label='Rows', \n", " lut_label='Gain Corrected Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax, \n", - " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", + " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", " title = 'Mean Gain Corrected Image of the First Sequence')\n", "\n", "if corr_bools.get('pattern_class') and corr_bools.get('common_mode'):\n", " fig = xana.heatmapPlot(cm_mean_im, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax,\n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", " title = 'Common Mode Corrected Image Averaged over the First Sequence')\n", " \n", - "# Again, we need to change the vmin and vmax and other settings for this last plot:\n", - " if gain == 1:\n", - " vmin = 0\n", - " vmax = 600\n", - " panel_top_low_lim = 0\n", - " panel_top_high_lim = 500\n", - " panel_side_low_lim = 0\n", - " panel_side_high_lim = 2000\n", - " elif gain == 64:\n", - " vmin = 0\n", - " vmax = 600\n", - " panel_top_low_lim = 0\n", - " panel_top_high_lim = 2000\n", - " panel_side_low_lim = 0\n", - " panel_side_high_lim = 2000\n", - " \n", " fig = xana.heatmapPlot(mean_im_cc, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1,\n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax,\n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x),\n", " title = 'Image after All Corrections Averaged over the First Sequence')" ] }, @@ -1189,58 +1121,26 @@ }, "outputs": [], "source": [ - "if gain == 1:\n", - " vmin = -50\n", - " vmax = 10000\n", - " panel_top_low_lim = 0\n", - " panel_top_high_lim = 20000\n", - " panel_side_low_lim = 0\n", - " panel_side_high_lim = 20000\n", - " \n", - "elif gain == 64:\n", - " vmin = 0\n", - " vmax = 2000\n", - " panel_top_low_lim = 0\n", - " panel_top_high_lim = 20000\n", - " panel_side_low_lim = 0\n", - " panel_side_high_lim = 20000\n", - "\n", "fig = xana.heatmapPlot(uncor_single_im, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax,\n", - " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", + " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", " title = 'Uncorrected Image (First Frame of First Sequence)')\n", "\n", "fig = xana.heatmapPlot(offset_single_im, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax,\n", - " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x),\n", + " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", " title = 'Offset Corrected Image (First Frame of First Sequence)')\n", "\n", "if corr_bools.get('pattern_class'):\n", - " # At lower gain, we need to change the vmin and vmax for the following plots:\n", - " if gain == 64:\n", - " vmin = 0\n", - " vmax = 600\n", - " panel_top_low_lim = 0\n", - " panel_top_high_lim = 800\n", - " panel_side_low_lim = 0\n", - " panel_side_high_lim = 800\n", " if corr_bools.get('common_mode'):\n", " fig = xana.heatmapPlot(cm_single_im, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1, \n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax,\n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", " title = 'Common Mode Corrected Image (First Frame of First Sequence)')\n", " \n", " fig = xana.heatmapPlot(single_im_cc, x_label='Columns', y_label='Rows', lut_label='Signal (ADU)', aspect=1,\n", - " x_range=(0, pixels_y), y_range=(0, pixels_x), vmin=vmin, vmax=vmax,\n", - " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", - " panel_top_low_lim = panel_top_low_lim, panel_top_high_lim = panel_top_high_lim,\n", - " panel_side_low_lim = panel_side_low_lim, panel_side_high_lim = panel_side_high_lim, \n", + " x_range=(0, pixels_y), y_range=(0, pixels_x), \n", + " panel_x_label='Row Stat (ADU)', panel_y_label='Column Stat (ADU)', \n", " title = 'Image after All Corrections (First Frame of First Sequence)')" ] },