From 01a43eb8ddc11467bf830b4822c7e1125ba90811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Le=20Guyader?= <loic.le.guyader@xfel.eu> Date: Tue, 3 Aug 2021 13:47:14 +0200 Subject: [PATCH] Fix flat field correction display in BOZ analysis --- src/toolbox_scs/routines/boz.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/toolbox_scs/routines/boz.py b/src/toolbox_scs/routines/boz.py index 5e47f03..2b53ae1 100644 --- a/src/toolbox_scs/routines/boz.py +++ b/src/toolbox_scs/routines/boz.py @@ -112,7 +112,10 @@ class parameters(): def get_flat_field(self): """Get the flat field plane definition.""" - return np.array(self.flat_field) + if self.flat_field is None: + return None + else: + return np.array(self.flat_field) def set_Fnl(self, Fnl): """Set the non-linear correction function.""" @@ -123,7 +126,10 @@ class parameters(): def get_Fnl(self): """Get the non-linear correction function.""" - return np.array(self.Fnl) + if self.Fnl is None: + return None + else: + return np.array(self.Fnl) def save(self, path='./'): """Save the parameters as a JSON file. @@ -822,7 +828,7 @@ def inspect_plane_fitting(avg, rois, vmin=None, vmax=None): d = '0' roi = rois[d] for k, r in enumerate(['n', '0', 'p']): - img_rois[r] = np.roll(avg, tuple(centers[r] - centers[d]))[ + img_rois[r] = np.roll(avg, tuple(centers[d] - centers[r]))[ roi['yl']:roi['yh'], roi['xl']:roi['xh']] im = axs[0, k].imshow(img_rois[r], vmin=vmin, @@ -1279,13 +1285,22 @@ def inspect_correction(params, gain=None): fitrois[k] = params.rois[k] # flat flat_field - ff = compute_flat_field_correction(params.rois, params.get_flat_field()) + plane_ff = params.get_flat_field() + if plane_ff is None: + plane_ff = [0.0, 0.0, 1.0, -1.0] + ff = compute_flat_field_correction(params.rois, plane_ff) + + # non linearities + Fnl = params.get_Fnl() + if Fnl is None: + Fnl = np.arange(2**9) + # compute all levels of correction data = process(np.arange(2**9), params.arr_dark, params.arr, params.tid, fitrois, params.get_mask(), np.ones_like(ff), params.sat_level) data_ff = process(np.arange(2**9), params.arr_dark, params.arr, params.tid, fitrois, params.get_mask(), ff, params.sat_level) - data_ff_nl = process(params.get_Fnl(), params.arr_dark, params.arr, + data_ff_nl = process(Fnl, params.arr_dark, params.arr, params.tid, fitrois, params.get_mask(), ff, params.sat_level) # for conversion to nb of photons -- GitLab