From 6b8d15234b297ff7945fa0440fdf4f53167b746b Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Fri, 28 Jan 2022 15:06:28 +0100 Subject: [PATCH] Fix check for reversed ranges upon scan merging --- pyzebra/ccl_process.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pyzebra/ccl_process.py b/pyzebra/ccl_process.py index 718760c..f395b09 100644 --- a/pyzebra/ccl_process.py +++ b/pyzebra/ccl_process.py @@ -54,11 +54,16 @@ def _parameters_match(scan1, scan2): if param == scan1["scan_motor"] == scan2["scan_motor"]: # check if ranges of variable parameter overlap - range1 = scan1[param] - range2 = scan2[param] + r1_start, r1_end = scan1[param][0], scan1[param][-1] + r2_start, r2_end = scan2[param][0], scan2[param][-1] + # support reversed ranges + if r1_start > r1_end: + r1_start, r1_end = r1_end, r1_start + if r2_start > r2_end: + r2_start, r2_end = r2_end, r2_start # maximum gap between ranges of the scanning parameter (default 0) max_range_gap = MAX_RANGE_GAP.get(param, 0) - if max(range1[0] - range2[-1], range2[0] - range1[-1]) > max_range_gap: + if max(r1_start - r2_end, r2_start - r1_end) > max_range_gap: return False elif np.max(np.abs(scan1[param] - scan2[param])) > PARAM_PRECISIONS[param]: