From ca1a3cf6dae16ec362702bc5b8aa8e4d667b8acb Mon Sep 17 00:00:00 2001 From: Harriet Brown <harriet.brown@stfc.ac.uk> Date: Thu, 21 Nov 2019 10:09:09 +0000 Subject: [PATCH] Move code for reading qlims into its own function This commit moves the code for reading the supplies q limits into its own function. This also fixes a bug that cause an error when trying to read a lim file path that is in a unicode format. Re #27444 --- .../polaris_routines/polaris_algs.py | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py index 182fb33fee8..feb94991883 100644 --- a/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py +++ b/scripts/Diffraction/isis_powder/polaris_routines/polaris_algs.py @@ -156,25 +156,7 @@ def _merge_workspace_with_limits(focused_ws, q_lims): InputWorkspace2=focused_ws[1]) focused_ws_conjoined = focused_ws[0] - if type(q_lims) == str: - q_min = [] - q_max = [] - try: - with open(q_lims, 'r') as f: - line_list = [line.rstrip('\n') for line in f] - for line in line_list[1:]: - value_list = line.split() - q_min.append(float(value_list[2])) - q_max.append(float(value_list[3])) - q_min = np.array(q_min) - q_max = np.array(q_max) - except IOError: - raise RuntimeError("q_lims directory is not valid") - elif type(q_lims) == list or type(q_lims) == np.ndarray: - q_min = q_lims[0, :] - q_max = q_lims[1, :] - else: - raise RuntimeError("q_lims type is not valid") + q_min, q_max = _load_qlims(q_lims) bin_width = np.inf for i in range(q_min.size): pdf_x_array = focused_ws_conjoined.readX(i) @@ -195,6 +177,29 @@ def _merge_workspace_with_limits(focused_ws, q_lims): return focused_data_combined +def _load_qlims(q_lims): + if type(q_lims) == str or type(q_lims) == unicode: + q_min = [] + q_max = [] + try: + with open(q_lims, 'r') as f: + line_list = [line.rstrip('\n') for line in f] + for line in line_list[1:]: + value_list = line.split() + q_min.append(float(value_list[2])) + q_max.append(float(value_list[3])) + q_min = np.array(q_min) + q_max = np.array(q_max) + except IOError: + raise RuntimeError("q_lims directory is not valid") + elif type(q_lims) == list or type(q_lims) == np.ndarray: + q_min = q_lims[0, :] + q_max = q_lims[1, :] + else: + raise RuntimeError("q_lims type is not valid") + return q_min, q_max + + def _calculate_self_scattering_correction(run_number, cal_file_name, sample_details): raw_ws = mantid.Load(Filename='POLARIS'+str(run_number)+'.nxs') mantid.SetSample(InputWorkspace=raw_ws, -- GitLab