From 7fa37caee6b24207352b3e937d9169dfe4ffff54 Mon Sep 17 00:00:00 2001 From: Bing Li Date: Wed, 11 Sep 2024 18:13:03 -0400 Subject: [PATCH] fixed CN class --- scripts/MnTe_contour.py | 136 +- scripts/example_cooper_nathans.py | 21 +- src/tavi/data/spice_to_nexus.py | 1 + src/tavi/instrument/goni.py | 2 +- .../instrument_params/hb3_mnte.json | 76 + .../instrument/resolution/cooper_nathans.py | 204 +- .../instrument/resolution/reso_ellipses.py | 77 +- src/tavi/instrument/tas.py | 117 +- src/tavi/instrument/ub_algorithms.py | 127 - src/tavi/plotter.py | 10 + src/tavi/sample/sample.py | 14 +- src/tavi/sample/xtal.py | 8 +- test_data/IPTS32124_CG4C_exp0424/scan0001.h5 | Bin 75016 -> 75016 bytes test_data/IPTS32124_CG4C_exp0424/scan0002.h5 | Bin 108264 -> 108264 bytes test_data/IPTS32124_CG4C_exp0424/scan0003.h5 | Bin 108264 -> 108264 bytes test_data/IPTS32124_CG4C_exp0424/scan0004.h5 | Bin 108264 -> 108264 bytes test_data/IPTS32124_CG4C_exp0424/scan0005.h5 | Bin 87344 -> 87344 bytes test_data/IPTS32124_CG4C_exp0424/scan0006.h5 | Bin 108264 -> 108264 bytes test_data/IPTS32124_CG4C_exp0424/scan0007.h5 | Bin 108264 -> 108264 bytes test_data/IPTS32124_CG4C_exp0424/scan0008.h5 | Bin 87344 -> 87344 bytes test_data/IPTS32124_CG4C_exp0424/scan0009.h5 | Bin 108264 -> 108264 bytes test_data/IPTS32124_CG4C_exp0424/scan0010.h5 | Bin 90768 -> 90768 bytes test_data/IPTS32124_CG4C_exp0424/scan0011.h5 | Bin 84424 -> 84424 bytes test_data/IPTS32124_CG4C_exp0424/scan0012.h5 | Bin 84488 -> 84488 bytes test_data/IPTS32124_CG4C_exp0424/scan0013.h5 | Bin 84488 -> 84488 bytes test_data/IPTS32124_CG4C_exp0424/scan0014.h5 | Bin 84424 -> 84424 bytes test_data/IPTS32124_CG4C_exp0424/scan0015.h5 | Bin 84424 -> 84424 bytes test_data/IPTS32124_CG4C_exp0424/scan0016.h5 | Bin 84488 -> 84488 bytes test_data/IPTS32124_CG4C_exp0424/scan0017.h5 | Bin 84488 -> 84488 bytes test_data/IPTS32124_CG4C_exp0424/scan0018.h5 | Bin 84424 -> 84424 bytes test_data/IPTS32124_CG4C_exp0424/scan0019.h5 | Bin 90768 -> 90768 bytes test_data/IPTS32124_CG4C_exp0424/scan0020.h5 | Bin 90768 -> 90768 bytes test_data/IPTS32124_CG4C_exp0424/scan0021.h5 | Bin 107968 -> 107968 bytes test_data/IPTS32124_CG4C_exp0424/scan0022.h5 | Bin 107968 -> 107968 bytes test_data/IPTS32124_CG4C_exp0424/scan0023.h5 | Bin 107968 -> 107968 bytes test_data/IPTS32124_CG4C_exp0424/scan0024.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0025.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0026.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0027.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0028.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0029.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0030.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0031.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0032.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0033.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0034.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0035.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0036.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0037.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0038.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0039.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0040.h5 | Bin 107960 -> 107960 bytes test_data/IPTS32124_CG4C_exp0424/scan0041.h5 | Bin 72944 -> 72944 bytes test_data/IPTS32124_CG4C_exp0424/scan0042.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0043.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0044.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0045.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0046.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0047.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0048.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0049.h5 | Bin 79184 -> 79184 bytes test_data/IPTS32124_CG4C_exp0424/scan0050.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0051.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0052.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0053.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0054.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0055.h5 | Bin 107960 -> 107960 bytes test_data/IPTS32124_CG4C_exp0424/scan0056.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0057.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0058.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0059.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0060.h5 | Bin 107960 -> 107960 bytes test_data/IPTS32124_CG4C_exp0424/scan0061.h5 | Bin 72944 -> 72944 bytes test_data/IPTS32124_CG4C_exp0424/scan0062.h5 | Bin 72800 -> 72800 bytes test_data/IPTS32124_CG4C_exp0424/scan0063.h5 | Bin 107848 -> 107848 bytes test_data/IPTS32124_CG4C_exp0424/scan0064.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0065.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0066.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0067.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0068.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0069.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0070.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0071.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0072.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0073.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0074.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0075.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0076.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0077.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0078.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0079.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0080.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0081.h5 | Bin 72944 -> 72944 bytes test_data/IPTS32124_CG4C_exp0424/scan0082.h5 | Bin 89512 -> 89512 bytes test_data/IPTS32124_CG4C_exp0424/scan0083.h5 | Bin 91488 -> 91488 bytes test_data/IPTS32124_CG4C_exp0424/scan0084.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0085.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0086.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0087.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0088.h5 | Bin 107928 -> 107928 bytes test_data/IPTS32124_CG4C_exp0424/scan0089.h5 | Bin 72944 -> 72944 bytes test_data/IPTS32124_CG4C_exp0424/scan0090.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0091.h5 | Bin 107864 -> 107864 bytes test_data/IPTS32124_CG4C_exp0424/scan0092.h5 | Bin 83208 -> 83208 bytes test_data/IPTS34735_HB3_exp0813/scan0001.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0002.h5 | Bin 83944 -> 83944 bytes test_data/IPTS34735_HB3_exp0813/scan0003.h5 | Bin 83944 -> 83944 bytes test_data/IPTS34735_HB3_exp0813/scan0004.h5 | Bin 83944 -> 83944 bytes test_data/IPTS34735_HB3_exp0813/scan0005.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0006.h5 | Bin 69584 -> 69584 bytes test_data/IPTS34735_HB3_exp0813/scan0007.h5 | Bin 67520 -> 67520 bytes test_data/IPTS34735_HB3_exp0813/scan0008.h5 | Bin 69584 -> 69584 bytes test_data/IPTS34735_HB3_exp0813/scan0009.h5 | Bin 69584 -> 69584 bytes test_data/IPTS34735_HB3_exp0813/scan0010.h5 | Bin 63424 -> 63424 bytes test_data/IPTS34735_HB3_exp0813/scan0011.h5 | Bin 69584 -> 69584 bytes test_data/IPTS34735_HB3_exp0813/scan0012.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0013.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0014.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0015.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0016.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0017.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0018.h5 | Bin 75280 -> 75280 bytes test_data/IPTS34735_HB3_exp0813/scan0019.h5 | Bin 75280 -> 75280 bytes test_data/IPTS34735_HB3_exp0813/scan0020.h5 | Bin 75280 -> 75280 bytes test_data/IPTS34735_HB3_exp0813/scan0021.h5 | Bin 75280 -> 75280 bytes test_data/IPTS34735_HB3_exp0813/scan0022.h5 | Bin 74952 -> 74952 bytes test_data/IPTS34735_HB3_exp0813/scan0023.h5 | Bin 74952 -> 74952 bytes test_data/IPTS34735_HB3_exp0813/scan0024.h5 | Bin 74952 -> 74952 bytes test_data/IPTS34735_HB3_exp0813/scan0025.h5 | Bin 74952 -> 74952 bytes test_data/IPTS34735_HB3_exp0813/scan0026.h5 | Bin 75280 -> 75280 bytes test_data/IPTS34735_HB3_exp0813/scan0027.h5 | Bin 75280 -> 75280 bytes test_data/IPTS34735_HB3_exp0813/scan0028.h5 | Bin 74952 -> 74952 bytes test_data/IPTS34735_HB3_exp0813/scan0029.h5 | Bin 74952 -> 74952 bytes test_data/IPTS34735_HB3_exp0813/scan0030.h5 | Bin 75784 -> 75784 bytes test_data/IPTS34735_HB3_exp0813/scan0031.h5 | Bin 69536 -> 69536 bytes test_data/IPTS34735_HB3_exp0813/scan0032.h5 | Bin 90112 -> 90112 bytes test_data/IPTS34735_HB3_exp0813/scan0033.h5 | Bin 73432 -> 73432 bytes test_data/IPTS34735_HB3_exp0813/scan0034.h5 | Bin 69240 -> 69240 bytes test_data/IPTS34735_HB3_exp0813/scan0035.h5 | Bin 79560 -> 79560 bytes test_data/IPTS34735_HB3_exp0813/scan0036.h5 | Bin 89848 -> 89848 bytes test_data/IPTS34735_HB3_exp0813/scan0037.h5 | Bin 103200 -> 103200 bytes test_data/IPTS34735_HB3_exp0813/scan0038.h5 | Bin 65144 -> 65144 bytes test_data/IPTS34735_HB3_exp0813/scan0039.h5 | Bin 103200 -> 103200 bytes test_data/IPTS34735_HB3_exp0813/scan0040.h5 | Bin 94144 -> 94144 bytes test_data/IPTS34735_HB3_exp0813/scan0041.h5 | Bin 62960 -> 62960 bytes test_data/IPTS34735_HB3_exp0813/scan0042.h5 | Bin 75456 -> 75456 bytes test_data/IPTS34735_HB3_exp0813/scan0043.h5 | Bin 75456 -> 75456 bytes test_data/IPTS34735_HB3_exp0813/scan0044.h5 | Bin 90176 -> 90176 bytes test_data/IPTS34735_HB3_exp0813/scan0045.h5 | Bin 142128 -> 142128 bytes test_data/IPTS34735_HB3_exp0813/scan0046.h5 | Bin 142128 -> 142128 bytes test_data/IPTS34735_HB3_exp0813/scan0047.h5 | Bin 89848 -> 89848 bytes test_data/IPTS34735_HB3_exp0813/scan0048.h5 | Bin 114552 -> 114552 bytes test_data/IPTS34735_HB3_exp0813/scan0049.h5 | Bin 113016 -> 113016 bytes test_data/IPTS34735_HB3_exp0813/scan0050.h5 | Bin 114552 -> 114552 bytes test_data/IPTS34735_HB3_exp0813/scan0051.h5 | Bin 113016 -> 113016 bytes test_data/IPTS34735_HB3_exp0813/scan0052.h5 | Bin 82608 -> 114552 bytes test_data/IPTS34735_HB3_exp0813/scan0053.h5 | Bin 0 -> 113016 bytes test_data/IPTS34735_HB3_exp0813/scan0054.h5 | Bin 0 -> 77672 bytes test_data/IPTS34735_HB3_exp0813/scan0055.h5 | Bin 0 -> 114552 bytes test_data/IPTS34735_HB3_exp0813/scan0056.h5 | Bin 0 -> 113016 bytes test_data/IPTS34735_HB3_exp0813/scan0057.h5 | Bin 0 -> 128416 bytes test_data/IPTS34735_HB3_exp0813/scan0058.h5 | Bin 0 -> 113016 bytes test_data/IPTS34735_HB3_exp0813/scan0059.h5 | Bin 0 -> 118176 bytes test_data/IPTS34735_HB3_exp0813/scan0060.h5 | Bin 0 -> 102248 bytes test_data/IPTS34735_HB3_exp0813/scan0061.h5 | Bin 0 -> 126144 bytes test_data/IPTS34735_HB3_exp0813/scan0062.h5 | Bin 0 -> 103152 bytes test_data/IPTS34735_HB3_exp0813/scan0063.h5 | Bin 0 -> 126144 bytes test_data/IPTS34735_HB3_exp0813/scan0064.h5 | Bin 0 -> 66256 bytes test_data/IPTS9865_HB1_exp0815/scan0001.h5 | Bin 31320 -> 31320 bytes test_data/IPTS9865_HB1_exp0815/scan0002.h5 | Bin 31320 -> 31320 bytes test_data/IPTS9865_HB1_exp0815/scan0003.h5 | Bin 64392 -> 64392 bytes test_data/IPTS9865_HB1_exp0815/scan0004.h5 | Bin 74672 -> 74672 bytes test_data/IPTS9865_HB1_exp0815/scan0005.h5 | Bin 64560 -> 64560 bytes test_data/IPTS9865_HB1_exp0815/scan0006.h5 | Bin 64560 -> 64560 bytes test_data/exp813/DataLogs/exp813datalog.txt | 5048 +++++++++++++++++ .../exp813/Datafiles/HB3_exp0813_scan0052.dat | 53 + .../exp813/Datafiles/HB3_exp0813_scan0053.dat | 110 + .../exp813/Datafiles/HB3_exp0813_scan0054.dat | 65 + .../exp813/Datafiles/HB3_exp0813_scan0055.dat | 114 + .../exp813/Datafiles/HB3_exp0813_scan0056.dat | 110 + .../exp813/Datafiles/HB3_exp0813_scan0057.dat | 134 + .../exp813/Datafiles/HB3_exp0813_scan0058.dat | 110 + .../exp813/Datafiles/HB3_exp0813_scan0059.dat | 118 + .../exp813/Datafiles/HB3_exp0813_scan0060.dat | 95 + .../exp813/Datafiles/HB3_exp0813_scan0061.dat | 130 + .../exp813/Datafiles/HB3_exp0813_scan0062.dat | 95 + .../exp813/Datafiles/HB3_exp0813_scan0063.dat | 130 + .../exp813/Datafiles/HB3_exp0813_scan0064.dat | 38 + test_data/exp813/LogFile.txt | 1447 +++++ .../exp813/Macros/GL Transverse scans.macro | 51 + test_data/exp813/Macros/crash.macro | 53 +- test_data/exp813/expconf.ini | 4 +- test_data/exp813/history.txt | 24 + test_data/tavi_exp424_test.h5 | Bin 1351 -> 1351 bytes test_data/tavi_test_exp0813.h5 | Bin 1351 -> 1351 bytes test_data/test_samples/mnte.json | 36 + test_data/test_samples/nitio3.json | 5 + tests/test_cooper_nathans.py | 6 +- tests/test_sample.py | 2 +- tests/test_tas.py | 80 +- 200 files changed, 8453 insertions(+), 398 deletions(-) create mode 100644 src/tavi/instrument/instrument_params/hb3_mnte.json delete mode 100644 src/tavi/instrument/ub_algorithms.py create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0053.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0054.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0055.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0056.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0057.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0058.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0059.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0060.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0061.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0062.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0063.h5 create mode 100644 test_data/IPTS34735_HB3_exp0813/scan0064.h5 create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0053.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0054.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0055.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0056.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0057.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0058.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0059.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0060.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0061.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0062.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0063.dat create mode 100644 test_data/exp813/Datafiles/HB3_exp0813_scan0064.dat create mode 100644 test_data/exp813/Macros/GL Transverse scans.macro create mode 100644 test_data/test_samples/mnte.json diff --git a/scripts/MnTe_contour.py b/scripts/MnTe_contour.py index 7384c0a..404b10f 100644 --- a/scripts/MnTe_contour.py +++ b/scripts/MnTe_contour.py @@ -1,12 +1,14 @@ -import matplotlib.pyplot as plt +import matplotlib.pylab as plt from tavi.data.spice_to_nexus import convert_spice_to_nexus from tavi.data.tavi import TAVI -from tavi.plotter import Plot1DManager, Plot2DManager +from tavi.instrument.resolution.cooper_nathans import CN +from tavi.plotter import Plot2DManager +from tavi.sample.xtal import Xtal spice_folder = "./test_data/exp813" nexus_folder = "./test_data/IPTS34735_HB3_exp0813" -if True: +if False: convert_spice_to_nexus(spice_folder, nexus_folder) tavi = TAVI() @@ -17,20 +19,75 @@ dataset = tavi.data["IPTS34735_HB3_exp0813"] # -------------- H0L const Q scans ------------ -scan_nums = [37, 39, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52] +scan_nums = [37, 39, 40] + list(range(44, 64)) scan_list1 = [dataset[f"scan{i:04}"] for i in scan_nums] sg1 = tavi.generate_scan_group( signals=scan_list1, signal_axes=("qh", "en", "detector"), ) -contour1 = sg1.generate_contour(rebin_steps=(0.025, 0.5), norm_channel="mcu", norm_val=1) +contour1 = sg1.generate_contour(rebin_steps=(0.025, 0.25), norm_channel="mcu", norm_val=1) plt2d1 = Plot2DManager() -plt2d1.zlim = [0, 1] -plt2d1.ylim = [0, 45] +plt2d1.zlim = [0, 1.5] +plt2d1.ylim = [0, 55] plt2d1.title = "" plt2d1.plot_contour(*contour1) +# --------------------------------------------------------- +# resolution calculation +# --------------------------------------------------------- +R0 = False +hb3 = CN() +instrument_config_json_path = "./src/tavi/instrument/instrument_params/hb3_mnte.json" +hb3.load_instrument_params_from_json(instrument_config_json_path) +sample_json_path = "./test_data/test_samples/mnte.json" +mnte = Xtal.from_json(sample_json_path) +hb3.mount_sample(mnte) + +# ----------------------------------------------- +# generate rez plot for point (1.3, 0, 1.3) +# ----------------------------------------------- +rez = hb3.cooper_nathans( + ei=35 + 14.7, + ef=14.7, + hkl=(1.3, 0, 1.3), + projection=None, + r0=R0, +) +rez.plot() +# ------------------------------------- +rez = hb3.cooper_nathans( + ei=35 + 14.7, + ef=14.7, + hkl=(1.3, 0, 1.3), + r0=R0, +) +rez.plot() +# -------------------------------------- +projection = ((1, 0, 1), (-1, 2, 0), (-0.2776, 0, 0.9607)) + +rez = hb3.cooper_nathans( + ei=35 + 14.7, + ef=14.7, + hkl=(1.3, 0, 1.3), + projection=projection, + r0=R0, +) +rez.plot() +# ----------------------------------------------- +# generate 2D rez plot +# ----------------------------------------------- +# projection = ((1, 0, 1), (-1, 2, 0), (-1, 0, 1)) +projection = ((1, 0, 1), (-1, 2, 0), (-0.2776, 0, 0.9607)) +q1 = [1, 1.5, 0.1] # start, stop, step +q2 = 0 +q3 = 0 +en = [2, 45, 5] # start, stop, step +ef = 14.7 + +plt2d1.rez_plot(hb3, projection, q1, q2, q3, en, ef, R0) + +plt.show() # ----------------- # s1 = dataset["scan0045"] @@ -46,39 +103,44 @@ # label += " H/L=1.20" # curve2 = (x, y, xerr, yerr, xlabel, ylabel, title, label) +# ----------------- +# s1 = dataset["scan0049"] +# # x, y, xerr, yerr, xlabel, ylabel, title, label +# curve1 = s1.generate_curve(norm_channel="mcu", norm_val=1) +# (x, y, xerr, yerr, xlabel, ylabel, title, label) = curve1 +# label += " H/L=1.3" +# curve1 = (x, y, xerr, yerr, xlabel, ylabel, title, label) -s1 = dataset["scan0049"] -# x, y, xerr, yerr, xlabel, ylabel, title, label -curve1 = s1.generate_curve(norm_channel="mcu", norm_val=1) -(x, y, xerr, yerr, xlabel, ylabel, title, label) = curve1 -label += " H/L=1.3" -curve1 = (x, y, xerr, yerr, xlabel, ylabel, title, label) - -s2 = dataset["scan0050"] -curve2 = s2.generate_curve(norm_channel="mcu", norm_val=1) -(x, y, xerr, yerr, xlabel, ylabel, title, label) = curve2 -label += " H/L=1.3" -curve2 = (x, y, xerr, yerr, xlabel, ylabel, title, label) - -s3 = dataset["scan0051"] -# x, y, xerr, yerr, xlabel, ylabel, title, label -curve3 = s3.generate_curve(norm_channel="mcu", norm_val=1) -(x, y, xerr, yerr, xlabel, ylabel, title, label) = curve3 -label += " H/L=1.325" -curve3 = (x, y, xerr, yerr, xlabel, ylabel, title, label) +# s2 = dataset["scan0050"] +# curve2 = s2.generate_curve(norm_channel="mcu", norm_val=1) +# (x, y, xerr, yerr, xlabel, ylabel, title, label) = curve2 +# label += " H/L=1.3" +# curve2 = (x, y, xerr, yerr, xlabel, ylabel, title, label) -s4 = dataset["scan0052"] -curve4 = s4.generate_curve(norm_channel="mcu", norm_val=1) -(x, y, xerr, yerr, xlabel, ylabel, title, label) = curve4 -label += " H/L=1.325" -curve4 = (x, y, xerr, yerr, xlabel, ylabel, title, label) +# s3 = dataset["scan0051"] +# # x, y, xerr, yerr, xlabel, ylabel, title, label +# curve3 = s3.generate_curve(norm_channel="mcu", norm_val=1) +# (x, y, xerr, yerr, xlabel, ylabel, title, label) = curve3 +# label += " H/L=1.325" +# curve3 = (x, y, xerr, yerr, xlabel, ylabel, title, label) -p1 = Plot1DManager() -p1.plot_curve(*curve1) +# s4 = dataset["scan0052"] +# curve4 = s4.generate_curve(norm_channel="mcu", norm_val=1) +# (x, y, xerr, yerr, xlabel, ylabel, title, label) = curve4 +# label += " H/L=1.325" +# curve4 = (x, y, xerr, yerr, xlabel, ylabel, title, label) -p1.plot_curve(*curve3) -p1.plot_curve(*curve2) -p1.plot_curve(*curve4) +# p1 = Plot1DManager() +# p1.plot_curve(*curve1) +# p1.plot_curve(*curve3) +# p1.plot_curve(*curve2) +# p1.plot_curve(*curve4) -plt.show() +# ----------------- +# s1 = dataset["scan0062"] +# # x, y, xerr, yerr, xlabel, ylabel, title, label +# curve1 = s1.generate_curve(norm_channel="mcu", norm_val=1) +# p1 = Plot1DManager() +# p1.plot_curve(*curve1) +# plt.show() diff --git a/scripts/example_cooper_nathans.py b/scripts/example_cooper_nathans.py index 04befb5..0ed0c63 100755 --- a/scripts/example_cooper_nathans.py +++ b/scripts/example_cooper_nathans.py @@ -2,14 +2,15 @@ import numpy as np from tavi.instrument.resolution.cooper_nathans import CN +from tavi.sample.xtal import Xtal np.set_printoptions(floatmode="fixed", precision=4) def test_copper_nathans_localQ(tas_params): - tas, ei, ef, hkl, _, R0 = tas_params + tas, ei, ef, hkl, _, r0 = tas_params - rez = tas.cooper_nathans(ei=ei, ef=ef, hkl=hkl, projection=None, R0=R0) + rez = tas.cooper_nathans(ei=ei, ef=ef, hkl=hkl, projection=None, r0=r0) rez.plot() @@ -35,9 +36,9 @@ def test_cooper_nathans_compare_3(): sample_json_path = "./test_data/test_samples/sample_test.json" tas.load_instrument_params_from_json(instrument_config_json_path) - tas.load_sample_from_json(sample_json_path) + tas.mount_sample(Xtal.from_json(sample_json_path)) - if tas.sample.ub_matrix is None: + if tas.sample.ub_mat is None: peak_list = [(0, 0, 2), (0, 2, 0)] angles_list = [ (-51.530388, -45.220125, -0.000500, -2.501000), @@ -50,9 +51,9 @@ def test_cooper_nathans_compare_3(): hkl = (0, 0, 2) # projection = ((1, 0, 0), (-1, 2, 0), (0, 0, 1)) projection = ((0, 0, 1), (0, -1, 0), (2, -1, 0)) - R0 = False + r0 = False - tas_params = (tas, ei, ef, hkl, projection, R0) + tas_params = (tas, ei, ef, hkl, projection, r0) test_copper_nathans_localQ(tas_params) test_copper_nathans_hkl(tas_params) @@ -66,12 +67,12 @@ def test_cooper_nathans_CTAX(): sample_json_path = "./test_data/test_samples/nitio3.json" tas.load_instrument_params_from_json(instrument_config_json_path) - tas.load_sample_from_json(sample_json_path) + tas.mount_sample(sample_json_path) # ----------- reset UB ----------------------------------- # print(f"u={tas.sample.u}") # print(f"v={tas.sample.v}") - # tas.sample.ub_matrix = tas.sample.uv_to_ub_matrix(u=[1, 1, 0], v=[0, 0, 1]) + # tas.sample.ub_mat = tas.sample.uv_to_ub_matrix(u=[1, 1, 0], v=[0, 0, 1]) # print(f"u={tas.sample.u}") # print(f"v={tas.sample.v}") # ---------------------------------------------------------- @@ -81,9 +82,9 @@ def test_cooper_nathans_CTAX(): hkl = (0, 0, 3) projection = ((1, 1, 0), (0, 0, 1), (1, -1, 0)) - R0 = True + r0 = True - tas_params = (tas, ei, ef, hkl, projection, R0) + tas_params = (tas, ei, ef, hkl, projection, r0) test_copper_nathans_localQ(tas_params) test_copper_nathans_hkl(tas_params) diff --git a/src/tavi/data/spice_to_nexus.py b/src/tavi/data/spice_to_nexus.py index 8de44c3..bfd8050 100644 --- a/src/tavi/data/spice_to_nexus.py +++ b/src/tavi/data/spice_to_nexus.py @@ -145,6 +145,7 @@ def _nenux_entry(nxentry, das_logs): """Entry containing scan info""" nxentry.attrs["NX_class"] = "NXentry" + # nxentry.attrs["NX_class"] = "NXroot" nxentry.attrs["EX_required"] = "true" # Valid enumeration values for root['/entry']['definition'] are: NXtas diff --git a/src/tavi/instrument/goni.py b/src/tavi/instrument/goni.py index 6bc7040..892a227 100644 --- a/src/tavi/instrument/goni.py +++ b/src/tavi/instrument/goni.py @@ -196,7 +196,7 @@ def stacking_order_yxy(r_mat): def set_limit( self, motor_name: Literal["omega", "sgl", "sgu", "chi", "phi"], - motor_range: tuple[float] = (-180, 180), + motor_range: tuple[float, float] = (-180, 180), ): "set goiometer motor limt" setattr(self, motor_name + "_limit", motor_range) diff --git a/src/tavi/instrument/instrument_params/hb3_mnte.json b/src/tavi/instrument/instrument_params/hb3_mnte.json new file mode 100644 index 0000000..f91f963 --- /dev/null +++ b/src/tavi/instrument/instrument_params/hb3_mnte.json @@ -0,0 +1,76 @@ +{ + "source": { + "shape": "rectangular", + "width": 15.0, + "height": 15.0 + }, + "guide": { + "in_use": false, + "div_h": 0.0, + "div_v": 0.0 + }, + "monochromator": { + "type": "PG002", + "mosaic_h": 30, + "mosaic_v": 30, + "sense": -1, + "shape": "rectangular", + "width": 7.62, + "height": 10.16, + "depth": 0.25, + "curved_h": false, + "curvh": 0.0, + "optimally_curved_h": false, + "curved_v": false, + "curvv": 0.4, + "optimally_curved_v": false + }, + "monitor": { + "shape": "rectangular", + "width": 5, + "height": 12 + }, + "goniometer": { + "sense": 1, + "type": "Y-ZX" + }, + "analyzer": { + "type": "Pg002", + "d_spacing": 3.35416, + "mosaic_h": 40, + "mosaic_v": 40, + "sense": -1, + "shape": "rectangular", + "width": 7.62, + "height": 7, + "depth": 0.2, + "curved_h": false, + "curvh": 0.0, + "optimally_curved_h": false, + "curved_v": true, + "curvv": 163.2, + "optimally_curved_v": false + }, + "detector": { + "shape": "rectangular", + "width": 4, + "height": 12.0 + }, + "distances": { + "src_mono": 650.0, + "mono_sample": 190.0, + "sample_ana": 106.0, + "ana_det": 60.0, + "mono_monitor": 86.0 + }, + "collimators": { + "h_pre_mono": 48, + "h_pre_sample": 40, + "h_post_sample": 40, + "h_post_ana": 120, + "v_pre_mono": 120, + "v_pre_sample": 120, + "v_post_sample": 120, + "v_post_ana": 120 + } +} \ No newline at end of file diff --git a/src/tavi/instrument/resolution/cooper_nathans.py b/src/tavi/instrument/resolution/cooper_nathans.py index 9ff2999..79e2a16 100755 --- a/src/tavi/instrument/resolution/cooper_nathans.py +++ b/src/tavi/instrument/resolution/cooper_nathans.py @@ -7,7 +7,7 @@ from tavi.instrument.resolution.reso_ellipses import ResoEllipsoid from tavi.instrument.tas import TAS from tavi.instrument.tas_cmponents import Collimators -from tavi.utilities import ksq2eng, rotation_matrix_2d, sig2fwhm +from tavi.utilities import get_angle_bragg, get_angle_from_triangle, ksq2eng, rotation_matrix_2d, sig2fwhm class CN(TAS): @@ -52,17 +52,23 @@ def validate_instrument_parameters(self): """Check if enough instrument parameters are provided for Cooper-Nathans mehtod""" # monochromator - if (mono := self.monochromator) is None: - raise ValueError("Monochromator info are missing.") - elif None in (mono_mosaic := (mono.mosaic_h, mono.mosaic_v)): + try: + mono = self.monochromator + except AttributeError: + print("Monochromator info are missing.") + + if None in (mono_mosaic := (mono.mosaic_h, mono.mosaic_v)): raise ValueError("Mosaic of monochromator is missing.") elif not all(val > 0 for val in mono_mosaic): raise ValueError("Mosaic of monochromator cannot be negative.") # analyzer - if (ana := self.analyzer) is None: - raise ValueError("Analyzer info are missing.") - elif None in (ana_mosaic := (ana.mosaic_h, ana.mosaic_v)): + try: + ana = self.analyzer + except AttributeError: + print("Analyzer info are missing.") + + if None in (ana_mosaic := (ana.mosaic_h, ana.mosaic_v)): raise ValueError("Mosaic of analyzer is missing.") elif not all(val > 0 for val in ana_mosaic): raise ValueError("Mosaic of analyzer cannot be negative.") @@ -160,25 +166,26 @@ def calc_mat_c(theta_m, theta_a): def cooper_nathans( self, + hkl: tuple[float, float, float], ei: float, ef: float, - hkl: tuple[float], - projection: tuple[tuple, tuple, tuple] = ((1, 0, 0), (0, 1, 0), (0, 0, 1)), + projection: tuple = ((1, 0, 0), (0, 1, 0), (0, 0, 1)), r0: bool = False, ): """Calculate resolution using Cooper-Nathans method Args: - ei (float): incident energy, in units of meV - ef (float): final energy, in units of meV - hkl (tuple of floats): momentum transfer, miller indices in reciprocal lattice - R0 (bool): calculate normalization factor if True + hkl : momentum transfer, miller indices in reciprocal lattice + ei: incident energy, in units of meV + ef : final energy, in units of meV + R0 : calculate normalization factor if True projection (tuple): three non-coplaner vectors. If projection is None, the calculation is done in local Q frame """ self.validate_instrument_parameters() - rez = ResoEllipsoid() + if not (isinstance(hkl, tuple | list) and len(hkl) == 3): + raise ValueError("q needs to be a tupe of size 3.") if self._mat_f is None: self._mat_f = CN.calc_mat_f(self.monochromator, self.analyzer) @@ -186,110 +193,77 @@ def cooper_nathans( if self._mat_g is None: self._mat_g = CN.calc_mat_g(self.collimators) - if not (isinstance(hkl, tuple | list) and len(hkl) == 3): - raise ValueError("q needs to be a tupe of size 3.") + # q_lab = conv_mat @ hkl + # q_mod = np.linalg.norm(q_lab) + q_mod = float(la.norm(self.sample.b_mat @ hkl)) * 2 * np.pi - rez.projection = projection - rez.hkl = hkl - rez.determinate_frame(self.sample) - - angles = self.find_angles(hkl, ei, ef) # s2, s1, sgl, sgu - if angles is not None: - r_mat = self.goniometer.r_mat(angles[1:]) # s1, sgl, sgu - ub_mat = self.sample.ub_matrix - conv_mat = 2 * np.pi * r_mat @ ub_mat - q_lab = conv_mat @ hkl - q_mod = np.linalg.norm(q_lab) - rez.STATUS = True - else: + ki = np.sqrt(ei / ksq2eng) + kf = np.sqrt(ef / ksq2eng) + + rez = ResoEllipsoid(hkl=hkl, en=ei - ef, projection=projection, sample=self.sample) + + try: + two_theta = get_angle_from_triangle(ki, kf, q_mod) * self.goniometer.sense + except TypeError: rez.STATUS = False + print(f"Cannot calculate two theta for ei={ei}, ef={ef}, hkl={hkl}.") + return rez + + # phi = , always has the oppositie sign of s2 + phi = get_angle_from_triangle(ki, q_mod, kf) * self.goniometer.sense * (-1) + + theta_m = get_angle_bragg(ki, self.monochromator.d_spacing) * self.monochromator.sense + theta_a = get_angle_bragg(kf, self.analyzer.d_spacing) * self.analyzer.sense + + # TODO + # curved monochromator and analyzer - if rez.STATUS: - ki = np.sqrt(ei / ksq2eng) - kf = np.sqrt(ef / ksq2eng) - en = ei - ef - rez.en = en - - two_theta = get_angle(ki, kf, q_mod) * self.goniometer.sense - - # phi = , always has the oppositie sign of s2 - phi = get_angle(ki, q_mod, kf) * self.goniometer.sense * (-1) - - theta_m = get_angle_bragg(ki, self.monochromator.d_spacing) * self.monochromator.sense - theta_a = get_angle_bragg(kf, self.analyzer.d_spacing) * self.analyzer.sense - - # TODO - # curved monochromator and analyzer - - # TODO - # reflection efficiency - - mat_a = CN.calc_mat_a(ki, kf, theta_m, theta_a) - mat_b = CN.calc_mat_b(ki, kf, phi, two_theta) - mat_c = CN.calc_mat_c(theta_m, theta_a) - - mat_h = mat_c.T @ self._mat_f @ mat_c + self._mat_g - mat_h_inv = la.inv(mat_h) - mat_ba = mat_b @ mat_a - mat_cov = mat_ba @ mat_h_inv @ mat_ba.T - - # TODO hwo to add smaple mosaic i cooper-nathans? - mat_cov[1, 1] += q_mod**2 * self.sample._mosaic_h**2 - mat_cov[2, 2] += q_mod**2 * self.sample._mosaic_v**2 - - mat_reso = la.inv(mat_cov) * sig2fwhm**2 - - if rez.frame == "q": - rez.mat = mat_reso - rez.q = (q_mod, 0, 0) - - elif rez.frame == "hkl": - conv_mat_4d = np.eye(4) - conv_mat_4d[0:3, 0:3] = ( - np.array( - [ - [np.sin(phi), 0, np.cos(phi)], - [np.cos(phi), 0, -np.sin(phi)], - [0, 1, 0], - ] - ) - @ conv_mat - ) - rez.mat = conv_mat_4d.T @ mat_reso @ conv_mat_4d - - elif rez.frame == "proj": - conv_mat_4d = np.eye(4) - conv_mat_4d[0:3, 0:3] = ( - np.array( - [ - [np.sin(phi), 0, np.cos(phi)], - [np.cos(phi), 0, -np.sin(phi)], - [0, 1, 0], - ] - ) - @ conv_mat - @ mat_w - ) - rez.mat = conv_mat_4d.T @ mat_reso @ conv_mat_4d - - # TODO check normalization factor - # ------------------------------------------------------------------------- - # - if the instruments works in kf=const mode and the scans are counted for - # or normalised to monitor counts no ki^3 or kf^3 factor is needed. - # - if the instrument works in ki=const mode the kf^3 factor is needed. - - if r0: # calculate - r0 = np.pi**2 / 4 / np.sin(theta_m) / np.sin(theta_a) - r0 *= np.sqrt(np.linalg.det(self._mat_f) / np.linalg.det(mat_h)) - else: - r0 = 0 - - rez.r0 = r0 - - if np.isnan(rez.r0) or np.isinf(rez.r0) or np.isnan(rez.mat.any()) or np.isinf(rez.mat.any()): - rez.STATUS = False - else: - rez.STATUS = True + # TODO + # reflection efficiency + + mat_a = CN.calc_mat_a(ki, kf, theta_m, theta_a) + mat_b = CN.calc_mat_b(ki, kf, phi, two_theta) + mat_c = CN.calc_mat_c(theta_m, theta_a) + + mat_h = mat_c.T @ self._mat_f @ mat_c + self._mat_g + mat_h_inv = la.inv(mat_h) + mat_ba = mat_b @ mat_a + mat_cov = mat_ba @ mat_h_inv @ mat_ba.T + + # TODO how to add smaple mosaic in cooper-nathans? + mat_cov[1, 1] += q_mod**2 * self.sample._mosaic_h**2 + mat_cov[2, 2] += q_mod**2 * self.sample._mosaic_v**2 + + mat_reso = la.inv(mat_cov) * sig2fwhm**2 + + angles = self.calculate_motor_angles(hkl, ei, ef) + if angles is None: + rez.STATUS = False + return rez + + r_mat = self.goniometer.r_mat(angles) + ub_mat = self.sample.ub_mat + conv_mat = 2 * np.pi * r_mat @ ub_mat + rez.project_to_frame(mat_reso, phi, conv_mat) + + # TODO check normalization factor + # ------------------------------------------------------------------------- + # - if the instruments works in kf=const mode and the scans are counted for + # or normalised to monitor counts no ki^3 or kf^3 factor is needed. + # - if the instrument works in ki=const mode the kf^3 factor is needed. + + if r0: # calculate + r0 = np.pi**2 / 4 / np.sin(theta_m) / np.sin(theta_a) + r0 *= np.sqrt(np.linalg.det(self._mat_f) / np.linalg.det(mat_h)) + else: + r0 = 0 + + rez.r0 = r0 + + if np.isnan(rez.r0) or np.isinf(rez.r0) or np.isnan(rez.mat.any()) or np.isinf(rez.mat.any()): + rez.STATUS = False + else: + rez.STATUS = True rez.set_labels() return rez diff --git a/src/tavi/instrument/resolution/reso_ellipses.py b/src/tavi/instrument/resolution/reso_ellipses.py index 7aa29cd..e187f75 100755 --- a/src/tavi/instrument/resolution/reso_ellipses.py +++ b/src/tavi/instrument/resolution/reso_ellipses.py @@ -1,3 +1,5 @@ +from typing import Optional + import matplotlib.pyplot as plt import numpy as np import numpy.linalg as la @@ -5,6 +7,7 @@ from mpl_toolkits.axisartist.grid_finder import MaxNLocator from mpl_toolkits.axisartist.grid_helper_curvelinear import GridHelperCurveLinear +from tavi.sample.xtal import Xtal from tavi.utilities import get_angle_vec, sig2fwhm np.set_printoptions(floatmode="fixed", precision=4) @@ -196,36 +199,38 @@ class ResoEllipsoid(object): """ - g_eps = 1e-8 + EPS = 1e-8 - def __init__(self): + def __init__( + self, + hkl: tuple[float, float, float], + en: float, + sample: Xtal, + projection: Optional[tuple] = ((1, 0, 0), (0, 1, 0), (0, 0, 1)), + ) -> None: - self.STATUS = None + self.STATUS: Optional[bool] = None self.q = None - self.hkl = None - self.en = None - self.frame = None - self.projection = None + self.hkl = hkl + self.en = en + + self.projection = projection self.angles = None self.axes_labels = None self.mat = None self.r0 = None - def determinate_frame(self, sample): - """determinate the frame from the projection vectors""" match self.projection: case None: # Local Q frame self.frame = "q" self.angles = (90, 90, 90) - self.STATUS = True + self.q = (np.linalg.norm(sample.b_mat @ hkl), 0, 0) case ((1, 0, 0), (0, 1, 0), (0, 0, 1)): # HKL self.frame = "hkl" - self.q = self.hkl + self.q = hkl self.angles = (sample.gamma_star, sample.alpha_star, sample.beta_star) - self.STATUS = True - case _: # customized projection p1, p2, p3 = self.projection reciprocal_vecs = [sample.a_star_vec, sample.b_star_vec, sample.c_star_vec] @@ -233,12 +238,11 @@ def determinate_frame(self, sample): v2 = np.sum([p2[i] * vec for (i, vec) in enumerate(reciprocal_vecs)], axis=0) v3 = np.sum([p3[i] * vec for (i, vec) in enumerate(reciprocal_vecs)], axis=0) - if np.dot(v1, np.cross(v2, v3)) < ResoEllipsoid.g_esp: + if np.dot(v1, np.cross(v2, v3)) < ResoEllipsoid.EPS: raise ValueError("Projection is left handed! Please use right-handed projection") - if np.abs(np.dot(v1, np.cross(v2, v3))) < ResoEllipsoid.g_esp: + if np.abs(np.dot(v1, np.cross(v2, v3))) < ResoEllipsoid.EPS: raise ValueError("Projection vectors need to be non-coplanar.") - # mat_w = np.array([p1, p2, p3]).T mat_w_inv = np.array([np.cross(p2, p3), np.cross(p3, p1), np.cross(p1, p2)]) / np.dot( p1, np.cross(p2, p3) ) @@ -246,7 +250,44 @@ def determinate_frame(self, sample): self.frame = "proj" self.q = hkl_prime self.angles = (get_angle_vec(v1, v2), get_angle_vec(v2, v3), get_angle_vec(v3, v1)) - self.STATUS = True + + def project_to_frame(self, mat_reso, phi, conv_mat): + """determinate the frame from the projection vectors""" + match self.frame: + case "q": + self.mat = mat_reso + + case "hkl": + conv_mat_4d = np.eye(4) + conv_mat_4d[0:3, 0:3] = ( + np.array( + [ + [np.sin(phi), 0, np.cos(phi)], + [np.cos(phi), 0, -np.sin(phi)], + [0, 1, 0], + ] + ) + @ conv_mat + ) + self.mat = conv_mat_4d.T @ mat_reso @ conv_mat_4d + + case "proj": + p1, p2, p3 = self.projection + mat_w = np.array([p1, p2, p3]).T + + conv_mat_4d = np.eye(4) + conv_mat_4d[0:3, 0:3] = ( + np.array( + [ + [np.sin(phi), 0, np.cos(phi)], + [np.cos(phi), 0, -np.sin(phi)], + [0, 1, 0], + ] + ) + @ conv_mat + @ mat_w + ) + self.mat = conv_mat_4d.T @ mat_reso @ conv_mat_4d def volume(self): """volume of the ellipsoid""" @@ -303,7 +344,7 @@ def incoh_fwhms(self, axis=None): def quadric_proj(quadric, idx): """projects along one axis of the quadric""" - if np.abs(quadric[idx, idx]) < ResoEllipsoid.g_eps: + if np.abs(quadric[idx, idx]) < ResoEllipsoid.EPS: return np.delete(np.delete(quadric, idx, axis=0), idx, axis=1) # row/column along which to perform the orthogonal projection diff --git a/src/tavi/instrument/tas.py b/src/tavi/instrument/tas.py index 4d0d17e..afb79af 100644 --- a/src/tavi/instrument/tas.py +++ b/src/tavi/instrument/tas.py @@ -5,7 +5,7 @@ from tavi.instrument.tas_base import TASBase from tavi.sample.xtal import Xtal -from tavi.utilities import Peak, UBConf, en2q, get_angle_from_triangle +from tavi.utilities import MotorAngles, Peak, UBConf, en2q, get_angle_from_triangle, ksq2eng class TAS(TASBase): @@ -92,16 +92,18 @@ def calculate_ub_matrix(self, peaks: tuple[Peak, ...]): if not isinstance(self.sample, Xtal): raise ValueError("sample needs to be Xtal class for UB calculation.") - if (num_of_peaks := len(peaks)) == 2: - ubconf = self._find_u_from_two_peaks(peaks) - self.sample.set_orientation(ubconf) - - elif num_of_peaks == 3: - ubconf = self._find_ub_from_three_peaks(peaks) - elif num_of_peaks > 3: - ubconf = self._find_ub_from_multiple_peaks(peaks) - else: - raise ValueError("Not enough peaks for UB matrix determination.") + match (num_of_peaks := len(peaks)): + case 2: + ubconf = self._find_u_from_two_peaks(peaks) + self.sample.set_orientation(ubconf) + case 3: + ubconf = self._find_ub_from_three_peaks(peaks) + self.sample.set_orientation(ubconf) + case _ if num_of_peaks > 3: + ubconf = self._find_ub_from_multiple_peaks(peaks) + self.sample.set_orientation(ubconf) + case _: + raise ValueError("Not enough peaks for UB matrix determination.") def _find_u_from_two_peaks( self, @@ -175,3 +177,96 @@ def _find_ub_from_multiple_peaks( """Find UB matrix from more than three observed peaks for a given goniomete""" ubconf = UBConf() return ubconf + + @staticmethod + def norm_mat(t1, t2, t3): + mat = np.array([t1 / np.linalg.norm(t1), t2 / np.linalg.norm(t2), t3 / np.linalg.norm(t3)]).T + return mat + + def _t_mat_minimal_tilt(self, hkl: np.ndarray): + """Build matrix T assuming minimal goniometer tilt angles""" + + if not isinstance(self.sample, Xtal): + raise ValueError("sample needs to be Xtal class for UB calculation.") + + q = self.sample.ub_mat @ hkl + t1 = q / np.linalg.norm(q) + + EPS = 1e-8 # zero + if self.sample.plane_normal is None: + raise ValueError("Plane normal vector is not known.") + if self.sample.in_plane_ref is None: + raise ValueError("In-plnae reference vector is not known.") + + plane_normal = np.array(self.sample.plane_normal) + in_plane_ref = np.array(self.sample.in_plane_ref) + if np.dot(t1, plane_normal) < EPS: # t1 in plane + t3 = plane_normal + t2 = np.cross(t3, t1) + return TAS.norm_mat(t1, t2, t3) + + # t1 not in plane, need to change tilts + if np.linalg.norm(np.cross(plane_normal, t1)) < EPS: + # oops, t1 along plane_normal + t2 = in_plane_ref + t3 = np.cross(t1, t2) + return TAS.norm_mat(t1, t2, t3) + + else: + t2p = np.cross(plane_normal, t1) + t3 = np.cross(t1, t2p) + t2 = np.cross(t3, t1) + return TAS.norm_mat(t1, t2, t3) + + def calculate_motor_angles(self, peak: tuple, ei: float, ef: Optional[float] = None): + """calculate motor positions for a given peak if UB matrix has been determined + + Args: + peak (tuple): (h, k, l) of a peak + ei (float): incident neutron energy, in meV + ef (float): final neutron energy, in meV + + """ + S2_MIN_DEG = 1 + + try: + h, k, l = peak + except ValueError: + print("hkl should have the format (h, k, l).") + hkl = np.array((h, k, l)) + + ki = np.sqrt(ei / ksq2eng) + if ef is None: + kf = ki + else: + kf = np.sqrt(ef / ksq2eng) + + if self.sample.b_mat is None: + b_mat = self.sample.b_mat_from_lattice() + else: + b_mat = self.sample.b_mat + q_norm = np.sqrt(4 * np.pi**2 * hkl.T @ b_mat.T @ b_mat @ hkl) + + two_theta = get_angle_from_triangle(ki, kf, q_norm) + + if two_theta is None: + print(f"Triangle cannot be closed at q={hkl}, en={ei-ef} meV.") + return None + if np.rad2deg(two_theta) < S2_MIN_DEG: + print(f"s2 is smaller than {S2_MIN_DEG} deg at q={hkl}.") + return None + + two_theta = np.rad2deg(two_theta) * self.goniometer.sense + t_mat = self._t_mat_minimal_tilt(hkl) + t_mat_inv = np.linalg.inv(t_mat) + + q_lab1 = TAS.q_lab(two_theta, ki, kf) / q_norm + q_lab2 = np.array([q_lab1[2], 0, -q_lab1[0]]) + q_lab3 = np.array([0, 1, 0]) + + q_lab_mat = TAS.norm_mat(q_lab1, q_lab2, q_lab3) + r_mat = q_lab_mat @ t_mat_inv + + _, omega, sgl, sgu, chi, phi = self.goniometer.angles_from_r_mat(r_mat) + + return MotorAngles(two_theta, omega, sgl, sgu, chi, phi) diff --git a/src/tavi/instrument/ub_algorithms.py b/src/tavi/instrument/ub_algorithms.py deleted file mode 100644 index 33247a1..0000000 --- a/src/tavi/instrument/ub_algorithms.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- coding: utf-8 -*- - -import numpy as np - - -def find_ub(self, peaks, angles, ei=13.5, ef=None): - """calculate UB matrix from peaks and motor positions - - Args: - peaks (list) - angles (list) - ei (float): incident neutron energy, in meV - ef (float): final neutron energy, in meV - - """ - - self.sample.ub_peaks = peaks - self.sample.ub_angles = angles - - ki = np.sqrt(ei / ksq2eng) - if ef is None: - kf = ki - else: - kf = np.sqrt(ef / ksq2eng) - - if not len(peaks) == len(angles): - print("Number of peaks and angles provided do not match.") - - if len(peaks) == 2: - b_mat = self.sample.b_mat() - ( - u_mat, - in_plane_ref, - plane_normal, - ) = self._find_u_from_2peaks(peaks, angles, ki, kf) - ub_matrix = u_mat @ b_mat - - self.sample.in_plane_ref = in_plane_ref - self.sample.plane_normal = plane_normal - - # TODO - elif len(peaks) == 3: # find_ub_from_3peaks - pass - # TODO - elif len(peaks) > 3: # find_ub_from_mulitple_peaks - pass - else: - print("I don't even know what you're doing.") - - self.sample.ub_matrix = ub_matrix - inv_ub_matrix = np.linalg.inv(ub_matrix) - self.sample.inv_ub_matrix = inv_ub_matrix - - # print(np.round(ub_matrix, 6)) - - -def find_angles(self, peak, ei=13.5, ef=None): - """calculate motor positions for a given peak if UB matrix has been determined - - Args: - peak (tuple): (h, k, l) of a peak - ei (float): incident neutron energy, in meV - ef (float): final neutron energy, in meV - - """ - S2_MIN_DEG = 1 - - hkl = np.array(peak) - ki = np.sqrt(ei / ksq2eng) - if ef is None: - kf = ki - else: - kf = np.sqrt(ef / ksq2eng) - - b_mat = self.sample.b_mat() - - q_sq = 4 * np.pi**2 * hkl.T @ b_mat.T @ b_mat @ hkl - q_norm = np.sqrt(q_sq) - - # two_theta = np.arccos((ki**2 + kf**2 - q_sq) / (2 * ki * kf)) * self.goniometer.sense - two_theta = get_angle(ki, kf, q_norm) - - if two_theta is None: - print(f"Triangle cannot be closed at q={hkl}, en={ei-ef} meV.") - angles = None - elif np.rad2deg(two_theta) < S2_MIN_DEG: - print(f"s2 is smaller than {S2_MIN_DEG} deg at q={hkl}.") - angles = None - else: - two_theta = np.rad2deg(two_theta) * self.goniometer.sense - q = self.sample.ub_matrix @ hkl - t1 = q / np.linalg.norm(q) - - eps = 1e-8 # zero - plane_normal = self.sample.plane_normal - in_plane_ref = self.sample.in_plane_ref - - # Minimal tilts - if np.dot(t1, plane_normal) < eps: # t1 in plane - t3 = plane_normal - t2 = np.cross(t3, t1) - else: # t1 not in plane, need to change tilts - if np.linalg.norm(np.cross(plane_normal, t1)) < eps: - # oops, t1 along plane_normal - t2 = in_plane_ref - t3 = np.cross(t1, t2) - else: - t2p = np.cross(plane_normal, t1) - t3 = np.cross(t1, t2p) - t2 = np.cross(t3, t1) - - t_mat = np.array( - [t1, t2 / np.linalg.norm(t2), t3 / np.linalg.norm(t3)], - ).T - - t_mat_inv = np.linalg.inv(t_mat) - - q_lab1 = TripleAxisSpectrometer.q_lab(two_theta, ki, kf) / q_norm - q_lab2 = np.array([q_lab1[2], 0, -q_lab1[0]]) - q_lab3 = np.array([0, 1, 0]) - - q_lab_mat = np.array([q_lab1, q_lab2, q_lab3]).T - r_mat = q_lab_mat @ t_mat_inv - - angles = np.round((two_theta,) + self.goniometer.angles_from_r_mat(r_mat), 6) - - return angles diff --git a/src/tavi/plotter.py b/src/tavi/plotter.py index 763ef01..e242719 100644 --- a/src/tavi/plotter.py +++ b/src/tavi/plotter.py @@ -1,3 +1,4 @@ +# import matplotlib.colors as colors import matplotlib.pylab as plt import numpy as np from mpl_toolkits.axisartist import Axes @@ -128,6 +129,15 @@ def plot_contour( vmin=vmin, vmax=vmax, ) + # LOG Y + # p = self.ax.pcolormesh( + # x, + # y, + # z, + # shading=self.shading, + # cmap=self.cmap, + # norm=colors.LogNorm(vmin=0.1, vmax=10), + # ) self.fig.colorbar(p, ax=self.ax) self.set_labels() diff --git a/src/tavi/sample/sample.py b/src/tavi/sample/sample.py index a062507..d4b036d 100755 --- a/src/tavi/sample/sample.py +++ b/src/tavi/sample/sample.py @@ -51,13 +51,13 @@ def __init__( self.type = "generic" self.json_dict: Optional[dict] = None # lattice parameters - self.a: float = 1.0 - self.b: float = 1.0 - self.c: float = 1.0 - self.alpha: float = 90.0 - self.beta: float = 90.0 - self.gamma: float = 90.0 - self.b_mat: Optional[np.ndarray] = None + self.a: float + self.b: float + self.c: float + self.alpha: float + self.beta: float + self.gamma: float + self.b_mat: np.ndarray # parameters for resolution calculation self.shape: str = "cuboid" self.width: float = 1.0 # in cm diff --git a/src/tavi/sample/xtal.py b/src/tavi/sample/xtal.py index 71203fa..1228338 100755 --- a/src/tavi/sample/xtal.py +++ b/src/tavi/sample/xtal.py @@ -34,7 +34,7 @@ def __init__( self.ub_peaks: Optional[tuple[Peak, ...]] = None self.u_mat: Optional[np.ndarray] = None self.ub_mat: Optional[np.ndarray] = None - # self.inv_ub_matrix: Optional[np.ndarray] = None + # self.inv_ub_mat: Optional[np.ndarray] = None self.plane_normal: Optional[np.ndarray] = None self.in_plane_ref: Optional[np.ndarray] = None @@ -45,12 +45,16 @@ def from_json(cls, path_to_json): ub_matrix = xtal.json_dict.get("ub_matrix") if ub_matrix is not None: - xtal.ub_matrix = np.array(ub_matrix).reshape(3, 3) + xtal.ub_mat = np.array(ub_matrix).reshape(3, 3) plane_normal = xtal.json_dict.get("plane_normal") if plane_normal is not None: xtal.plane_normal = np.array(plane_normal) + in_plane_ref = xtal.json_dict.get("in_plane_ref") + if in_plane_ref is not None: + xtal.in_plane_ref = np.array(in_plane_ref) + return xtal @property diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0001.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0001.h5 index e182ae21d0eaaf170c4eb07dfbe7856526834559..252094f166636411cc60cf4b3999024343cb443d 100644 GIT binary patch delta 34 pcmeA;#nN$#rC|%>LRJC85JOWdQwu8-OFc_NGh@r`8(A5{LRJBT5JNL76Cg6uGqW@|G~K?Dl`&i%0K(P@<_rWRHvmU@<^hL%P~+pFps^V9+EcngjI delta 35 pcmaEHmhHt^wuUW?ne~DOA%s-7`V9RTft3wr<_rWRHvmU@;J#wNyQ+pFps^V9+EqzjV( delta 35 pcmaEHmhHt^wuUW?ne~DOA%<_rWRJF26_gDCZ?vA+pFps^V9+Dv{!i3hn>^ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0006.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0006.h5 index f05f02a98efdd64d81b8e7b350c2e2e056fd43ba..45512d71d180f47db898f0df965e9ff70f90d7ae 100644 GIT binary patch delta 35 qcmaEHmhHt^wuUW?ne~E(A%><_rWRJF26_hO=0--w+pFps^V9+Dw+nv& delta 35 pcmaEHmhHt^wuUW?ne~DOA%<_rWRJF26~1DmWD=V+pFps^V9+DmJ59V delta 35 pcmaEHmhHt^wuUW?ne~DOA%s delta 35 pcmdn6igm*()`l&NH*EwBLJZBUOn}Hp&(g@$+{k$QD;q{P2>{!x3hw{_ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0009.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0009.h5 index 2654cc4188bb7e64ce85cf7bfb3e0c95dabba137..40cf7ad7b3e895ee6aa17b0f00165357a29d9382 100644 GIT binary patch delta 35 qcmaEHmhHt^wuUW?ne~E(A%><_rWRJF26~3(M#jeG+pFps^V9+Dz6*f> delta 35 pcmaEHmhHt^wuUW?ne~DOA%<_rWRJF26{#Y#ug^qEv*^D)d9P231|QS delta 34 ocmbPmly$;U)`l&Nn$`jaA%xnf1hE)`l&Nfm(uwA%><_rWRJF26{%urbfnQ+mo~y)8qlkvI*Y+ delta 35 pcmX>xnf1hE)`l&Nfm(tFA%sfCg0_9!LBb?N}PGYOag delta 35 pcmeB}!rC!~wP6dRr;?ySh@qL42@o0U8JJj@nj3D9Qes@E4gk0K36uZ; diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0013.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0013.h5 index ef7e60800b4cd55e8a337a6eaa353c13df270b55..16b3865a1fde311b9b487c6c06ce99757614c201 100644 GIT binary patch delta 35 qcmeB}!rC!~wP6dRr;?yyh@q*KsfCrPfu512xq+qO_9!LBb?N}PJPDWp delta 35 pcmeB}!rC!~wP6dRr;?ySh@qL42@o0U8JJrb8yjqoQes@E4gj~{36KB) diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0014.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0014.h5 index 2b853928007564f7352f414bb0937bbb947d45ab..a17bc9d7ced42e5a1f191d8fc039dce5ec8c8538 100644 GIT binary patch delta 34 pcmX>xnf1hE)`l&Nfm#BFA%><_rWRJF271Ou<`#zA6SWxAxnf1hE)`l&Nfm#9vA%xnf1hE)`l&NmRf>_A%><_rWRJF271P(7ABTP+r6|H>*N8)Uxnf1hE)`l&NmRf=aA%rHO^*b|)pqW9k64tOxnf1hE)`l&NmRf>_A%><_rWRJF26`qYmX?-A+r6|H>*N8)mxnf1hE)`l&NmRf=aA%<_rWRJF26`qIhQ^l0+mkFA^)vy=R0+xe delta 35 pcmbPmly$;U)`l&NftG>>A%<_rWRJF270E3#)bwK+mkFA^)vy<@Cm>G delta 35 pcmbPmly$;U)`l&NftG>>A%sv1TyO#tVP3o!ry diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0024.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0024.h5 index f6f4b6d8a9b2e759aa1463f176666d553eb4dc29..74ff32564b844c7de0fc0fa8ddc02127391be368 100644 GIT binary patch delta 35 rcmca{itWZJwuUW?jWvRXA%><_rWRJF26|>DMiz#a+b7j99@78->{AQn delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJF26|@Z#-@gb+b7j99@78->?;f2 delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJF272ZOrUn)k+b7j99@78->^ckM delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJF272bkW@bj_+b7j99@78->|_h( delta 35 pcmca{itWZJwuUW?jWvP>A%A%><_rWRJF272aZmWC$VC)O|?*8l+F?F+F0 delta 34 ocmca{itWZJwuUW?jWq%WA%<_rWRJF26`3-hNhM#+b7j99@78->^BSI delta 35 ocmca{itWZJwuUW?jWvP>A%<_rWRJF26`68Cg$cA+b7j99@78-?34@a delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJF26`4|=BC>x)G(gV007su3x5Cr delta 33 ncmca{itWZJwuUW?jWzrRA%<_rWRJF26~nT28IR}+b7j99@78->*)*G delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJF26~pph6a|V+b7j99@78->^=+P delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJF26~oeM#iQV+b7j99@78-?0F05 delta 35 pcmca{itWZJwuUW?jWvP>A%QVruV4FK#r3*!I) diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0035.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0035.h5 index 61cb6abd8a65f1fd8fd0a10e34c421c0f220f03f..450715dd387174c2db6f87dbdd63da7276ddb2b9 100644 GIT binary patch delta 35 rcmca{itWZJwuUW?jWvRXA%><_rWRJF26~p3#zvNg+b7j99@78-?1~HM delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJFhI$4@CPu~v+b7j99@78->#_^e delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJFhI$63CdL-V+b7j99@78->=_H+ delta 35 pcmca{itWZJwuUW?jWvP>A%<_rWRJFhI$4TCYIYL)G(gV007sA3wrA%><_rWRJFhI)pErsgKwC)O|?*8l+Fk_)K- delta 34 ocmca{itWZJwuUW?jWq%WA%{ delta 35 pcmdmSnr+8vwuUW?Gs^`HLJZBUOn}H(&(grqz`}6*s&Ym?JpkmZ3l9JQ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0041.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0041.h5 index 8ddac00f1a84f61f48c4c3b64400afa8ae130f42..7f4d251daed45461f7523eb112c04ccd7a3e2027 100644 GIT binary patch delta 32 ocmeycljXxsmJN#U1PwzBO|48VtV|8{49(4qO$;_0z1yb;0L`=ue*gdg delta 32 mcmeycljXxsmJN#U1PwwA&8$p-$XL(P*wDbhbhFXBeR=@Rc?)^~ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0042.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0042.h5 index f4a3712815f504b157e435515db68cf7342e0d81..c0bcb75147aa093d8b707bf983b81d76154c4871 100644 GIT binary patch delta 35 rcmca{itWZJwuUW?GiwA5Lkvx=Of9TT4fTu+%q%Pnx38*UT&Dp5?&S;l delta 35 pcmca{itWZJwuUW?GiwA5LJZBUOn}H(&(h4$%)(;(sv5?18UXJ;3<_rWRJFhI&TE<`!ng+q0?|^|S%im<_rWRJFhI&S3<`$NQ+q0?|^|S%i!wP}` delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFhI&Sp76wMf+q0?|^|S%id<_rWRJFhI+71PtBO%i8vxZ~3V8qk diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0047.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0047.h5 index 26f3cd5a0bad3db947fe5add91030c2b6898e778..93cd2cd294a71b660d882e8d788d75a21dbaf932 100644 GIT binary patch delta 35 qcmbPnnr+5uwuUW?kyV0*A%><_rWRJFhI+=P7DmP<+q0?|^|S%ieF}O2 delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFhI+;p7RJWr+q0?|^|S%iyb6H; delta 35 pcmbPnnr+5uwuUW?kyU~QA%Y-qVXtBO%i8vxZ%3V8qk diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0049.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0049.h5 index f11a7bab390e2311e970fc151ecb0817ad49d9e1..52b5bdad241fa6089ef76961e6ffdae6ffe448d5 100644 GIT binary patch delta 35 rcmcccisiy9mWC~ijv|7FA%><_rWRJFhI%H3<|d}*+k-?H|0w_f-m(ht delta 35 pcmcccisiy9mWC~ijv|5vA%SIx8Evb%+mt^?~e=k delta 35 pcmX?citWTHwuUW?C(8s4LJZBUOn}Hl&&b@s(9m%Etun?uJpk_83*`U+ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0053.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0053.h5 index 7895138254c4552635b543537f303319a6b2d70a..f6e8e798e74bac8d8e036a532d4c89121366a9d9 100644 GIT binary patch delta 35 rcmX?citWTHwuUW?C(8s4Lkvx=Of9TT4fRZoElrF~w%;ma%+mt^?}-cc delta 35 pcmX?citWTHwuUW?C(8s4LJZBUOn}Hl&)C4g(!gT-tun?uJpk_u3+(^^ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0054.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0054.h5 index 52773c818d640a30374dfcc915ecda17e5e7e7c5..142d0298b084f9d0aa6a605641e1739a9f6b2b05 100644 GIT binary patch delta 35 rcmX?citWTHwuUW?C(8s4Lkvx=Of9TT4fRaTEKQ9pw%;ma%+mt^@5c-M delta 35 pcmX?citWTHwuUW?C(8s4LJZBUOn}Hl&)C?|)WmZ8tun?uJpk`H3-SN} diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0055.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0055.h5 index fa9933c8aa70cd7a40bea70e425099f2971cfe35..6e2bb9675f8d0d48a0d78771111cd8c1c46bcbb7 100644 GIT binary patch delta 35 rcmdmSnr+8vwuUW?56cA&Lkvx=Of9TT4fV_n3=GVTw|^>UJf;f(?$iub delta 35 pcmdmSnr+8vwuUW?56cA&LJZBUOn}Hl&)Ce!*wS$Or*g()x&ZG73|s&J diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0056.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0056.h5 index d69f73c096cb618152ae709c928f4e329a935ee6..f43dc753576d8ea4885b5c266f558068c868c238 100644 GIT binary patch delta 35 rcmca{itWZJwuUW?GiwA5Lkvx=Of9TT4fV{74NOffwy&yTT&Dp5?)VG) delta 35 pcmca{itWZJwuUW?GiwA5LJZBUOn}Hl&)Cw~*w}pgsv5?18UXI^3;O^7 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0057.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0057.h5 index 7258ee4e1ea58ffeeb7b66b2c1a4ecb35ad7794e..483718269e8175dbe5238a5f7636eefef40c88ce 100644 GIT binary patch delta 35 rcmX?citWTHwuUW?C(8s4Lkvx=Of9TT4fV{-42?}qx8Evb%+mt^?{o|F delta 35 pcmX?citWTHwuUW?C(8s4LJZBUOn}Hl&&0^Y$kJ^4tun?uJpk`e3-ka0 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0058.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0058.h5 index 8208e98a1f813403712a1600ec1a22613ff9f2b1..e19d89c07a44cb24da6c649f14013d91eaf18e55 100644 GIT binary patch delta 35 rcmX?citWTHwuUW?C(8s4Lkvx=Of9TT4fV_{4Nc80w%;ma%+mt^@5~GS delta 35 pcmX?citWTHwuUW?C(8s4LJZBUOn}Hl&&1Tk!pv~{tun?uJpk`)3-tg1 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0059.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0059.h5 index 4f50eec2cdd6bd0eb9456869e6661c37dd4bd4e9..5540ab01df0da69f51617cf6f0046790a4b76500 100644 GIT binary patch delta 35 rcmX?citWTHwuUW?C(8s4Lkvx=Of9TT4fV{849!d}x8Evb%+mt^?~4og delta 35 pcmX?citWTHwuUW?C(8s4LJZBUOn}Hl&&0yi*uY}@tun?uJpk`(3-tg1 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0060.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0060.h5 index d9b9c22c0b52eb60c290a1188c6c686e88cbcf82..35c1648df04b6a1c8347d2273cfc72fb0de69d2f 100644 GIT binary patch delta 35 rcmdmSnr+8vwuUW?56cA&Lkvx=Of9TT4fV`TjSS5#w|^>UJf;f(?_LaK delta 35 pcmdmSnr+8vwuUW?56cA&LJZBUOn}Hl&(zS&#K>&>r*g()x&ZG43|s&J diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0061.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0061.h5 index b0df14771282dbb6c0d2eb9971bfa7a94bc24f4b..fa1f3b88271daaf11df0d82e13cc2222841b2c0d 100644 GIT binary patch delta 32 ocmeycljXxsmJN<_rWRJFhI*EUhGr(F+q0?|^|S%ih6;NC delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFhI*DJM#d&4+q0?|^|S%ij|zJL delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFhI*Ff#-=6~+q0?|^|S%i=n91Z delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtTMYCT1pv+q0?|^|S%i9|~~* delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtTOurlw{l+q0?|^|S%iW(s)# delta 35 pcmbPnnr+5uwuUW?kyU~QA%ZeqAStBO%i8vxbZ3WNXv diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0070.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0070.h5 index 71c22a6cb311c8711e8baccdd8bfcd77f3e26310..8c134b415881613bd9f4b034a525585d1a6c5fd0 100644 GIT binary patch delta 35 rcmca{itWZJwuUW?GiwA5Lkvx=Of9TTjr0u6OwBD#x38*UT&Dp5?=B1h delta 35 pcmca{itWZJwuUW?GiwA5LJZBUOn}Hl&%(&S+|+pcsv5?18UXIt3-|y4 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0071.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0071.h5 index ede4470c63b17d02cccfcc9fbbe33f898efbd7e0..d0bdc590df55766ed0f3ee0a6661fb27ab387442 100644 GIT binary patch delta 35 qcmbPnnr+5uwuUW?kyV0*A%><_rWRJFMtTO8W=2Mq+q0?|^|S%inhJgZ delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtX)uW|rpLGpiW&wE@e)3Q7O~ delta 34 ocmbPnnr+5uwuUW?kyQc)A%<_rWRJFMtX*(76yjK+q0?|^|S%iN(yuU delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtX)87G}og+q0?|^|S%i%?g76 delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtVkumc~Yg+q0?|^|S%iNeXlT delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtVjThNgyw+q0?|^|S%iPzrPa delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMta7Eh89NV+q0?|^|S%iTncyq delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMta63MkWRp+q0?|^|S%iS_*dn delta 35 pcmbPnnr+5uwuUW?kyU~QA%JtBO%i8vxa~3W5Lt diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0080.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0080.h5 index 5fe1cfa286a904deee82026ab491517388cb1846..261e3539be900124211a475edc5d6c417ba395a9 100644 GIT binary patch delta 35 qcmbPnnr+5uwuUW?kyV0*A%><_rWRJFMta8P#s<_rWRJFMtUa3#wG@)+l7o6r)dKK!!Ze) delta 35 pcmZ3nn{~x*)`l&Nj7EY6A%<_rWRJFMtUY@CYF|F+m)Oc?UVu8R|*^e delta 35 pcmaEGiuJ)M)`l&Nf=+@4A%;j$%)ZU835RP3I+fG diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0084.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0084.h5 index 04c503b70eb11d4f81e69dc60bc003200e458aac..0a6a5af7c79bc5c44d945e815a5af87568d1a31c 100644 GIT binary patch delta 35 rcmca{itWZJwuUW?GiwA5Lkvx=Of9TTjr2?`O)X5!wy&yTT&Dp5?`I4J delta 35 pcmca{itWZJwuUW?GiwA5LJZBUOn}H#&&bro)WCTAsv5?18UXIC3-bT~ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0085.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0085.h5 index 43e63a0f06825c38b640b30f1636255a88964869..615dc9c27b77a62d8c1e61e347679e5e6e57a8af 100644 GIT binary patch delta 35 qcmbPnnr+5uwuUW?kyV0*A%><_rWRJFMtY`3X67cA+q0?|^|S%i#tMS~ delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtY{E=BCD`+q0?|^|S%iy9$5+ delta 35 pcmbPnnr+5uwuUW?kyU~QA%<_rWRJFMtY_e76zt9+q0?|^|S%iv<_rWRJFMtWw37N({~+q0?|^|S%ipbC8e delta 35 pcmbPnnr+5uwuUW?kyU~QA% delta 35 pcmca{itWZJwuUW?GiwA5LJZBUOn}H#&&1ro!qQ~>sv5?18UXJd3;+NC diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0092.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0092.h5 index 3ea3430295c023a04fabc145179e88250ffe927f..06c7197de21690962e5e6333693ac9989f14c6aa 100644 GIT binary patch delta 35 qcmeC^V(sW+ZP>#2Q(4e3#L(2r)WXWtNYC8Z!otjSJC_RMKLr5CC<;3O delta 35 pcmeC^V(sW+ZP>#2Q(4d;#L&#j1c*%aObrYTER45vsWARi0072E3MK#m diff --git a/test_data/IPTS34735_HB3_exp0813/scan0001.h5 b/test_data/IPTS34735_HB3_exp0813/scan0001.h5 index 3183e0fa96800c471338079b04edfd055c201256..8932b1a569527d86ca524a323cc672201ef6e42b 100644 GIT binary patch delta 35 qcmeCUz|wJnrC|$WBd4HYh@qL4iIJ6|iJp<6g{86K_DP(KWpV(@9tr^f delta 35 qcmeCUz|wJnrC|$WBd4H2h@r8Sfr*u=v7V)oiHW)8_DP(KWpV(@H3|s; diff --git a/test_data/IPTS34735_HB3_exp0813/scan0002.h5 b/test_data/IPTS34735_HB3_exp0813/scan0002.h5 index 0ddaed26317e222ae80c12334bc03b1682ded381..3792bb332626350b6e62c3e50ab6b73ae75afe1e 100644 GIT binary patch delta 35 qcmaFS&-$XDwP6cmqoSZ;h@qL4iIJ6|iJp;#v5|q<_DPD2VQK)?V+vLP delta 35 qcmaFS&-$XDwP6cmqoSZeh@r8Sfr*u=v7V)=p^2sG_DPD2VQK)?iV9x< diff --git a/test_data/IPTS34735_HB3_exp0813/scan0003.h5 b/test_data/IPTS34735_HB3_exp0813/scan0003.h5 index eba2a30b0ffabf23b38f8c4a5be86a42daa4a993..1eb41931261e6e1887810be81430ad74c78791c9 100644 GIT binary patch delta 35 qcmaFS&-$XDwP6e6OhrM%5JNL76C*1_6Fp-Sa}xu@?W+_S?bHC+5(;bp delta 35 qcmaFS&-$XDwP6e6OhrM15JO`t0~0G#V?9fA3nK%|?W+_S?bHC+U=n78& diff --git a/test_data/IPTS34735_HB3_exp0813/scan0005.h5 b/test_data/IPTS34735_HB3_exp0813/scan0005.h5 index 212ec5a88058042c57e089d51c813c53c9f3fc2b..94ccb830b30fa51997b8d0ac3c621de157fb3b49 100644 GIT binary patch delta 35 qcmeCUz|wJnrC|%>Oin?=5JNL76C*1_6Fn1iLsMhJ?W;H$Oin?A5JO`t0~0G#6FmcCLvs_$?W;H$ diff --git a/test_data/IPTS34735_HB3_exp0813/scan0006.h5 b/test_data/IPTS34735_HB3_exp0813/scan0006.h5 index a891585bc5c252b38555d105b354f34cbae4ec2b..38fff83be8addac6f53697395a84dda87d105cec 100644 GIT binary patch delta 32 ocmcaGpXI`QmJNol1PwzB&8$p}tPD-`OpOdJjLbJXz3Nj10Kl^f=Kufz delta 32 ocmcaGpXI`QmJNol1PwwAjjaq!tV~Vx3`{MIEKD{#z3Nj10KkR{=Kufz diff --git a/test_data/IPTS34735_HB3_exp0813/scan0007.h5 b/test_data/IPTS34735_HB3_exp0813/scan0007.h5 index 4f9e5f55cfaa0c6b47b721d48771f698986a184d..b7d62eb96cadd84463584d30de6b4730c193587a 100644 GIT binary patch delta 32 ncmX@m&vKxjWrN`>LBkM3GbL4y!OV=Ds_D^n9a0}B%i6U)s`uj*t0xe5xE diff --git a/test_data/IPTS34735_HB3_exp0813/scan0008.h5 b/test_data/IPTS34735_HB3_exp0813/scan0008.h5 index e66bedbcabeb21a399497c1c6930083aa0221e20..8eaf7193c0f624f186165ac245a1dae48d511710 100644 GIT binary patch delta 32 ocmcaGpXI`QmJNol1PwzB&8$p}tPD-`%#4goj4U@hz3Nj10Kl^f=Kufz delta 32 ocmcaGpXI`QmJNol1PwwAjjaq!tV~Vx3=ItpjEpurz3Nj10Keo4(*OVf diff --git a/test_data/IPTS34735_HB3_exp0813/scan0009.h5 b/test_data/IPTS34735_HB3_exp0813/scan0009.h5 index 6922f3896c858926dd4b17c8f2c170cefe11722e..09f0e6a5530809f9b2377a7b1009b345ab39ae32 100644 GIT binary patch delta 32 ocmcaGpXI`QmJNol1PwzB&8$p}tPD-`%*>4}OpG@>z3Nj10Ko4G>;M1& delta 32 ocmcaGpXI`QmJNol1PwwAjjaq!tV~Vx42{i=O$|3Yz3Nj10KioW-~a#s diff --git a/test_data/IPTS34735_HB3_exp0813/scan0010.h5 b/test_data/IPTS34735_HB3_exp0813/scan0010.h5 index 8df989eff0690d8bf87940b14d71d578896b2635..1525dafc450f2d2d9dde8466a2ceb12097b87cec 100644 GIT binary patch delta 32 ocmX@`p83Fg<_(6o1PwzB&8$p}tPD-`%ndD#O)NG$-KvuX0L_96Gynhq delta 32 ocmX@`p83Fg<_(6o1PwwAjjaq!tV~Vx49$#94NNvW-KvuX0L(^b diff --git a/test_data/IPTS34735_HB3_exp0813/scan0011.h5 b/test_data/IPTS34735_HB3_exp0813/scan0011.h5 index 5bde8543426e0376d81f1b0aa378009b8734972a..5498983edb433e79334191560e51685d54372740 100644 GIT binary patch delta 32 ocmcaGpXI`QmJNol1PwzB&8$p}tPD-`%*_o9jZ8K>z3Nj10KljU;{X5v delta 32 ocmcaGpXI`QmJNol1PwwAjjaq!tV~Vx3@r@|%#1cWz3Nj10Ki8I-T(jq diff --git a/test_data/IPTS34735_HB3_exp0813/scan0012.h5 b/test_data/IPTS34735_HB3_exp0813/scan0012.h5 index 921cf772dc5b61e23310e740312f95b3dc5ad996..dd51b72e1eaf97444e94614f5bdf461f9254e52d 100644 GIT binary patch delta 35 qcmeCUz|wJnrC|$WBd4HYh@qL4iIJ6|iJpa#nW?4O_DP(KWpV(@j0z0^ delta 35 qcmeCUz|wJnrC|$WBd4H2h@r8Sfr*u=iJp<6nTet0_DP(KWpV(?$O--c diff --git a/test_data/IPTS34735_HB3_exp0813/scan0013.h5 b/test_data/IPTS34735_HB3_exp0813/scan0013.h5 index cc945cd688af826cb6567e8048d6c60bbc535704..67d2d8a9f6980755b827cb350a28dc7cc1d39ed1 100644 GIT binary patch delta 34 pcmeCUz|wJnrC|%>LJk4L5JNL76C*1_6FmzHV@s3m8#x%mLJk3g5JO`t0~0G#6FnmnBXf)G8#x%m diff --git a/test_data/IPTS34735_HB3_exp0813/scan0014.h5 b/test_data/IPTS34735_HB3_exp0813/scan0014.h5 index 9dee27dbf7bb803ffa9e39aa9a6dee54ee95c91b..e959aeaf6e2ce1fd765a35128aba49bcdaf84b26 100644 GIT binary patch delta 35 qcmeCUz|wJnrC|%>Oin?=5JNL76C*1_6Fo~419M}O?W;H$Oin?A5JO`t0~0G#6Fnm{OCuB0?W;H$Oin?=5JNL76C*1_Q#}Jy69Y5L?W;H$Oin?A5JO`t0~0G#6Fp-iLo-W@?W;H$Oin?=5JNL76C*1_Q$0gN12bc@?W;H$Oin?A5JO`t0~0G#6Fp-S3quo&?W;H$~Tw=;1t9+Lq8;jjvs diff --git a/test_data/IPTS34735_HB3_exp0813/scan0024.h5 b/test_data/IPTS34735_HB3_exp0813/scan0024.h5 index d5c765f23a53a97e73e3bfd2ace79a4f5c03ac4a..e274c42a862d53ebfea2605c5b81734388d0fabe 100644 GIT binary patch delta 35 rcmX?clI6rnmWC~iAK3*BLk!KVOpL4yP4!GHjVuiBw=;1t9+Lq8;p_^Y diff --git a/test_data/IPTS34735_HB3_exp0813/scan0026.h5 b/test_data/IPTS34735_HB3_exp0813/scan0026.h5 index 8b49e4265932ec889376b4f3141983a71ab1cc61..d102c1482e723c0e53cf619467ed548be3799733 100644 GIT binary patch delta 35 rcmbPmhGoJTmWC~imYjlyA%Oin?=5JNL76C*1_Q#}hKGXryz?W;H$Oin?A5JO`t0~0G#6FoBv3sVd8?W;H$UfjZ8Kty|hyU0JwDudjJ3c delta 32 ocmZ25pJl;(mJNX~1r0(Bjjaq!tV~Vx%neOUO^i1uy|hyU0JrlBa{vGU diff --git a/test_data/IPTS34735_HB3_exp0813/scan0032.h5 b/test_data/IPTS34735_HB3_exp0813/scan0032.h5 index d1c0cc202bbd16d4e1f260253019b97309bac3f3..8cd6d5203ef1a6e8f49fdab0b6a3b76ccf2343f4 100644 GIT binary patch delta 35 pcmZoTz}f&rTNpQ53L1tOnpv3`Ss9w@S(=y{ni_3CWXWi!1^~}N3T6NR delta 35 pcmZoTz}f&rTNpQ53L1nM8e18dSecsWnVT3Inwo7tWXWi!1^~{|3Sj^M diff --git a/test_data/IPTS34735_HB3_exp0813/scan0033.h5 b/test_data/IPTS34735_HB3_exp0813/scan0033.h5 index 02c0d4a6b822a3fa351ae1edb85abc1574d2f253..6e52a4595c3918fbb8f42de11353b7d697ff5de1 100644 GIT binary patch delta 32 ocmcbym*vJ@mJKt%3L1tOnpv3`Ss9w@Sz20{n;LIk^;J(30M=~_&Hw-a delta 32 ocmcbym*vJ@mJKt%3L1nM8e18dSecsWnVXp#m>X?g^;J(30M)n)zW@LL diff --git a/test_data/IPTS34735_HB3_exp0813/scan0034.h5 b/test_data/IPTS34735_HB3_exp0813/scan0034.h5 index f8c7a79bef1e320237268f1d1c83adb4eb773b9a..7d04c69c67ce0fff41be9ad13995a09d6fc67a7f 100644 GIT binary patch delta 32 ocmew{hvml{mJNY#1r0+C&8$p}tPIWc3{1=|EloEky%kdg0LJV~Lk!KVOpL4y&Gd{+EKST!wtvcG)YAk2+=L4( delta 35 rcmZ3mjBUX(wuUW?4>JV~LJWbmgA{0PHmlTmS$7 delta 32 ocmezHn)$8p%@hFE;tDDN delta 35 qcmX?bmgT@%mWC~im283rA%@0Q1}0Xfrg{bjCKjgV+q>8p%@hFD?FtqE diff --git a/test_data/IPTS34735_HB3_exp0813/scan0043.h5 b/test_data/IPTS34735_HB3_exp0813/scan0043.h5 index 3377fcc50b31c1adfa50a92e32c1e0f0421d61ed..99327c71700c5f168db8eb88c8a8543e3aababe0 100644 GIT binary patch delta 34 pcmX?bmgT@%mWC~im23irA%OOMsAdTO`o|0U delta 35 rcmdmRjbp<#j)pCaKR*f@gcurI8JJj^n(7%ESehCbZ|C~NsAdTO`TYy( diff --git a/test_data/IPTS34735_HB3_exp0813/scan0047.h5 b/test_data/IPTS34735_HB3_exp0813/scan0047.h5 index a155f0e52c9f47d35534a7455e9b85450e58d394..3d5d447002c5e266c6cd4149b3fc4d6b10e9c8ba 100644 GIT binary patch delta 35 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 AZU6uP delta 8393 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 U8T1eOZYCZ74^W;GmSvv!f5MHp=Kufz diff --git a/test_data/IPTS34735_HB3_exp0813/scan0053.h5 b/test_data/IPTS34735_HB3_exp0813/scan0053.h5 new file mode 100644 index 0000000000000000000000000000000000000000..39d90c687251dba548b44919883e15ad80bb1c57 GIT binary patch literal 113016 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 literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0054.h5 b/test_data/IPTS34735_HB3_exp0813/scan0054.h5 new file mode 100644 index 0000000000000000000000000000000000000000..c9759879af97e62813f8c6a0c7e6d459afc3043c GIT binary patch literal 77672 zcmeG_30Pd!)elG_*~wxuiAEy)+O%Px=`0x7e;Mt+WOm6V@*tJX=^pMwM7$aw5Iv*a?ZTr!J7$W7@0Z`zB%un zd)~R{o_p@O_nmj&eb?vZVWS03QeZ%hCm+9`I{R%w|c7mXJR}$dw8e`OKK$SKc+e)-0q)|+0~Z>*;M?wTj)_0UmT zoFW|y>BH3`Z4f}xEd_c=@5&J;Es$Ldc}kL&r5Ft+!9fJl;Qxyi8HXwVlG2!c^Sw-8`~ zrOxiKyYv=&jlR+1wAgrBU+rjWY_Qtv^j5pRz`jo3(C zk`4L>k&yMKbiK)toJx_Ydbw6_G$k+9H#%jP?AF_=oAkz11LXlK4H`ex$E6_O3fX>% z#YUyib<(Q2WP75%)M2k{Zj$xc_0~lFO4;G8llA3IHoL`^sLyM%Ryp+97DuAKz*=2z zksI^{7JGxdHBnz;Y2@iV*=e)bDIar#Y_U6>`s@bTCfnV@G*REs?2?)Y%v&l2`SJ|; zdZt6F`35SNKHg|BCg|M`dXk);s5c~1ZKfyaEpB~YO1}O)uG>VeKYE@@v&|GqHBGPJ z%C^ayIcKypw1c9R216>%84u-p@pS?}0q|&VNsE&>W+LE`pD82BWMKcI`Mk4Q?k6cN zHxddb!F6aa)y}Ohx1~Xv4EX5)FI-_*Rw_3#%dIe_nM}r_f@G`RDoufWv{R~R8@-(N zU2&kC)RH*jbiiXjV||Am(**F^S&i(bozCIJ@{ymn|LD_~r=~AAq(M(Xe_RcG=IYlr z$<&7AM!k`0pUJKNmgrnYddUX;a(!vhs%*2~>~vDwpoW+2u-P2;EjvM)BA47$<5=q`ku42{@)jY|Ops%NSDtLz2^?~#$?t;!idkL^BJpPZar;MgqdEmaO$XpN|@bmk!W&pJu|X93-y^vT?&(y~F(=h+}n zsO?G*t4bIO=OJqTFb(z6qnt~C57OJ^CbyGLjo@~z zkDM8*a*@w6z$X)6r;&4yY!A)y~X0Jmd=Oka6UrkdoTiuj7-Q^>yrT9r@Y+!HCb!3H0W0V9^2O@ zuj80(z+=C~@jnOf>Uwe`rg`deb5-;;a-CC_UD8UxtLgJJ=vQgbU!Z|st%1+iz{9lG zJI}`cQV8_w`mO=IR{In|zPf#iHOl8kPxI9D=(r=@w7kgqP^0(h@}VLn&|c(op@HTcv3Uac=#gT7XSz7FtMu1l_V(21T@ z4|uFM>dC6YqdqRt;E(q;YB?K#UacQnA3iP%o3Pn6=p8CN&gUBekM%9_x+Iv4V3C`4U zAaxv~_b4s}j6-mFpwjGooFqna7K<83wasoKm@ILWMvxJf^!h~{XU9p1AIak(H5NBF z^+0hD-anyyW@~CbZmaF2_;5c1e3%a$Cy5a~ibgb8JsO>kMu&^t@rgsLK964~^3{5k zn;Yr92+ocI>vbVx1M;vws?=*Tmq+1OVQ;cku_*&TwB$+x!%_Ieay`@AC3fc*u$}q* z0_0(RPN`oU=Tp^WZE#!d6@%f&*eY_3;{2LivXk}AK<&@{56H!AL6K_$=hNV*wlq+w z>~2dn>(hbw#Zem6JF^LepNP{jd#-R>-3{P~1M%bIEyy>v7e65%9aS9F^-c#)2m|qB zwu$nwIi(_>h)Y`RmWHjDdCehUeSP_j=llr$W&KmM1C3DexL+W-eEq-#dc7i-h;!qt z7s87HJZ5^Rx+J{{)q7*Mk7h*lW|fDKZ~LftEn^y-9UpFG(T0^;XIx$DLQc z+Ep?C?B~bcV#?gVvU_6YiS1n*u07$78Tm%$QB!5xQLEgg9$##Z8s1`Bevemz{*03< zp+2mAbW&r3#V%K16fdwop}D+q@B6>H|J{fF^8K#&4_tO__)X>f2*@Yw9r$gwG>ABjrhW3O@Q2wM@)7=~My{=3MixjOZsi~ki?#O0hs~t| z@!>3h&os^l$NdSEXRK7(WMlWx*>GE+Igi105X!t^1lM!+8gVBWNFNCm`&LA^nyEgp zd@(-L>nmiZQ@g)Wnc1;3`R9MTsWaN=dNGg6y(o_haPs97&QJ9FSczTF1>jge{RHwA zIr4h(k?l2f*hFs~xLufyq5o%nW1O@X_%Zv{Ng|wGAiG?aI(qxB-Ok_-p^1^DRPDo` z#Xfl)7KqNG=>#rgIGl***QcS1rM9{L zrOE@n8MgSRD*`&w?4Pa!viIftr>h5k`tSIs(_y*P_xn5aKvz`fk7}TKu|!-E2XHDt z9l$dI>H*FHI1k_gfbjqq0Zas#4A2132rw038bA}kbbw0$E(MqYa2Xk!JHILV_RlhJ z-^q@_!-S8=zhpRt>jzrC6sCu|o~VB{L^?J8@=rU9E~V{-5b4xVeI2INbl7ePF(2u% zob@&5{Bcb|E@`da@cZ1fT(acc7fWuNkxTBlckXjvoiLLRXFYT{?*lXW{C&$kzkA(G z{^40R_kt(Q#BtS#JvZ$%lTY6)sETVb6MgkR*RQBGlS4Ngmp{)plgl1R%sw;CO#U?X z=7+DIVJ2t({m)BgN@h~ajt_E3Gb`Zr95VWhyEY~~nM0nr=JI_{?#v<2Z6DP$ttE%N zFmm$L%-S6C(X)@oe3+j@-isc6!`W#$o=cRw4X@ae}KY6p@>T;4xFW=u*F507`oKP)&^5&j$vgy1r@7%Yyocx%Q zRrQpU-DiFG@5RT;Ne)xwr1e6d3F`?ngY9e9i|fnQlTIg-Y(0ryeBHEzJJt)oQn?BI z3;HkgXKILk3jG%PKlE#uMmqG9$md)r2d_sziGFW6^~?-o4@Yi-gQRn_~75 zGBxwH-#`62A-C=yT|Z|(Az4@d`4{bn2$`N&^p)-}gyIPjQF)yfSq9DB~g9 zh(2`O8e^j3;)Pl6_FAVnX;r1a-elSHT6nLHKk`KRA_naT6TL>e*M2G?yjd3e0-Hj~H6 zGVV5c`2F(3CXbEXjz3}Y{Iu&Icb)r!$@Ai0rq2519+T&80ElO(gO!~#oc5nZ;$rIB&c3%9bjU?P4j~{;WN>{kSWxv~FGfAo?}kbT(fpKiG4hR&|= z73tw^SE19#ZoWi1693onE)o;fc)sW>5&K|zh>41aF*l+Qp%0HOJnWBp)anu({IX^6n!v zF#6XNBI3I#gg+0MlT7yIum=Q5B!1%9ryty!NM^HznU5|ecb}WM|Mm|SkxO21->jRr zi0qn~@`rh~2}Hy_5h$TFZKYB7*asJ_hk6bp5jNEgRaZA!nvEHs>7J1@M zD&S(hSciAbY%=+Q7hj(K+8nZmOtHLrWUg2@8aJPO>#Y~)6M_Zg_;p7Qy)%0u+4=l! zZ4+n4lXkic)iWl6T>s{K-D8g=ko*7m(u6zST0}C_H~wtZBa4aih8^#JdSxQ{RqD@w znp~Jfu3GTQwGT~CCUjL^YxN(J30wY}epd=9zc%A{dy)*IJ|lWEdA-62-c;(QCUKf4 z+#v6d(j3t*!w%xQ;c$cD6K@svf%4)y>~MqlUQM_`)O+~ADa>FXJ|8cPhyRA|{_=2G z%!ly(JP+y!0}hy0!Dbc=p@)IL7%9&C`z-^y_zU{WRd5I3)PNiRC|SMEx*^rNp%=PO zq7BL|YUz{J3vn1y?HhZc2b~C=UF}*cgpAy$Gd;vamBCh45q$`K#I1|ihwpvq-iSV^ zK`8g>Ef+=X!&e^}W#OO?F;0(^;&A+xh16QVosiMZcZtxVk|Y9Ic_wWdmVxX~I8`VcaPTbu{w4Y#<1 zLF_9~MY{O@0^tWULGG}DFTFf{LFvcUB;24O|G_c2x8``l4YJo4uDEfecuvs|JdM9l zp`Fj4Z}_<`(DmwkOe0kDM|t^c7!MYZImiFq)O}+C+4uIkf26ny#J(-%1%$pua`m4x z3&>}O-nq)PpnzPvo<6u4S0MITIg&5-`#6|Sp8JYE$mz-_?5RcDgZbk5&yD$F-xgQC z*pH<=pK!lR@(Ep~|6<94d~)woOOL%WE}ziV^z;$dYErUr*Y%wTSCe&j|K!mFU8}`& zrw3Py{atQcP3Dif>eg)6YQaaD_J&zH+}3sXWV+b)Ehnasv*`9c$rOs`ic`hDG162* zpT^NQCZ-Zc&v$>hmO`ZOzGKn@FVgfG^l{=S3i-Yolpgu~b>EyrU;K9pVUIbN`{ZLf znr+-e%VVz>RZ+<8hhC4@VR`S<*Ny&4^Rb*857kQ!%Fj1`3@^NL7NMIj$6q339^Uh1 zyf1~%ib<9ALTasF1KhthZqlL<_+ya0yV5@$Uz|rt_FDYY#X`9Us{GS^UAdvNtL`we ztJ9<&XpoKy|1FaN?Yr0IpN;^XezSkNy^tMO?4NEQWa~@((`7(*Mw)-RR*;We>7VXo zb3C|r=_58Q)`g2Uqx)~T#fA(xoPlvm(5MoIU*%eH z1@3{{`)ekWgkKlI@5j~hee3CWG3wl$wGHB_Hi(zndVju0vayf+(8K1Y-xZ|3%|;nC zQOLGQXZRYPD@nEVYojdfXmU3;xh2Uh+ZtJ#!3xUT1?9M)99NyFiK|Y0`J$>y42)G( z0$)|-WS2`-Rg@Wn7RZNBB~)1;-y-r|Zs6w@{47wO1XQ9d$6d6@haR9McO{s_4% z=w|5R`w*Mmf>7+Y&h|+W2hKC_x(Mv8fzb8mX1gdk;@_AaVxkQ2Nt=j1ggy>O^g$J& zJa^s2{c&VIpkwC2o_}1$PloyYNXQs|zcEbYSRr=`1tWaY>=wj#AF?GhJ<2Cvc||*q zFtjA)5DvU>BMH~|-$+&w&LH(d8`=JzS! zU)a(czVB5S?ho(lC)d(?gxm8#l-GA0w9tC^j)QE1s`b4mn#B*?k25Y=+=1e{W@R5x z@f{~~Sp~fVZ?Zb&8h%}%?-TjTF`HfyMMq>_f+&Wb3nPLgeG6TDCq|2}@|_sLMwxf+ zOTwB6D1MdiDv9q2;RmR+_@f-Y^M<*URWS81&qu(a(?>HK_UREP0Q?3+9}6h2VCrL` zkAy>~4;`$$4~{;@F`2>tB?MU?i+br})DZQTG6+=#UmuBF{vw}R1plhlNoq=J3dmDfmAi=GE-{-C>B zXrOmb490kA;Eam|`yl^{bqTTX)kR6_i53NbdZfH3M7sVd0nt7xSNEpV{Ya!UV85R{ zk(Bnn+MBKi(s8c|d?nBw1N*^pkIfNhIk)C{EqA;)>jXTuW`?T1mA8oNT5c0Cke~Ln3p(T{Qjy`~~@&Ew;T%ukzwtcP@; zwibRm8gCh-&L8?@_H&AUCieDzGQYv7p|h)uA+xKcw7r7azcPH04|Ohsc^;|&<68ifye{A`gs(h#ke&BRW9wjA9MPL1ki@Z`p-wK@Y<5p z4fcU}HPi#5=V5hDc%_wg9hkq5VbuhCUqMg%uCEoD7|%d^)EY;$pVJz)35}{phIWA- zroT9!RmUq8eGjZ3`95DRQCtOQU6^bYw-1P0cT83RTcdD(CI^e ztq?f)`Vfz3!c89shD;y%T+zYNhiEh9y(EnH^m#7}-n&x2kEMQ}%O%@gGG&VMfif&0 zNO0)pA8pqO5yNZ#A?C*;B?IU;?h*frj>qhu;7R{51JL?M`_D%#&g*;Neh%?!h+1uY zNS!l0(t+aT9nT0ku^z)i>WCDf(g4OW(4S#HYK8R^D2Mlb*sYDs4NB_wK+!K^f5q#x zAl@(MJtrtCfl!G%oO&E%4dtouJM}mQ^9iAgW9$OI9sGGmF|7yc-*cZ(JgXZ!5a08x zNVB=PIQsVx7{|~7RR^>uUZsY5KY{4E4G&Mc;#uV_ZmU9J>3EdeDDwLmzBCc>jVnA|^bbvDfBEPdBtplh|CtQ5fE1z|ilZD3EN6x&roUm=m zGPjqLd(F=rIetw!8L@6c(i2VPu@~O^+f%vA=0Vwmw(z>bSZ5w zgh;1`>gzDAro(nai1|p5<*a88ry!TKR&V%yZd$I`zjH<|x#Qls&wX{mOg@}NH*WmE zOg?|#a?kHxHs#S9xtalFF&t5$fQ zV7Isg)|+U*H&wJ(5W-Xou8M$fiU!ni8oUcLfE}S8)bH=*Va6aK-ao0|gHhrtgNxJf zc_0|`dMca3@6_Wo?8VoC#%Zu$w*OKns!{++d9EMLXT-|;*DWsy670burQA0R?7ngo zyBzd!F+B~YKG>(VM4SfS9-|v2|AG}5IR>f$w37pi#SKy=Fi_fkVE50y?Y@!n(i$&z zzb*z2CN>*n-8jf&J@?TT{&RyCAWFzt#v6d@k% zXQ5j6m+_(~5=YG7>8FFo3HE=q6WXeTuK=S)1Nd@eyA7p>o_m(ey4XW#5_4h z^F5x9gMuFU^O-@sCoyF6m5Z7j0HpT zq47P9heXDEzSzF!yd5dJ{XpM5UrZ4sGLHIU`<^o$u%nZEeK{=Uso? zl(={7@BP!EKOg#WPUjJl?CvE{Fy_rp$}yPz%|-czPA~gBLLtG|3k@p-RWD5;)l2Kk zL#3C^LDtI_t{3s1Wf62=oEPOK2}Hf9jQ4l&@6C``1e4&~OEYC0%zm_$^CMhb)}ID) zzZS!;0%v>~J&lq^a}SDs3iaFB!`Vy0)9gjonT<4T!7u^R}960XLefVvQhfG{>zOWGVOUlwH>Mg=O%T)$}?Q9zUZrLxo5E;d(K&zr{dzh6eqa8u(d&SL^L8 zz$5?FkUkqA+FxOrtHDYKK0V;od}ae4`$ILGtkYwT0DbItF5uPl^EBw^YtS#ypkJs# zAFn~5ph3S#gC5&KEq|g0eUb+MWDWWh4SECMu|F4<)izig8)Y_EV~6M^@SO~rE-VvI zI#PLV-~OKlc(k*W6lF)<6#Ph73O+57BookM`y)v@;IZGPq=+4OQ)G6RB}q#lAN2)j zX(`}y0H)MCY;sDosUanYen8A7+ug2|wOQ*{rMP96yMoD)vZ`opX_{$iT6#s^inI#3 zxzUheOiOW9TkHlyx+%Gyi;@BSuwKkzB^j0_8I5a=OO~5bmm8NRryGnW11Mk_(4)Pl zB^!;&RN2c_cw@3LH5rvm^SZGifGz?e8i;5hqJfA8A{vNjAfkbY2EtPVfu2h$@zsIF zU)cR1#u?aL7@t32d@E47gO6`@9uqCGyH|rK^%&T?9X9{RdazhWFyk*QMxn?xc>S`N z3Vv6C2f27!+=1i1OgP_1IC%Zme?i&P1Mkp8N~y=-^~+?#xLoTyf^U%k^cU}Fy$HW2 zTHmAC3*W1#hpX{9Vi~3Z?mN<(eHDCHS@XNg_+4g=?>1xHA+9%DZwlj+TJ49oUkC@^ ze(lhHdETfwdp5W7EU+`agIX^?QQl^o&4F_e&=2Li8yA zbe%xAcZ`3!44~6}f{goz*jw8F*nj>|VT0+fnC&TcGBAI|>>m9ni^byeF~#1Q^)S3R z(7p%$Ji7B$!J&6gQ{*0)fASs2MC`W+Bn&RV^|yI%3%>Q>|AHYm#!CB>_>vdgH|s|9 zWQH5O`FqCB9oymv!nd0`9-Q~1nS|G|WnFJb-*erd`^fz973p11lIOE;h;nvq-~a7J z51sdF*O$*!KAhbB+pf1#COPiB^3|@2`DZ^r_7+p-{*~PmGf!;q+Hma&cg)B)GLM=n z+m2f0uI91x;;*=IB*{$Q__J00z|$()^H1*wuSJh|ybdAa)li*}X@qKel=mz8+H*k_ z$qZB21#*WCJbHY8^GEBJk;e{HY+m!;QZjj)=U4aaSwiOh@I>1chtkPoEB|!a)CuY2 z&=*%+^1@mZSx`Fiz90NJjqvaBj!PqV{p+FER&PlqPwn0O(%pYE664NAx?5|E% zql?Mi=O*sI{ewk>_xE{=$gY_wf0$RBKsNk0`^%4i5>K`jue!5kK`iN^#V;K_nXEYf z@WDqen?^?NxyiUCX(qXK|LFQT4YSA-cTxct>&ev2*M9%>HM7a&2VQ)6`fGE@8ZyQ5 z>XEtPz52NMpuUz}k^knk*Eplu1ACd{%9w7a$ z6jFX|#_#qd8Hlf+)=?+G#t|HEFg8w~E(*UO#Q~fOPzUf#fO>#)0L}xr0AM`8MF0~4 zCId78Gy+TomeX1 zObMwzV!s+HeM}9KK28s*K0HIFk7+^D2l`0XZuq^yP4z4#Nt-SO*dQRTlW^5FafGW* zWU%kRR8-3iKqfhyR=QTg!akr}VY9fM)@E^iQ&mN^!(J;jHdyR(h27z_S@tikMDRigR?7AmLVr!kzWrsW^ilL*QN`Z+7;OJxy}GkoaGXVf!e?OfWabx;4_jLrXkQO9 zS$L9oQFP?@8>#`E2e}+g&T3hbsvQjtRyvV!IE6y!{vD3$db$uCP!_wTVXMo#?3J#& zcgxjYYDp5Sl_d#R$KrUEcZ&MO=Ml$L-zis~Ck^gBNA`>t`wd%r9XdY}dqSur_!{hhGrz1djc(#8!^q;%W@=q5!yYdW~UCp6735H$GrF=rCkB-wt%LKolv3Dkd zp$~k=LXyHQo{sY3^N4VR_?#r%;2c6tj~;Uf`wbr$ZuWulqMe5u6xI>>jc6dEf#I!z z(9MS`;gbx(pARjdDh|ecXd&ejI(_J-57qpT-5Uf$9||E9 zFcqw)THZM39Kl%!<(+CAldXlvxE+gy1&aT-EfVEpJPhj_f!_=bp#673bRQo%+25X7lVg{5=7+elcEq;07&<@WA7HO&QQ$ zl_2)1`jJtT5Bd?dBt_vj_-n{b03TPFC-}>s!;Q)ZY04 z%nNk!qJ~ztEcQiYoe7=5dSwH;pa&prv M)(wu|a?0=j0Y%E!TmS$7 literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0055.h5 b/test_data/IPTS34735_HB3_exp0813/scan0055.h5 new file mode 100644 index 0000000000000000000000000000000000000000..7b4fc998b0ffb565b7542aadf0d738e5d1f8cf2a GIT binary patch literal 114552 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 z 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 literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0056.h5 b/test_data/IPTS34735_HB3_exp0813/scan0056.h5 new file mode 100644 index 0000000000000000000000000000000000000000..55fa4cd6d1cf5572025d98cd5b3bba25d60d7918 GIT binary patch literal 113016 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 Y-u;bOL!y_L7?)tlN^6)rvG(Nu0ojG_PXGV_ literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0057.h5 b/test_data/IPTS34735_HB3_exp0813/scan0057.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6ec22af12ee8bbbd3ac95f74c41776665a1906bc GIT binary patch literal 128416 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 Nw`8Q$PoCJ5@_+Znys7{I literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0059.h5 b/test_data/IPTS34735_HB3_exp0813/scan0059.h5 new file mode 100644 index 0000000000000000000000000000000000000000..8e27ab667399e2d162235a9dd79cae9170cacecf GIT binary patch literal 118176 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 literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0060.h5 b/test_data/IPTS34735_HB3_exp0813/scan0060.h5 new file mode 100644 index 0000000000000000000000000000000000000000..084268f137833185667127af195d6aa43a36d6ee GIT binary patch literal 102248 zcmeHQ31C!3(thC#cRp2MHu$0xTp^NG4%IqPY(YUPKX%2#Po0 zvAB4^>MF{vi=yVO`>Uv|qOgjhEM6>lEQfd>{M}tunc>MyAWS00d622s)%B{ozwXzs zyZX95IU%V>*Zy5Kd4+~*9keiY%Rh(dD!eH~vDnT2xpafRnpRKlHSO>wMC+pKU4D7c6G!%Co$Gsk0C~|K#;a+1dd$>&A-5a9BwQ@yyH^2NCpBh+03brYg>QsuX%w5YmDaGEN&?d4NcZpSDM zNB&GppOO%wbz~9Eq#odRK+}@RT}bt7IX%851|!JDr~W#;+jJRHuFv7IBf~SgfEc@; zGx{9qc9L^HeHS>~{SD~hTz8~=YrFWn#UC;qznG%7Nmfw_(YmO7OV7;7FLqVQtW#H0 z`PW@aQU1v^d-Qcv`V7@rljT8WBk7}}rsCo2XJY)6RE2dIN-*v!UV@dLnO|01?9Q() zDl3%|tdok1R^TeGatl5cqehzSh>_x0uL{~lxioEbWK>jSv^koxS(Hq?2u>|}O!TNR z7OTll^<5|OKc8rtYi?;-X_d)UI>%J*s&thow<*7@ro6bQbgrqW)Ra~_-K|metc|7T zs`6c>rb1KHNTK^;lX;}sRE!R{NpNCf1S{I)E-*z|MvgL-SGud*)uxjC8dFrXS!p0h z1E!DhxR~PSaF<@>DiN_ysuW49a+eM_O)D#%TU+Bc#TOP0H%)YxRnB#rvT907T_wX! z$u&iJWu|yn*>F=@QGTJzU2IBol@`0_4>wJ9l`D6$yRyVpD)b~4yIrMam8SS&cZs`H z)he23mElF%t{H{8k$(o!WOJ%XVknR=7V$DgM46+8n5xUf%}DETlXlcDsx~D@ zrkchpY=Hk5 z^ddg%v&4clAB|R zu~?#BCujMH*V#VeWgrBx!6u zl{2huf2k*m%nD{&?`nv8PW=O|+6c z*C(P%uBmocnaT=GE>~r~7EAtIe~a%U)fnh8iu{fF6-Rup@RCxe*r#(}!zj;fInLh_ z_Y9?hzi0g3a(y|D^c(YKypM3Hd(nu?9QWKxx4TNS`H%;LewMfUkazgt$NS(X_~5IT zQ223u$>l7G?~{0MQql$U4?g6vbb8)D(I8Vz zjhQ6x$&ZpU(Y3*sR`_N5(3eI0Mtte}nN567C%?}Z_|S79@s0RW_qnls%JtQ3AM!bd zaI4(;Wul#?|!02 zJ!FonT2*~b*;Ul{h7v8`IisHHqLO3MqrRJ@r=!w?EjelLk?AO}EGsXol081We5L0x zDqu!j-L>WJN)Z=q?Kh3<`7#)akNoC%($z=B$D=Q&w5B9aHi6aUD_$e0BJ}79RXFFD zl?dy>oF?r}sy#~ak?)`*}WRUww}#Ua~BB z;?+~dtGF!RRV-pvTJ6f0b$nC$)LTOOWSQ{jLpz-;&pFja)y1k*HLXvz*GQkN^E~=6 zexj9BmR~3;KGF~!moKD$C^XQ{|P^}#Lq$ zevJC$JHYYlt@MH92;6$8a)+(75>aIo zQDgTNM(AQ!b#+m`Y=jDP6&v-0gin29{7YWkPGx%Q4N>cETo?vS|6Q}@!9jQR2PIrL z<4CH_7V%i7ywKhquGQp;5?Wcr&6p;`SM{>cz;ssl-o!7iv^K1Vjq!^^DjSw=yKLw~ z*&LN)zUn=d2=UWh%T>3SKjB(=v8&Xb!&bbe@uci(Y){_*# z8SBCNW{$fcM;5ZC;-gAA#Yfs&kETbqt((%LRFIz2lpg->_Y^uqwP`ga(k2v7-CUpT zm^VmAca5L#pm2_#f);_M@ObZ?nP=TUB0=E6&*S%5JfGvPtn~f9i8#w^=b8N;{+I1b zQU3UOY)2){OjZ#%_V7XJ<8dzeyo!M0`gu>t-xH7IBlNgS=ZMcH*Vawvi!5VYzsh$* zwkK7dQ-v8q19Tx&-?9CRX?x)>MSZ1Pj+9FOcJ10JjiIEkeMtCuf-SB+6cV~TGhW#J z>rx!=?aUBq`au8jNv70nxZA&+ljJtt<6mwKdr#+^qtimtx95*X_h)W6$;H((=jhZ# za>>^p-M@L<{cH{ed_I(D7}35&!-<|j)I@Y3(LqE96OAA`l<07xBZ-=cMiGrB8bj1V z)Jim#=qRFbL`M@HLv$?BaYV-xoj}w^6p+>t)$HUZsyWC_REsA!Q7wVoM72b66V;N) zO;npmZlYQ;xru5i3VSNsNyk z*Zk_v@@Z-Z$QqTuV_3V2@kjAbUYph_qH(xM=hd`ZS(gMiU-`qB@`5Dj)TgiQ#ndFg z_D2%Lj(c|M9sQEv?mwOT)Q^V~;hBy?V0R*zhps(k%jQJ*TpxYzr1gnVc2$QLZd#ED z2j5J~3#&^6Q~v+59R-Q7WARV!Z&DNC(g%jepAnM?A9TBQ?bZEAPV|>YoOAY};@t^Q zD+Ab^09^*$JA26b1bFhA%eSmwkpNFE?X>^2x&#cjAOQyc^mWay)CAbsuFK-HV@R%F z0!*y@uGikf@z7gFcy~O?ZH~uutdEDSJ9l-vbwxa;V?jJ*j{fVWc?I$C+#mZ#zMmRT z`r_dVn|1cn{o>)_*Z)1^^TQ69blJkl)ZGraHhb$cA8mF(aji(ndI#K4{NEqeu5du* z;u}9cxWEB5w}y9^QQ&|}WP(y1n2s0+;?mCnh`Ixwxno(cOLyDhUz_D+r}WyvHGS&& zt5(?I-~YX6*w+i}uzmlbNm&JUxb3<{*;`ZXlpl78=+*6S5B9TDdIA3U@L#s)>;}pY zfGr~0k?R5e@9~kPt5*Q!2S9Pqpr7yX2XRyJ^xk2ds*=Fw%Wae4`jii zpTy0hSup$Ql8jf|X5;&{HXCFzF5H(5xiZ3gv+=$8JR78% zCqBuBl`F*cPBtvmU%4;w=WLj|;jBfU9modp7N>OoFdNckL=I(Ry57$Q89kezBc8Zt z-$RdP!+)kMy|eWBY}oOgNXRwWa9Q6+Cw_2IHoWuNH`6{Ek&QU@%*OZcvn-6q<5}O) zOj(ZgvYYkM^NsOgJ2d+n?a0jM^szk0m*tty;j&$u)5&h8Z08=1cxp^z!TY;DQloKg z`p!oSH(qQ%=KN(k8@%lYV}-C9KA`6lg`3+2VK?HyLM9Tg_Q;8^Gwr9s?V!RA#|Sru zTlf+(HW0rl!tEMNh)fS^Y=Lnw36Ho=ZhHlegLTq!Dc`o=i?R0gn@b*MyDtgkbAFWP z_?HVK@9+`+o5oF8JGhs>)$v(;fcP^$`!Mz(z>1;aw{QCnpnt}@11=A- z!;mj}JZJ7=ho9rW|KhVSJK6!l?QlStv#vGSq34vxZgWT2;Sc{XzN#we5j&*Gf!V*>Ve+QV z}@aF;maGRRS$aIj&{PgMYzM<{XX1f$8_$s!x#6C8@}zJ9in$XdfvxB*x^s2 zyZ%!L2ehy4HYlQ}1HL@_&9a=+9Z)g8>)WeM4%jtf*{W}cIAG_k!jLEIfy(YTj_is_ z4tVOv>kjRh;sBv#TWyvD9(eX2rw`62dtj}5pDr}&qvBk$aF|8gh0Z|n7!w3&!Su>UA=XdkjCGl++Ge`!m05D#xW!rehU zyzy{8{@cK#z3SVt-H`3nrq?j`g-C=^)tp%)9&dl zTbvgC@DrCETxYWAsvSDSqFeXHB~FaC=xRKEtVLfPB1ZlbEcyjv7`$(qMHi!YVnoWK zS0~-}b*CJQ-t#&0ilK!T{ew%z09u7b&sm;&>XJ(>x@vbXwCHO5YN@N(bU9rA z_di;6)n8a^(Mx1^%ereeT&tFFe`CR+8ML^J&D46A;w9Pq!;s;AsjH~9Git6sK$(aX~- zta|6y`enR(nN{B|x(~NqYsGZlY}F-uz}-TAIrgULQ$+fS^T-U!mRiU+S(XWG=d zbu}J9}3$In=y)47OoRhpa(L6_A(#y%Cjvw$Pc#`v5um8V? zn!YD@`?B@$*m4mTjUXNphxQ>Gii3D~_jgy72J!I5qn=E?!S@BM%Gp(!aFjaqDOp|@!hYVee4pzN=FhehuhJsHsbTyy#gADz(KZ}X<+cWfk zh-Ctoy`G`BTNygw-WN0UNGbSi2KImdnxW5<1BMT0=wV`*uKnr^J$K%evrb!?p{sGe zn=`OqUZ0^SH(YUM+=2`}bB*<1W9Mb)f6rU+&iIlHv>VLH(C-w}>tip-&|irbGvKFY z=zEhz$2=uN|ASnx02%rtH;4hlQ5pKG>(_m-cSMH%VWzMs49d`Z-5v9%zYfU2{(YYe zT@K%scgfJ@a)1;qLzms_Grw`_V)V3Z{})buX@nT){Mf0>;mrCSPW{pCIrFBx>D1TW zpAM(I?9^}iSQsuEoOD0H1^EDU+L7vDv6Ag8mIoTFoS$@u~UCTOxM0L ~V##v7Ns=>lCFh%H* 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 literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0061.h5 b/test_data/IPTS34735_HB3_exp0813/scan0061.h5 new file mode 100644 index 0000000000000000000000000000000000000000..303526a56550607570eef30a7ed5be1a27186f67 GIT binary patch literal 126144 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 literal 0 HcmV?d00001 diff --git a/test_data/IPTS34735_HB3_exp0813/scan0063.h5 b/test_data/IPTS34735_HB3_exp0813/scan0063.h5 new file mode 100644 index 0000000000000000000000000000000000000000..9866b4ec7a7d16a68741314bb281f6361d36d4e3 GIT binary patch literal 126144 zcmeHQ2Vj*&^8bRAAPAvpP?SdxJq_~GH+eNZ0%A}kjR%RQkpu)qiHeFSilPTL#BzXG zKoL)D*|TEDj(T$3+3+uF1W&=1|Lo2TFM0A3N|Mvd_bHjTyR);qzuj-Y-PzsQtK4?y z3CEv&yrG`JK%=7(q<`|CdV1uZ0PV$Y4$q?>7-|?x$i2P;{s=IRH&j?K`3I5wC6VY+ zME+AIIUI)3!C?7JDcIQ634djiN6;6TVhA&s^nV%ww@LS2tJr-F{@6|K zkiX-PB_yA`P4ZttfZMO6esLAo`iB#1K)3)p07)ghqcZ( zq_I1joOSeF;B?*JVL4gRVxBM@>!V!`~m5Eh}AP9fTZ=yUrJQW#$x?my~!4tBcFa z6bH+s=3>msFRAi?KQ*I+)SVom*s)&)+Eu#@BYJ#T*!b|!aH?i#nfMT#MpVp%sF=_w zOHu~qNKQNwxzhtl2JCrV^H^O#8SMf z!u&EzktJ;01j~7r&~c%b68+m_i3lGTHNg@Me&G`=o>`W#$Z=7Yib_wFr`l3lIM*^U zR7)U8TTC9~aUSI_*;96IektVMSqVj}@|2CSOfD~*J%6spVk;^hV{v)PD`$Hw)8>|z z<(H1JxaSrZlv`~1qq^RE7^#yWz{!jlwgDxb$3p&GFRH@EhDMJK3!4&3eTwE7M10&{pue^! zO>yK-Ny%`ipurUGi`x+LKa_l`5zR4_`25Kq_Pg-nvMQ(?^=7J|;S}zh{s{8tcE$Z` z2>JWg+eq@~ek(Jls(fx`p=XpI`J;XO-OiLr%4-by`^v|+&)dIq`x@uNU*?%xT?wC# z@jm{5yKZ0DyZ&BI81Z{?RNtZE(tLO~RFLW`)Wh%JWc8JTkO=fX*#C1n{Jrtwk(-q1 zN_R{ke(p!03!Yo;sj`&MvgGGi78(;Nocn9|9#T(%0Z|n0TVGc4Z;+ldJu7Jn&n=tbC;RcY`SG{= z@z*aQgmFK~?aWF1zU6h1zrXr%Q@AhQDdg{4KdFBBX_|R(e8csVPW%V!hrU-CF~kvCHFtmiQgBmbNr+` z!w-M1Pr6l}!g3gw8F}RIi&MUjKjTqA{=WGs^y5F1{C(@k^E>{k{L+dN&n!Ruvwi$| z+*3sUzIYb<@H3w0lD}{MdEDxo&k{fUrGDg>`Qb13!(ZWte~ur1{jq?sgYAm?)ha)7 z^hX%Ne9MKSIOE`Vh2PJ4e&n1_{=RbNlRx9nau)cJbAcZ@7y98}=!gFz^5^le8u!4E zCv$R2R%W_m^5lytoX0nZ824(9Ma0MX=kIF``TMq$OZ@m>O8z|0NGh8R!=Uog8DsIw zf0>_ni^-qUXZ$Yr!+(Vz{ww|PFY&{Fl^_14e)zBU@#j&)H9r1~-!k&&@7`!~U+ahe zIzRr)$=|mgt|xz%pGNLpq>uO21NrJ98jn(sOfRM0z3xV+PEqNiy2ETo%_Wsb5M&hd zDkxl&gX0pfUaXVWhs?~c)?Hz9dKLZsArRC%=qsnXxb(2(=7?c0$WG~dR5>at z%PY#O)XWbbf92Uo4bB%=&-@BcCFBK1|IOn%LM21_QQshMxq9pTc;)4m%`GiZLt_2- z%hy=y7`<`=HO__QrJy~S*{r@vk54H->YenKFG$NNm|I*@U0jxXH1d>KZ@x$`TIH!! zeRp&9f1WBevH3yYvbqzO-R`BQC^%iFz?Jk(3(m*tl%xZq%OXtul!<(;7A z3HYnVoh#8BlTjl`BG)$a;iC-S02@a9u@e#= zf1fFTs*VpWuX;hnVaikQ0OzllmM4@C;C6y;cQ|S*g)XDGQ2F<=BoezYBD)!p_4Gb+ zKdpESBSCaGYV@xF&|LKeC3H!Cb#-x}8kBc zcjvBOJM`9*g=Vgq+L#(MARqXJL49|yF}DC(Xk{@EYnn}8_sbxh={dn)I=;SmLhWYp zgl%a+W$m(eE*!Nk{@L1}9?iRV+^#ok-yYwq{Pso9*5(cy_(ZoGBNN|o?dq9WzpVD0 zE9$F{>-2i!_mO$azc2RG`hH(Z%V+8u^Vjd`^1+|(MxOqO^%HDVl;oFra#@?#Jf2it z2gjH9{BqBS>pr=@_R}2~Tv74rhT1!JKVEm)zHbw~{a6>>4(1j>)y-Hupa2dM9~mtmkd-J$1fF9;lSd$~^E@YfhdnKgsK>@ zFTVu!kAB;yj>Ug6p`EcD>~CgzX633z)?9vcE2sP@o$I0GsIhi)aRe=k3dLp4tcPkK^Mw%6X<+XW;PD7g{2(bE)_`1C&m4a=iI)H8c*svrw%iK7U%+~zspnn@Z{;gY91J@`TgZrt&}QJ9XfQNrWCAW9v2Wi z?4Stxfn-S|*MHlA>%CnVB0~;tI!A88t>)RL`Lc;``EyP4t>@qZ{&8qpMDjMhaOiOM z4JN*dgMvAvF|}|x?rrRUY_2+1j|!9%NHmCOU!uW82N1Oo9ZYm6(cwfxh>jvUhUhq= zp+v)oh7*k-8cB2l(TPN(h+2t86OADnOEivXJkbQAi9`j`8lpxLxrrLd`Jckw$K!Mmo8P8X4p!YGjg|sF6i(qDD5l z1<@L!lBjVyg%hnIDv27CD4b{wQAyO8OyNXph)SZy6bdI=LsSwq&Y*CjHAE#*gT`%w zD39YLxs5X^KG7PYlBkh`;l_Sy|E*8w+<)~)MNOpFT)3g1{fURm$NYy&ubW&wbY=aI zZH7m4`8wQk9xh*V>HX2ekG7ot;&oC54#ZNQ3?#FG`&9Vdr-9qz;~oO;;~IpIfZrV( zxJSe9hV#U6;O^WYJY4m zX0`|k=-S-+7wes1z4VCoS2r9ls2-KSW7xaG`Xl_Op5;3kjY+wK~&^_PJ{R4%>t)4lbiCzXlf zlfT~joTVmFeA@Tamp)5O6jSfG?|~il3Ft2qM6|#0@INZgb&fg2rP#YfpTlZ3EyxmhX|+gg%Lhsh{K{V^iK@Kd>G`e4W;;@ z$d^d8e!SR_H)Ya@n(>&w`f=nQN9|)Q$sJ4KW5gMMUw=<#%@}cC!kK43R6iQ?Su+~r z8KVh@Q51h9=A&jLxkE^P2(^z9B!2{zcLebdC;nmN9!Bn=6n`l352f^mQ21a9A588+ zVwQf!n$*Mr5NLnx!1?IDU*Fm76c6A2?Yb9Uaf-Vf%EKxC{_>rUN8fge{vD_G82hkO zsK2*wbc+3x;Y(2M6eoS~`j3+@bBeb!3W9Q`ImMIJD}p;tbczV|3~`FQ&$bW#s4MY( z;=uT|4vhbZLnKa^@p#Is4*Wj6;Si5(oA>k`k2^$APV^(&))L>14slfyNV?R4@=_e) zvC}U9>hutjS8o@q%6eZWU$%?VFMhuFyGpzGa(Gza{poh>k1cl5Vf2+Jez4Pq`TfKu zeh8U<-7{NkLX~p<%{HN;y|v6HUV-B7yWJ+9zT@QaAKzmWkPFBVt@CZS3H3S4I>9b9 zULkg&oXck0g(^n(8|)%`*~+rs&)UVJa{-A!D$gi~*mFAMIMyM`RW|21M6v?rY6qr! zy904v;SdVmZ&y0R{R1GSjSjJ?vgrD+pLAe8{^`JccXEo4hjzZ?CYuxUQ|c57u6e7S zn6GV4F-3i->zv|2*S{|4+ruT^_z^1X6c^U(6qgvLqF?PoJg;&IsI{p*K6W8~&$z^I z@67*l_`k^iH5b?<-F#3I$_ywvXW0G6+RRvh=7OSCIrmb`fHx%c= zE8Sv{0_GgI7_WdBM&VuDSiZhqf0XMMZw~(Gz{MZBshy@^d$}bA-Nh+_=fy=|X$`xP zgQUTH{MhX*^f%Oeyrb6P`_9MZeh7r;F(l3Y<#|0W2q?KIu@&}#WKm}R(E1eI2h!Qd zqk3EOeA5u-QE(`#Tl_L}eN@cx%c28Ns{(c_#x~7|wPY9}Y7wl7$3kJ&@l7zbLQosF zt4WmoKXkilLp;tf@o1#S%`x$4gh%0@0T0TfF*!TM<|rwjT}2+SpB2mquvHDi;G+Yu zo4c~Q!H!7Z{gJ-saQJj3?khJ8I3JU*lAvy%c71X#j+71-7{hm88_$z@-y83DW4<7Y z$KmV_B!A`)AvcE)^$F+r%+GF4hbjAWeBX3@`B)zFaX9CPQo?JwJZ>QnFaSW`Ee{ z?y^yE;ICu$*+gWoiE&SL zunXG*#XINpwxd32Fwt$NwesZy0ob{ir zA1=MgE|gks-C8@Y)BMdYZV5bP^^BJwUj6cmfBw)e0ImJc?6Hf_6Yu%w)4$n8lu}p* zImAz2eBLliFhAbx?{A^w^PDV^;Q1HUhsdQq7}yj7mt<@HM(;_1JiG<@<+ z4)O0VZ+f`fbgpXT5B-X5oz-)(5f#T{MZ3M(w+4RE18HPRUZm-kl_+g3u}*`ayJz*QF7Xm*Pfz~BCAReY`IT=1++wg=06f)= z^=fsCu$xB(-!#Q7-Wl!b|L+RY>n(E&Rn2QRxP|LD$jLUh_~M$7uTS{gEv8$NzANmQ zg7rKkMQj1sXC|kJUxKUN?_H20)-8aQw@XumT0P%+R|>Y%XH$eyyWaU(3a-m_NyU7Q zN)<&=>@69o;zY>aOMN1xNlhHuV>>|oX-A_1KYWHrp&x$8eDcpu^}|5k%ZXN;(==ZV z1?RCrqo&#au%T_JFPudnnEF!y0`>(Ln|L(R7nYcKG{WP26OTrC{NvAo$8lP>%j;&m zPCLIIbI<#im7Nx)1NPE_^FnhBNxGzfLzK1BOkIB9f zC2>DOl+^RneNi$Erk%YyTji~1zy`!%tJL$x(N=jqOyllLuu8qp;&iM0@D#|n$0{F# zWL}(al@Dc~cgy+LSf$?IxyCB>{NoX;EP!dux7)08UKY%#KDNqTPxrVjVy{)Mo-y*3 zpf1r;O=sc;M9cC^IzE40ShQ5r&Y`YoIr!Hf=I)vvEpgvTw5&VPo&C#_XsLEb-g8H^ z#QAEp+;kkwU|x%swHLum_S0yowpq%bqotk)_KA@&t9kXD(J@#)Ta0{t$y+;jogE`H z7N3x{u{uWXK6msFE0@K{u{PMDxi$v#FJq*tme3Dlq@JgJA0r?5X?p4NJz}Mve~*ln z=kA=d^jdqY)cY`VV`X4GAa-G_d>p2MYgWce*cJ2okDFtqo@Z~5m3o`c*RfLXPw5sX zZ~gq#b-P32WYCv?+jyKSPO9wO=!uhh-n}?ZehkfH``vMv?`PxWfu6wlNgUR9$9NeE z(?sX6csWZ=ES>Rk6l{xJR1`0_+jrD`zcgNg%U%0GywvmEH{<0MY8wB2ywvmE{s~g= zUr9)i5vpMoCP+QMy(&TKeWx1}U<68&!nq9-hj!NvSpUbHt}HH|8629fA@Ak6hYn}oZ2GZ{&bhL`FI`0* zH8Xre{#@=hoL^o<$e8*+00Q)XH6|X7^gEZCcr?P}3KNe;cwA-T(Fl(l|4exJ>N%I6 zje1V41cibGfcc9<=|h7yA|LBbsm#Vr9@sF@Hyiaxf!U}J+n*)%et}(CQZ4K6-IgWw zI{l_BS$FwMQ~tgxOX_n@H9%ooLrzha+zZEFgR-;adsAWKM^u*F)&&$!1G7+X)j3P5 z>U)%7;yP2q;dn!}j4abeIyeCtt?FFx0ohj9Est#3|a?4s+&_63vo-EI{ zBqe3aYdeF6EhJOIYX9D(o|$s?yI+82EJGF>pqcwP1LHrNA=UPhB^xs2NKj*jUY{ZL zdEE0e69wFJ^hVTm#3$hR#cudf&zLbksK{rAu|}xn@MV{L($He$WZ&QmLIb?@g2M z!f~pw9ceO60rFHD>I?5mLwQTmq}p~X^6_}JNm3q@UEEV-< zT~nn#$M$uKtb=1!QE#TmSI>c*Z2`Bg*A%I?-Q+Dyk@}o>Zi>|B{A?+xUmczz^?snP z6z^-d)aSalyHTI^uvt4RlMrU!#K?)BDsV zUw$_Ef#MfjsBd2Hl6s%ZQWw_ic`mv8gZqD)p5c=EeBd~j+zQ)=P7HF%i`539@0?Pf z8+*$s^}d_UPO0}Pt#Ha(Q0LxN?UY&_d4^N!b7K>n@|7SsdEU<{`8_bHiGYcKiGYcK ziGYcKi9q{8fX_#n6zko@p?%@N=i*F?^={(Ou5gf*LYLR1CJw40w4-*w_XtTHFuTf-->75TsU2{AtZPS^HcjoY?}X^ z-<{UodPvx<|M7}0LAbAeSC9m&$gnfM7p_}g*IO#HnV)$2$UQ2V*uGNR4G!ujKU%5| z+V_(+Za69M*ok;9;Odj)Gww}^iRZ&lliD8UKTgB*0viU(bJRiYSc_b@8x|_>wBR~g;2=3q8D=gWB$YXU zYu_FuwVg}rU}-7*=B(t^gQd1_dE5{zZ_yBW;}4y4SG_t!R>1M~{$WF5X9~L5UIqU{$Yshqz?ASkCatl7IWbpBQgI0qogvo89Z~89H$Hvyf8|_>HZG4 zgp9`WE**{MH};H{7In}*bBt8W#m{dXBPai5(6w`Wjg{({#HW>Gr7HI1cg9L>A9TVv ziFPN)NqugA|2PRKB<$0c2Kr+*eM?*wxU5B7_|b0*FRsqGZZi;!d9xdl#cM996H;K0lK5!jvrBc=AX zM&h}M;z&FPadV_p$NjGfOA@E612dD7&<;aY653a|F-cs$aQo(ITav`f;cyV+y(F}! z`a_b~2g}d7CnbwZV7Yo-R5IFsJ~LT-0>@jeH8|>oSmtbM}A+XD;_9<+)qdkdl?c$C&K&ppB=+}EJ*k4d~U(+38 z=ZY&YKkGb)Sf~J8>Ja*T6xd?`tL4krY;%amKZFE2=-ZzF9M4VF<^fcdV&0D zF0`XP-zD_Ef|V`-y9$2&VT()X{R{87#64hs_5FP=v_sL`EpC3|FUxy|yU`v4*k{$} zkjmX?x8qv3(EZ4RZcO(zw-8{iqQ@RL+NtQ4BA}N4vvpL80BaIYc1leV>MiaG_EB~F zUy_3LvOYzq<@~A_!EUNL7xYDncyI@7Oz517b|HqR3cb(4LG~3qsY1WEm#3ngkG~Rq zJ{8;5XGA-ti4S3UzjRod(ECFiX;|O0(u8`=R$q}O^tr2bX_${~X+obT+MOnJ|I#&G zd;`aOW{gS~OTPc;{Y%o)(Y|m=I@$M47u!|=KpWEq><)Qr=k|287qK^8=>DT)U7|^q z0cR73_SO#YzRxbwr0U*N6NmQJ4)plL7>wf(lbSf_2GQQy1KSfdsjhy*#G$?5fa^b< zj38P!$y{xu<3N8w!Sf@U<_n=puVl ztp7Y>;?YQ-{WlYjMtD4K;?W3?r~V9h@OLSMzDvtDP_F%uP~uy2pC1PD-cNM-@}~Lt zJlUG-o8}9obT{45G~XXP)ZFie^<(1DK5-Z$u-qm!aZm`fw{{RJu-;8-;-C;{Z|%VR z?qj<*acG}7nEGCt)-kIgac5dR(hU*sF5OXll)aY5#$o1cL@Oh{@%1F(1 zP3Oo;`oCb=G@l^8if5YUW000tHO;r3g4a|x&1a?HqVT5qmQen7ztc3|;fA(hyLyH4 z^oMR&ZHUL~CLWE}J3cV+XoSZrPY=BWuOBn1p#w`=9gAzo|!t-FlJSH<|w}Mxz!bOK?hLnDXma$MRP%R6{S-} z=~T_eB&ud(z6uHo6uVJSfc^yqScHNCR45eWQ#fUUaNu03!&f`iEi2*9rKQyF&-`4y2n` zp*@TSZ+KJ;@6+87+M(Xlz7V&1L51$`{K@BhbWyP|N#hjw*^>4@2Iw5&AGaeZTm9NZ zenmt>FXo((M++0a&$ehE3g&dZUDNVSjdJJ5ftgW@}czMpvk zxu=mk+9CA)+x>|iu%nz0>_Xo=zSS%DlykEU%eR2s(`0`-5cU-L1Rk1oV#}_r7=vk4HIG z@e~deu945*7bmp6u+4EOw<-?hM8t`m9l9U!kl)E&r{Ln0nEJj~3MT5&9lMpv=bpE{BbzDSq_(j)8q1U_^(%j zAwrPP`Q-M(`Q&o4oAdSA_Q4+=fby|CPM7P0+X3g7+uw#uPfxkMLB6^CzU`awdgV^X zqx*jCL+u4oGXI(gv^N9-jMmbJhqRhL{4}T}ub%kW?O_jWQ0c9QhqXoVXsG8N)WUcS zZiGi?T%5nEZYR*-^DZ(NJ1kzs+&=<; z1&<<14RKRG{$RdczfeFuQa3r*k3kOR+ZK(#cE=*kBfeD&8}o^`(OtJ0DPmw4JMu9C z`WlA&IQ&)A2`MdM8rx}ol*Ipz_m-)B7Ai(od?@R~3 z`k(b(5EqMz2hXPA=;n5azUJTmRRs7uvxy3rL$q#a)BVq};=%i=joz3}9tk|w?@U)E zhuZ%{`015*?DL~2kQZPakKa~;CxG_TbN`YDJnG5Qf8pE(?ax2*{-ushH8(oH;_VlX zY=3^k{zZ)m82@b@Fr)lcWB($dDVWIyc>J1V!9*Qqz3cYXgqd zJ~%yJY9Wt`K26K>jrT`$oBKLp|K(P5UuS#W*LmX4uYB`TpGav^6NmQL4*qE0BQrm3 zi@@*CMdKirM>RZ-^f&+W&Qo!C>Yb-Pc1V4QVXSJ~0v=&%tcUVlXFS^RZ^Lz6C*-9$ zJwYDjmnq|a6yx}AREI4-j*o{tdhs|iJwZb}5!PJcd7Q*gj5cEj*HS`Nc7y;EmdbcnoSSJZyhXJZNW2%l99+)ud(H z2kS9dud^E~ElO8QrSwZZ)QiSk}J*4O9GiE>%U*C#x^X`+1LA6phLloREEh56xU zY@aCge)V1CUq^gK6vpcnCG|e}K~b^{jz@^_D5=j6+M;Cm`C|tSoDwDb%V?7O6p@0Z$!!8-kJa9@P9?gtc^E% zmh6j?Y5&(TvR7xTy!DJb?t38EDmQnB9qyy8^7@_^OuR3_D)srw)2;HuQy}9Wt9%TS zd2zl~K9qglE$3fjm3lw?8mkPuc~tOCk62~Fo$p0{yUi-+sRM-{Tjj2&d)yYW*D6=f z82L(2muUG=?ViRB^m|Ct*r1LFa)3uEQu=XE`>W@W6r^285b z|8aAywC;aq=7#ODvg6bqV;}xHRwn1c$%1Zi^48B!UAH?VP6mDXw~fcS;-t#Xjh;A} zp#WGMCqIVfvHk8i%=fc#@<2~u{3H(RyJI}sM;I0_XZ`qT{+-TvIZ7RHD2kWc?K|qe zUm7pf@sQdF;-x-!{ARqo;;gry{N($1dCU2?-8H0tf_%{RuM7GnB*+NWunH4o_Z9bE zdiqrfaw=5&j*SWO`(L49yq6#!D29UmmLT8ny*KHN;faWUR-#n!j9QQ=OQ5*3?@pB0 zf4wkq!t04rpBp}qC?oHBBx-+eA#d`)$<@Buh+|+jwuk*$@|vvx)UGV~{BI9mxOZEY zd}p+$|Gzh7$-2v5n)3HmS#r_2Pgbv}0s2Awf}El(xfiTr24!c-_onU{|3p-l+|~sE zADD&p);UY6Z0CNHDHpGPZNnSyW@7t%DpTG)Wa}?i-jgX8Xqg{pVEkt@blOVb7&Y)$As2NSC)o0AS10<(iY>Ak@5c`S7^1y91`D}=TD%dygO_T4!>l?NsO{OV8o=U^_<*qc8wR&xSe%h7deeIUl&Yg403ESP+o*s6~r#|U>>Pt7dvAxfC%afp6 z2tM15?@zp2>S`P4mg}H;V>-Aoy-!{8Fcj#^k%2j$F^2DWi51PcU3#3 zGS@Ne45w7b*e;pil&=K6`1oV}oKm0H|L&Puld6u~#G$>l13VWOC`}3-xMAYZ-r50A z2iX23@9X-V{Y|p3>1%h>*KTK(r>v^sKIR-wpoM7b=_|MWDfN}O4&KQKC486nqglHj zyhF&prf<`HR^nT8V$*!Qe!pf|(|kcBuP&%*K0n!Rb?;{P#YSSjxg4#YAv1wL6au_o ziTg8tkF2Cu;mjVidrbB#eeL~n>*x2C>3>M(Z!hLhIM=P8NEezbRR0vm{R?3q9X`DOoIEvp?+f_mYL4SALQ# zu1N(&+;_<$wR?xrSN@hPhJqU7`))R&^-uk6;!IG3j2K}P8U27W(k6y~dfDpNl5Jv< zQcz^u#1oIf1a^i^od5J4Cyy_+39ZMw&?Y7*1;|pH(0Zv=Hle1s#p`SW^=USt=kL#h zT&0J4$0n9st`tW$w9~cECL()*Wx5V_VN;5s-gcqq#e<24+l872&rP|+1qPyTxAV!Jr&KU+UsdXrs@efaio*R8dS``&nW>Yl&Z#VvuS zte)`_#H(L^@y{RHg;FCuv&Swz2XiA&|7I6aNDN6o!66EjqR8z) zyJu%R#K7-Mre0L$5O0;|c6t302inuW$$|DI?{$c~l-Z3Z9YX8F-gJl+F##EiKXVAJ z7x>8`biMU(3ay73>J(Z(2KMu2DMM_TPBB<1U}rkT+FPHqY`VZHv_5OOQv@i(YU`Xr z+jV)`Dej!T`Twfkbqb}XdvA|Z%vXl{I=Y0`D-Li8(B1^zAL$YaN5nBNE znaL^QmtfF{6{HBQPq{QjD62d>?@GaT`fQ4TT7LP?&r;AnOqW#5=crUs1jXKxkt(!4 zde&HzY9LG;+FN^Q?)zYd|8FC}`>1&wv7W}6{z`43fXDbkPd|(_R59G6X>{g?kLOd? ziB0qQiT;Q2Zauxkjz6Vdg7;DR+LJii{WcBv4P`*Bx8Xhr8d10Wx_>5=!;8n!@1x3U zTRal!O>Ob{R(1>FaXQFpPM=fc#8PlS1yRhW9U03zIHL{(rJv= zBJ+~YDm@xcO@W^+iN_fr5A`l=CDt%<9F%*NuK64`0^ClPQ|;$b%%h!GH>~%mAgj4~ zWZe|3H`bpWcE(M{{|N+q=aE(_RW{ADxR9mgGu5^zqoUGN<*A1Ihv{Bq-+PdK=bIK5 z;6u6J4sv7r3#IhD{nXLTBOC4uI1|$J$~*S&Kn}>`eE~e7<{prHKR)kx62&lg5T=V{UK2HXFj%L#o_Gck1z9U`)d%N!?m8G zfjo}S{Osm*n6f{|_f5x_kL58RhjV^dUN^{#dN`cUh-c8=bg6q}nO;xsc18LZ458`wR8CnTbxkcW#JNsAE(gbtS$}92mdWf$<-4h(xu~ z~6F=B#!~DWN8NDB6i%qCv&%fCw)TxKJmf3{9=jC>rP}^}n zzQ-oiH9}9{VH5i0*iQRyPOuA&SBPDxV>HWV+i}0n4R*Z8?^(Oh=b{3sJfj?9&*_lk zSh$Z-ZN!-45c+)C)ecPeb_e3T!XXsA->!6s`v<@dpN$TI=Kvj;kAKoWnodrkj<4Kg zbK*XrQYYSbwAzXJ+U68fVEfKT} zJwAs0EBg3{OW=7!@_)^R_4$bl%N6WK`Ppvq{@oSv$GhBE?n1W+R2d)bMmew#=6J<$ zt_$}!{Yv?K-HGXeTeq7po#MJ@{u44i*Co`kuhH+jaKF+dx9F=1u-GkDL$gd<=@xD{ z4)@@dv`^+7x6tQ!hEaGIHy0 zzLcQPV+GOOEf)X#igvuFq#tP4lN;=b|O>nW6C! zTAnJ;k?hyi;}XI-7bLVH9@ASA4?Uiva^yidytp129u4K>w=EvIEs00N_oo2L(b9HK z*!X5E?w2oUEj$VVjh5_BW`aD{bJTe-*A=Aa^QLojdX9$m=xO16&(iV){8jJ$k@e3F z`;F@$KI=CFzryn8DWULq-$R`LR~64L%P(nu{;$f-^ZygIB$(UJ>X4*nIP*6b zez<%rhbhNn%Kl8*-yc0(K7a9j{hO1=;Y@wwAE~>gGlJE{>nn zT(aTA`*V+cA4A>6tu?MxbG??Fhs@FPgf8}xuKVjr7ENX=K?3U!7~fW0*S(~*@KyJ} zwj{o=O&R0~_>1$squp0ASI6(7$Nz1B@8Z_NcOI0ZCGkC9%M+ z)8czadA~2yqwgPrNFNrevVHLJwv!{%hv`?4-ophTjr%pZ0!3#ZOd;gpufzGl`}K2( z*-cdV=%WhqRVz1)f_&U1QlJ*+wOjQH;9o%D1r%OD;RP5@Z4L5`PXO!~SAK}Tw>(9( zm%oVkd`WZt5AVBXdi3=tsQwrc%t=es--RHmCEt&QTAt7uJktJM*GHg^YFvaw|1HZe zRoh66s`9y&h48DeyriVKG{3qWtJ8pUKIMf)mF4V}54$xMRCy@WFlKtHJ%tCkK~71r zZXmNtiYqFBjoU+GbQ@&gD1R!mjUVL-p{{v2SqK5QZ*2W#pb(YH&|rO{&|+nxP}{04 zHHkvsi;$Qo^gSH)3Ft2qM6|3aUEQj@YbRjlqX_PUVSu{ zqc$4(YobYhG=*DHZmkvN)L2PAxeX4FLb)|j$e$R6mx878A13EO^m>D7!fG9Hk|Mc$8v~pDqk4k z6NWe}3Pb0ji?!q`KupC?s3#U#**Bz6h21idxC1l zi2D-GJo};g(U{Mg(HPGdO*o9A_#-hNH6zI#Lh?hXeT*RaBdEM1h<`Zo4XC=N(3!3H&CBE$WP4f|3ixFP8<$-F;o$Fpg z^9r5`VU~|}UeR!W^&%}QyTveQDCqZi;LMHZ&Ab@zrNJ7yBiE~~B7Asecx?FSsSV9< zYP2YU0*~=;b9m&De5OY~53Re7T0TRoB_C~jX^6)qAjvD|$j-lXQ@J2qFNL3Nh{p}B zg~w&bfJejkaBaZ_vIad`{jaYftWv8uK3xUz-tSORid>(TdXe%A%>T{r~g@aCw# z#}wi--{ijxx^`{@dA|Pa=6Fmwp1<(J<>UDNVg!jtt3X-rY1UJL?!h6fF z>n+uF+Mjs($UQ2V*uGNRDGKT*KU%6T*6t^3+_e{-`q+sQZhLz5oU2cg)6{mT8NpJE z8Q)+2W`i59jg#fSy1|9;Z=NhCjaYNlraMo;d(!6&zOsS@wUI!)^PtNwACT&OOD z-!M>~qb{n7wa9h5;iB?8EqIT1;2=3qEliaTk|&-EH;cVJNNPJr*1^(J_{~|#s|U;M zWh={iA2$TcTQo%8_(SL1Rj&?_6>xo5|FEG_-=lTYQ2DJ@Erbn~ufp~A7o9Uqmg|ef zhe>@8+R)+hHn@(fa>;P1?M;0(T50z*)DpbCh1~;K?50!J`!4i@YhV>H`hV_*X zGzD&YzadPXejeO#_DmS!yDv;?`%Xi`<$0w&6Vd?$(-TT?Lb)qt#0^oQE%MFv;Te>^Vi~IY%ANfM*VFQ!qSgGe104v(+vf zMKM6#XP8^)DIqqayt3F+R-Ip6Twaz7Yu}Z{^EJCMw;;E$ylj?HQIcQg$t^3dEX55H zYVVbLs;WtDHA<=qBmZ!ud`~goH=JEPP6t$bN-NY4!rEAc?0=ZQtZ!aUIhwzWb9(43 z^4z!Rnx^?AMc;8((|qfRZ~Yxj^HH@M)~lN46C^L_!lwC%t;NXi-`hYfn{&bX!y`YJ zw`mM!vgP&7*J#15rEkXjK)K)N5)b1K_hvP2TED-KtFit)kJy=VdpUCbd)-=U zbB*-PhQV)c<9z+MT)%%`S`CkT4~2*K`*igC_*9?im2+hJcbzBfB8=-BRD!zh^qR0F zar%d+EX<#jg!j-^CE@+DHztY87jEA?ZA+4PIUGj7?1=CbicKWJK|uZ)Wae4@O~`ZKdbD1raQ#W6<1z<)_D%G zPz|7#Iz)eUAOY^9gQ1N7<6N+VsmJ4BpY!-4xUn_{>~F#>Ab*+* z_Yuu^3ALT9W~EDvs~`014_jQ~wO8SJ$0hCo^PBJQbKyO_z1`yGC;qa$XSf^hqXqk% zr@r)A;yvYVytnvTx6t#52i=(NYi=Rny51gp+;~rKw-f=j{GY9(QbgI^0Z(>HO%ZAo z-xKU(>hbTA6s(u^DZ-r%H_pD8B7(mB+s5O*ND&Y2$eowfITi249iA%EwsncW)j{{m zdQycRw_l!$c0m71^!Ze5SDz8>lqNpB|EKAt!_vg!)vs-M!;yydJu6M9VfN}P(uBJ1 zc<8z`%*VDgF)HSUR~GF~6MBBpHC=qO5G=}$N*7DM|LFZo($dksY)LxVcTE@DRsld8 z(?!MWOWxYKJst1M-J6c>�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 diff --git a/test_data/IPTS9865_HB1_exp0815/scan0002.h5 b/test_data/IPTS9865_HB1_exp0815/scan0002.h5 index 5f277ea280f47555f8d4bdb19a2ff5ef6197bef3..31ac90153260821499fed0fe633ff0fec6d6078b 100644 GIT binary patch delta 32 ocmccdh4IE0#tn`7f`%c6rdFmFR;EUJ=H>=wMn;<_=^yg~0L%ajDF6Tf delta 32 mcmccdh4IE0#tn`7f(9XmW>zLZWU6OsWNB(>ym^xTF)skizLZWU6OsYHVs^vYG2uoge_#YYTV) diff --git a/test_data/IPTS9865_HB1_exp0815/scan0004.h5 b/test_data/IPTS9865_HB1_exp0815/scan0004.h5 index c38174ef3dad612fa4bce152ba5d9d295d658461..9cbf4c755057b47c7e3dddb452ebe177489b44f3 100644 GIT binary patch delta 35 qcmdmRoMpptmWC~iib8^hA%><_rWRJFMtT;8mWJl0+l_=6>jVMFe+ioa delta 35 pcmdmRoMpptmWC~iib8@0A%P6zvAbWBm%OgpZ N?^}P-M3x0)G62IGM$iBN diff --git a/test_data/test_samples/mnte.json b/test_data/test_samples/mnte.json new file mode 100644 index 0000000..4b2c263 --- /dev/null +++ b/test_data/test_samples/mnte.json @@ -0,0 +1,36 @@ +{ + "type": "xtal", + "a": 4.128474, + "b": 4.128474, + "c": 6.651507, + "alpha": 90, + "beta": 90, + "gamma": 120, + "shape": "cylindrical", + "width": 1.0, + "height": 1.0, + "depth": 1.0, + "mosaic_h": 30, + "mosaic_v": 30, + "ub_matrix": [ + -0.016965, + -0.026212, + -0.071913, + -0.108415, + 0.120600, + -0.003178, + 0.201388, + 0.193307, + -0.007769 + ], + "plane_normal": [ + -0.017470, + 0.998476, + 0.052341 + ], + "in_plane_ref": [ + -0.999847, + -0.017385, + -0.002086 + ] +} \ No newline at end of file diff --git a/test_data/test_samples/nitio3.json b/test_data/test_samples/nitio3.json index ec02a8c..2494656 100644 --- a/test_data/test_samples/nitio3.json +++ b/test_data/test_samples/nitio3.json @@ -27,5 +27,10 @@ -0.04032, 0.998565, -0.035237 + ], + "in_plane_ref": [ + -0.993257, + -0.043892, + -0.107299 ] } \ No newline at end of file diff --git a/tests/test_cooper_nathans.py b/tests/test_cooper_nathans.py index 4b6d98c..192ab42 100755 --- a/tests/test_cooper_nathans.py +++ b/tests/test_cooper_nathans.py @@ -19,7 +19,7 @@ def test_copper_nathans_localQ(tas_params): [986.5610, -4129.1553, -0.0000, 864.3494], ] ) - assert np.allclose(rez.mat, mat, atol=1e-2) + assert np.allclose(rez.mat, mat, atol=1e-1) def test_copper_nathans_hkl(tas_params): @@ -34,7 +34,7 @@ def test_copper_nathans_hkl(tas_params): [-5152.9962, -5153.0102, 448.8024, 864.3494], ] ) - assert np.allclose(rez.mat, mat, atol=1e-2) + assert np.allclose(rez.mat, mat, atol=1e-1) def test_copper_nathans_projection(tas_params): @@ -49,7 +49,7 @@ def test_copper_nathans_projection(tas_params): [-1.0306e04, 4.4880e02, 1.4003e-02, 8.6435e02], ] ) - assert np.allclose(rez.mat, mat, atol=1e-2) + assert np.allclose(rez.mat, mat, atol=1e-1) @pytest.fixture diff --git a/tests/test_sample.py b/tests/test_sample.py index 948cb5f..fed8016 100644 --- a/tests/test_sample.py +++ b/tests/test_sample.py @@ -80,4 +80,4 @@ def test_load_xtal_from_json(): xtal = Xtal.from_json(xtal_json_path) assert xtal.type == "xtal" assert np.allclose(xtal.a, 5.034785) - assert np.shape(xtal.ub_matrix) == (3, 3) + assert np.shape(xtal.ub_mat) == (3, 3) diff --git a/tests/test_tas.py b/tests/test_tas.py index d13e580..72a7495 100644 --- a/tests/test_tas.py +++ b/tests/test_tas.py @@ -18,7 +18,7 @@ def test_find_two_theta(): assert np.allclose(two_theta, 48.489200, atol=1e-1) -def test_calc_ub_from_2_peaks_hb3(): +def test_calc_ub_from_2_peaks_takin(): lattice_params = (3.574924, 3.574924, 5.663212, 90, 90, 120) ub_matrix = np.array( [ @@ -54,11 +54,15 @@ def test_calc_ub_from_2_peaks_hb3(): assert np.allclose(tas.sample.u, u, atol=1e-2) assert np.allclose(tas.sample.v, v, atol=1e-2) - angles_1 = tas.find_angles(peak=(0, 0, 2), ei=13.500172) - assert np.allclose(angles_1, angles1, atol=1e-2) + angles_1 = tas.calculate_motor_angles(peak=(0, 0, 2), ei=13.500172) + for name, value in angles_1._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles1, name), atol=1e-2) - # angles = tas.find_angles(peak=(0, 2, 0), ei=13.500172, ef=13.505137) - # assert np.allclose(angles_list[1], angles, atol=1e-1) + angles_2 = tas.calculate_motor_angles(peak=(0, 2, 0), ei=13.500172, ef=13.505137) + for name, value in angles_2._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles2, name), atol=1e-1) # swap peaks and calculate again tas.calculate_ub_matrix(peaks=(peak2, peak1)) @@ -70,6 +74,48 @@ def test_calc_ub_from_2_peaks_hb3(): assert np.allclose(tas.sample.v, v, atol=1e-2) +def test_calc_ub_from_2_peaks_hb3(): + lattice_params = (4.128474, 4.128474, 6.651507, 90, 90, 120) + ub_matrix = np.array( + [ + [-0.000328, -0.004396, -0.150319], + [-0.014647, 0.234528, -0.002614], + [0.279308, 0.152332, -0.000314], + ] + ) + + plane_normal = [-0.017470, 0.998476, 0.052341] + in_plane_ref = [-0.999847, -0.017385, -0.002086] + + tas = TAS() + hb3_json = "./src/tavi/instrument/instrument_params/hb3_mnte.json" + tas.load_instrument_params_from_json(hb3_json) + tas.mount_sample(Xtal(lattice_params)) + + ei = 14.7 + ef = 14.7 + angles1 = MotorAngles(two_theta=41.545383, omega=20.840750, sgl=1.001000, sgu=-3.000750) + peak1 = Peak(hkl=(0, 0, 2), angles=angles1, ei=ei, ef=ef) + angles2 = MotorAngles(two_theta=38.526091, omega=-70.614125, sgl=1.001000, sgu=-3.000750) + peak2 = Peak(hkl=(1, 0, 0), angles=angles2, ei=ei, ef=ef) + + tas.calculate_ub_matrix(peaks=(peak1, peak2)) + + assert np.allclose(tas.sample.ub_mat, ub_matrix, atol=1e-1) + assert np.allclose(tas.sample.plane_normal, plane_normal, atol=1e-1) + assert np.allclose(tas.sample.in_plane_ref, in_plane_ref, atol=1e-1) + + angles_1 = tas.calculate_motor_angles(peak=(0, 0, 2), ei=ei) + for name, value in angles_1._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles1, name), atol=1e-1) + + angles_2 = tas.calculate_motor_angles(peak=(1, 0, 0), ei=ei, ef=ei) + for name, value in angles_2._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles2, name), atol=1e-1) + + def test_calc_ub_from_2_peaks_ctax(): ub_matrix = np.array( [ @@ -101,10 +147,14 @@ def test_calc_ub_from_2_peaks_ctax(): assert np.allclose(ctax.sample.plane_normal, plane_normal, atol=1e-2) assert np.allclose(ctax.sample.in_plane_ref, in_plane_ref, atol=1e-2) - # angles = ctax.find_angles(peak=(0, 0, 3), ei=4.799999, ef=4.799998) - # assert np.allclose(angles_list[0], angles, atol=1e-1) - # angles = ctax.find_angles(peak=(0.5, 0.5, 0), ei=4.799999, ef=4.799998) - # assert np.allclose(angles_list[1], angles, atol=1e-1) + angles = ctax.calculate_motor_angles(peak=(0, 0, 3), ei=4.799999, ef=4.799998) + for name, value in angles._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles1, name), atol=1e-1) + angles = ctax.calculate_motor_angles(peak=(0.5, 0.5, 0), ei=4.799999, ef=4.799998) + for name, value in angles._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles2, name), atol=1e-1) def test_calc_ub_from_2_peaks_hb1(): @@ -138,10 +188,14 @@ def test_calc_ub_from_2_peaks_hb1(): assert np.allclose(hb1.sample.plane_normal, plane_normal, atol=1e-2) assert np.allclose(hb1.sample.in_plane_ref, in_plane_ref, atol=1e-2) - # angles = hb1.find_angles(peak=(1, 1, 0), ei=13.499993, ef=13.506112) - # assert np.allclose(angles_list[0], angles, atol=1e-1) - # angles = hb1.find_angles(peak=(0, 0, 1), ei=13.499993, ef=13.506112) - # assert np.allclose(angles_list[1], angles, atol=1e-1) + angles = hb1.calculate_motor_angles(peak=(1, 1, 0), ei=13.499993, ef=13.506112) + for name, value in angles._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles1, name), atol=1e-1) + angles = hb1.calculate_motor_angles(peak=(0, 0, 1), ei=13.499993, ef=13.506112) + for name, value in angles._asdict().items(): + if value is not None: + assert np.allclose(value, getattr(angles2, name), atol=1e-1) # swap peaks and calculate again hb1.calculate_ub_matrix(peaks=(peak2, peak1))