From 327fcb67256244f908305c352ecc42c5de5853fe Mon Sep 17 00:00:00 2001 From: David Hammer <dhammer@mailbox.org> Date: Wed, 3 Mar 2021 20:22:53 +0100 Subject: [PATCH] Moving get_gain_mode to agipdlib --- cal_tools/cal_tools/agipdlib.py | 12 +++++++++++- .../Characterize_AGIPD_Gain_Darks_NBC.ipynb | 18 ++---------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/cal_tools/cal_tools/agipdlib.py b/cal_tools/cal_tools/agipdlib.py index 9b40845e0..1c14701f1 100644 --- a/cal_tools/cal_tools/agipdlib.py +++ b/cal_tools/cal_tools/agipdlib.py @@ -6,7 +6,7 @@ import h5py import numpy as np import sharedmem from cal_tools.agipdutils import * -from cal_tools.enums import BadPixels, SnowResolution +from cal_tools.enums import AgipdGainMode, BadPixels, SnowResolution from cal_tools.tools import get_constant_from_db_and_time from iCalibrationDB import Conditions, Constants, Detectors @@ -118,6 +118,16 @@ def get_gain_setting(fname: str, h5path_ctrl: str) -> int: else: raise ValueError('Could not derive gain setting from setupr and patternTypeIndex') # noqa +def get_gain_mode(fname: str, h5path_ctrl: str) -> AgipdGainMode: + """Returns the gain mode (adaptive or fixed) from slow data""" + + h5path_run = h5path_ctrl.replace("CONTROL/", "RUN/", 1) + h5path_gainmode = f'{h5path_run}/gainModeIndex/value' + with h5py.File(fname, 'r') as fd: + if h5path_gainmode in fd: + return AgipdGainMode(fd[h5path_gainmode][0]) + return AgipdGainMode.ADAPTIVE_GAIN + def get_bias_voltage(fname: str, karabo_id_control: str, module: Optional[int] = 0) -> int: diff --git a/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb b/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb index ca2c3ba7b..0138ddf88 100644 --- a/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb +++ b/notebooks/AGIPD/Characterize_AGIPD_Gain_Darks_NBC.ipynb @@ -97,7 +97,7 @@ "\n", "import multiprocessing\n", "\n", - "from cal_tools.agipdlib import (get_acq_rate, get_bias_voltage,\n", + "from cal_tools.agipdlib import (get_acq_rate, get_bias_voltage, get_gain_mode,\n", " get_gain_setting, get_num_cells)\n", "from cal_tools.enums import AgipdGainMode\n", "from cal_tools.plotting import (create_constant_overview, plot_badpix_3d,\n", @@ -110,20 +110,6 @@ "from iCalibrationDB import Conditions, Constants, Detectors" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_gain_mode(h5fn):\n", - " h5path_gainmode = f'{h5path_ctrl.replace(\"/CONTROL/\", \"/RUN/\", 1)}/gainModeIndex/value'\n", - " with h5py.File(h5fn, 'r') as fd:\n", - " if h5path_gainmode in fd:\n", - " return AgipdGainMode(fd[h5path_gainmode][0])\n", - " return AgipdGainMode.ADAPTIVE_GAIN" - ] - }, { "cell_type": "code", "execution_count": null, @@ -168,7 +154,7 @@ "control_names = [f'{in_folder}/r{r:04d}/RAW-R{r:04d}-{karabo_da_control}-S00000.h5'\n", " for r in (run_high, run_med, run_low)]\n", "\n", - "run_gain_modes = [get_gain_mode(fn) for fn in control_names]\n", + "run_gain_modes = [get_gain_mode(fn, h5path_ctrl) for fn in control_names]\n", "if all(gm == AgipdGainMode.ADAPTIVE_GAIN for gm in run_gain_modes):\n", " fixed_gain_mode = False\n", "elif run_gain_modes == [AgipdGainMode.FIXED_HIGH_GAIN, AgipdGainMode.FIXED_MEDIUM_GAIN, AgipdGainMode.FIXED_LOW_GAIN]:\n", -- GitLab