Fix check for reversed ranges upon scan merging

This commit is contained in:
2022-01-28 15:06:28 +01:00
parent 5cfa5c176d
commit 6b8d15234b

View File

@@ -54,11 +54,16 @@ def _parameters_match(scan1, scan2):
if param == scan1["scan_motor"] == scan2["scan_motor"]: if param == scan1["scan_motor"] == scan2["scan_motor"]:
# check if ranges of variable parameter overlap # check if ranges of variable parameter overlap
range1 = scan1[param] r1_start, r1_end = scan1[param][0], scan1[param][-1]
range2 = scan2[param] 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) # maximum gap between ranges of the scanning parameter (default 0)
max_range_gap = MAX_RANGE_GAP.get(param, 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 return False
elif np.max(np.abs(scan1[param] - scan2[param])) > PARAM_PRECISIONS[param]: elif np.max(np.abs(scan1[param] - scan2[param])) > PARAM_PRECISIONS[param]: