From 9fdeb5d8d7b35090ebe3d13fb15ae9ce19fabccd Mon Sep 17 00:00:00 2001 From: Bing Li Date: Thu, 19 Sep 2024 12:25:03 -0400 Subject: [PATCH] modified the fit class --- scripts/HoV6Sn6_contour.py | 2 +- scripts/MnTe_contour.py | 2 +- scripts/test_fit_group.py | 2 +- scripts/test_scan.py | 2 +- src/tavi/data/fit.py | 81 +++++++++---------- src/tavi/data/tavi.py | 59 ++++++-------- test_data/IPTS32124_CG4C_exp0424/scan0001.h5 | Bin 76120 -> 76120 bytes test_data/IPTS32124_CG4C_exp0424/scan0002.h5 | Bin 108976 -> 108976 bytes test_data/IPTS32124_CG4C_exp0424/scan0003.h5 | Bin 108976 -> 108976 bytes test_data/IPTS32124_CG4C_exp0424/scan0004.h5 | Bin 108976 -> 108976 bytes test_data/IPTS32124_CG4C_exp0424/scan0005.h5 | Bin 88576 -> 88576 bytes test_data/IPTS32124_CG4C_exp0424/scan0006.h5 | Bin 108976 -> 108976 bytes test_data/IPTS32124_CG4C_exp0424/scan0007.h5 | Bin 108976 -> 108976 bytes test_data/IPTS32124_CG4C_exp0424/scan0008.h5 | Bin 88576 -> 88576 bytes test_data/IPTS32124_CG4C_exp0424/scan0009.h5 | Bin 108976 -> 108976 bytes test_data/IPTS32124_CG4C_exp0424/scan0010.h5 | Bin 91808 -> 91808 bytes test_data/IPTS32124_CG4C_exp0424/scan0011.h5 | Bin 85696 -> 85696 bytes test_data/IPTS32124_CG4C_exp0424/scan0012.h5 | Bin 85712 -> 85712 bytes test_data/IPTS32124_CG4C_exp0424/scan0013.h5 | Bin 85712 -> 85712 bytes test_data/IPTS32124_CG4C_exp0424/scan0014.h5 | Bin 85696 -> 85696 bytes test_data/IPTS32124_CG4C_exp0424/scan0015.h5 | Bin 85696 -> 85696 bytes test_data/IPTS32124_CG4C_exp0424/scan0016.h5 | Bin 85656 -> 85656 bytes test_data/IPTS32124_CG4C_exp0424/scan0017.h5 | Bin 85656 -> 85656 bytes test_data/IPTS32124_CG4C_exp0424/scan0018.h5 | Bin 85696 -> 85696 bytes test_data/IPTS32124_CG4C_exp0424/scan0019.h5 | Bin 91840 -> 91840 bytes test_data/IPTS32124_CG4C_exp0424/scan0020.h5 | Bin 91840 -> 91840 bytes test_data/IPTS32124_CG4C_exp0424/scan0021.h5 | Bin 109048 -> 109048 bytes test_data/IPTS32124_CG4C_exp0424/scan0022.h5 | Bin 109048 -> 109048 bytes test_data/IPTS32124_CG4C_exp0424/scan0023.h5 | Bin 109048 -> 109048 bytes test_data/IPTS32124_CG4C_exp0424/scan0024.h5 | Bin 108960 -> 108960 bytes test_data/IPTS32124_CG4C_exp0424/scan0025.h5 | Bin 108960 -> 108960 bytes test_data/IPTS32124_CG4C_exp0424/scan0026.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0027.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0028.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0029.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0030.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0031.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0032.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0033.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0034.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0035.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0036.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0037.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0038.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0039.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0040.h5 | Bin 109056 -> 109056 bytes test_data/IPTS32124_CG4C_exp0424/scan0041.h5 | Bin 74040 -> 74040 bytes test_data/IPTS32124_CG4C_exp0424/scan0042.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0043.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0044.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0045.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0046.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0047.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0048.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0049.h5 | Bin 80280 -> 80280 bytes test_data/IPTS32124_CG4C_exp0424/scan0050.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0051.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0052.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0053.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0054.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0055.h5 | Bin 109056 -> 109056 bytes test_data/IPTS32124_CG4C_exp0424/scan0056.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0057.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0058.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0059.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0060.h5 | Bin 109056 -> 109056 bytes test_data/IPTS32124_CG4C_exp0424/scan0061.h5 | Bin 74040 -> 74040 bytes test_data/IPTS32124_CG4C_exp0424/scan0062.h5 | Bin 73896 -> 73896 bytes test_data/IPTS32124_CG4C_exp0424/scan0063.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0064.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0065.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0066.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0067.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0068.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0069.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0070.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0071.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0072.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0073.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0074.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0075.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0076.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0077.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0078.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0079.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0080.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0081.h5 | Bin 74040 -> 74040 bytes test_data/IPTS32124_CG4C_exp0424/scan0082.h5 | Bin 90520 -> 90520 bytes test_data/IPTS32124_CG4C_exp0424/scan0083.h5 | Bin 92584 -> 92584 bytes test_data/IPTS32124_CG4C_exp0424/scan0084.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0085.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0086.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0087.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0088.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0089.h5 | Bin 74040 -> 74040 bytes test_data/IPTS32124_CG4C_exp0424/scan0090.h5 | Bin 108944 -> 108944 bytes test_data/IPTS32124_CG4C_exp0424/scan0091.h5 | Bin 109024 -> 109024 bytes test_data/IPTS32124_CG4C_exp0424/scan0092.h5 | Bin 84304 -> 84304 bytes test_data/IPTS9865_HB1_exp0815/scan0001.h5 | Bin 32416 -> 32416 bytes test_data/IPTS9865_HB1_exp0815/scan0002.h5 | Bin 32416 -> 32416 bytes test_data/IPTS9865_HB1_exp0815/scan0003.h5 | Bin 65488 -> 65488 bytes test_data/IPTS9865_HB1_exp0815/scan0004.h5 | Bin 75792 -> 75792 bytes test_data/IPTS9865_HB1_exp0815/scan0005.h5 | Bin 65664 -> 65664 bytes test_data/IPTS9865_HB1_exp0815/scan0006.h5 | Bin 65664 -> 65664 bytes test_data/tavi_test_exp424.h5 | Bin 7850407 -> 7850407 bytes tests/test_fit.py | 26 +++--- tests/test_scan.py | 2 +- tests/test_scan_group.py | 2 +- tests/test_tavi_data.py | 49 +++++------ 109 files changed, 104 insertions(+), 123 deletions(-) diff --git a/scripts/HoV6Sn6_contour.py b/scripts/HoV6Sn6_contour.py index 64c746d..530a114 100644 --- a/scripts/HoV6Sn6_contour.py +++ b/scripts/HoV6Sn6_contour.py @@ -14,7 +14,7 @@ tavi.new_file(tavi_file_name) nexus_file_name = "./test_data/nexus_exp1031.h5" -tavi.get_nexus_data_from_disk(nexus_file_name) +tavi.load_nexus_data_from_disk(nexus_file_name) dataset = tavi.data["IPTS32912_HB1A_exp1031"] # -------------- 001 s1 scans ------------ diff --git a/scripts/MnTe_contour.py b/scripts/MnTe_contour.py index dd96a00..e1bfea8 100644 --- a/scripts/MnTe_contour.py +++ b/scripts/MnTe_contour.py @@ -15,7 +15,7 @@ tavi_file_name = "./test_data/tavi_test_exp0813.h5" tavi.new_file(tavi_file_name) -tavi.get_nexus_data_from_disk(nexus_folder) +tavi.load_nexus_data_from_disk(nexus_folder) dataset = tavi.data["IPTS34735_HB3_exp0813"] # -------------- H0L const Q scans ------------ diff --git a/scripts/test_fit_group.py b/scripts/test_fit_group.py index 09befe4..2146a83 100644 --- a/scripts/test_fit_group.py +++ b/scripts/test_fit_group.py @@ -45,7 +45,7 @@ def test_fit_group(tavi): tavi.new_file(tavi_file_name) nexus_file_name = "./test_data/nexus_exp1031.h5" - tavi.get_nexus_data_from_disk(nexus_file_name) + tavi.load_nexus_data_from_disk(nexus_file_name) dataset = tavi.data["IPTS32912_HB1A_exp1031"] test_fit_group(tavi) diff --git a/scripts/test_scan.py b/scripts/test_scan.py index e89020a..39c9ee5 100644 --- a/scripts/test_scan.py +++ b/scripts/test_scan.py @@ -25,7 +25,7 @@ def test_scan_group_contour_exp710(): tavi.new_file(tavi_file_name) nexus_file_name = "./tests/test_data_folder/nexus_exp710.h5" - tavi.get_nexus_data_from_disk(nexus_file_name) + tavi.load_nexus_data_from_disk(nexus_file_name) scan_list = ( [tavi.data[f"scan{i:04}"] for i in range(214, 225, 1)] diff --git a/src/tavi/data/fit.py b/src/tavi/data/fit.py index 52c623c..338e07d 100644 --- a/src/tavi/data/fit.py +++ b/src/tavi/data/fit.py @@ -1,9 +1,16 @@ +from typing import Optional + import numpy as np from lmfit import Parameters, models +from tavi.data.plotter import Plot1D + + +class Fit1D(object): + """Fit a 1d curve -class Fit(object): - """Save information about fits""" + Attributes: + NUM_PTS (int): number of points for the fit curve""" models = { # ---------- peak models --------------- @@ -25,47 +32,35 @@ class Fit(object): "Spline": models.SplineModel, } - def __init__(self, x, y, err=None, fit_range=None): - """ - initialize a fit model + def __init__(self, plot1d: Plot1D): + """initialize a fit model""" + self.NUM_PTS: int = 100 + self.x = plot1d.x + self.y = plot1d.y + self.yerr = plot1d.yerr - Args: - x (list) - y (list) - err (list | None) - fit_range (tuple) - NUM_PTS (int): number of points for the fit curve - """ - self.NUM_PTS = 100 - self.range = fit_range - self.x = np.array(x) - self.y = np.array(y) - self.err = err - - # trim the range - if fit_range is not None: - fit_min, fit_max = fit_range - mask = np.bitwise_and(x >= fit_min, x <= fit_max) - self.x = self.x[mask] - self.y = self.y[mask] - if self.err is not None: - self.err = self.err[mask] - - self.x_plot = np.linspace( - self.x.min(), - self.x.max(), - num=self.NUM_PTS, - ) - self.y_plot = None - - self.background_models = [] - self.signal_models = [] + self.background_models: models = [] + self.signal_models: models = [] self.pars = Parameters() self.num_backgrounds = 0 self.num_signals = 0 self.fit_result = None self.PLOT_SEPARATELY = False + self.fit_plot: Optional[Plot1D] = None + + def set_range(self, fit_min, fit_max): + """set the range used for fitting""" + + mask = np.bitwise_and(self.x >= fit_min, self.x <= fit_max) + self.x = self.x[mask] + self.y = self.y[mask] + if self.yerr is not None: + self.yerr = self.yerr[mask] + + @property + def x_plot(self): + return np.linspace(self.x.min(), self.x.max(), num=self.NUM_PTS) def add_background( self, @@ -94,7 +89,7 @@ def add_background( prefix = f"b{self.num_backgrounds}_" else: prefix = "" - model = Fit.models[model](prefix=prefix, nan_policy="propagate") + model = Fit1D.models[model](prefix=prefix, nan_policy="propagate") param_names = model.param_names # guess initials pars = model.guess(self.y, x=self.x) @@ -150,7 +145,7 @@ def add_signal( """ self.num_signals += 1 prefix = f"s{self.num_signals}_" - model = Fit.models[model](prefix=prefix, nan_policy="propagate") + model = Fit1D.models[model](prefix=prefix, nan_policy="propagate") param_names = model.param_names # guess initials pars = model.guess(self.y, x=self.x) @@ -184,19 +179,19 @@ def add_signal( self.pars.add(pars[param_name]) self.signal_models.append(model) - def perform_fit(self): + def perform_fit(self) -> None: model = np.sum(self.signal_models) if self.num_backgrounds > 0: model += np.sum(self.background_models) - if self.err is None: + if self.yerr is None: out = model.fit(self.y, self.pars, x=self.x) else: - out = model.fit(self.y, self.pars, x=self.x, weights=self.err) + out = model.fit(self.y, self.pars, x=self.x, weights=self.yerr) self.result = out self.y_plot = model.eval(out.params, x=self.x_plot) - fit_report = out.fit_report(min_correl=0.25) - return fit_report + self.fit_report = out.fit_report(min_correl=0.25) + self.fit_plot = Plot1D(x=self.x_plot, y=self.y_plot) diff --git a/src/tavi/data/tavi.py b/src/tavi/data/tavi.py index 2d437dc..00350f4 100644 --- a/src/tavi/data/tavi.py +++ b/src/tavi/data/tavi.py @@ -52,7 +52,7 @@ def new_file(self, file_path: Optional[str] = None) -> None: except OSError: print(f"Cannot create tavi file at {self.file_path}") - def get_nexus_data_from_disk(self, path_to_hdf5_folder): + def load_nexus_data_from_disk(self, path_to_hdf5_folder): """Copy hdf5 data from path_to_hdf5_folder into tavi.""" # validate path if path_to_hdf5_folder[-1] != "/": @@ -63,6 +63,7 @@ def get_nexus_data_from_disk(self, path_to_hdf5_folder): scan_list.sort() with h5py.File(self.file_path, "r+", track_order=True) as tavi_file: + scans = {} for scan in scan_list: scan_name = scan.split(".")[0] # e.g. "scan0001" scan_path = path_to_hdf5_folder + scan @@ -73,11 +74,13 @@ def get_nexus_data_from_disk(self, path_to_hdf5_folder): scan_file.copy( source=scan_file["/" + scan_name], dest=tavi_file["/data/" + dataset_name], expand_soft=True ) - - self.load_data() + nexus_entry = scan_file[scan_name] + _, scan_entry = Scan.from_nexus_entry(nexus_entry) + scans.update({scan_name: scan_entry}) + self.data.update({dataset_name: scans}) # TODO - def get_spice_data_from_disk(self, path_to_spice_folder): + def load_spice_data_from_disk(self, path_to_spice_folder): """Load hdf5 data from path_to_hdf5. Args: @@ -89,7 +92,7 @@ def get_spice_data_from_disk(self, path_to_spice_folder): self.load_data() # TODO - def get_data_from_oncat(self, user_credentials, ipts_info, OVERWRITE=True): + def load_data_from_oncat(self, user_credentials, ipts_info, OVERWRITE=True): """Load data from ONCat based on user_credentials and ipts_info. Args: @@ -100,8 +103,9 @@ def get_data_from_oncat(self, user_credentials, ipts_info, OVERWRITE=True): """ self.load_data() + # TODO load processed_data def load_data(self): - """Load tavi data into memory""" + """Load data, processed_data, fits and plots in a tavi file into memory""" with h5py.File(self.file_path, "r") as tavi_file: for dataset_name in (tavi_data := tavi_file["data"]): @@ -110,7 +114,6 @@ def load_data(self): nexus_entry = dataset[scan_name] _, scan_entry = Scan.from_nexus_entry(nexus_entry) scans.update({scan_name: scan_entry}) - self.data.update({dataset_name: scans}) def open_file(self, tavi_file_path): @@ -121,7 +124,6 @@ def open_file(self, tavi_file_path): # TODO load processed_data fits, and plots - # TODO def save_file(self, path_to_hdf5: Optional[str] = None): """Save current data to a hdf5 on disk at path_to_hdf5 @@ -131,37 +133,24 @@ def save_file(self, path_to_hdf5: Optional[str] = None): if path_to_hdf5 is not None: self.file_path = path_to_hdf5 - # TODO save processed_data fits and plots - - def delete_data_entry(self, entry_id): - """Delete a date entry from file based on entry_id. - - If an data entry if deleted, also delete the fits, scan_groups, plots - that contains the conresponding entry. - - Args: - entry_id (str): ID of entry to be deteled. - """ - pass - - def select_entries(self, conditions): - """Return a list of data entry IDs which satisfis the conditions. - - All data points in a scan have to satisfy all conditions. + try: # mode a: Read/write if exists, create otherwise + with h5py.File(self.file_path, "a", track_order=True) as tavi_file: + if "/data" not in tavi_file: + tavi_file.create_group("data", track_order=True) + pass - Args: - conditions (dict): scan[key] equals value - or in the range of (vaule[0], value[1]) - for example: {"IPTS":1234, "temperature":(2,5)} + if "/processed_data" not in tavi_file: + tavi_file.create_group("processed_data", track_order=True) - Returns: - tuple: entry IDs + # TODO save processed_data fits and plots + if "/fits" not in tavi_file: + tavi_file.create_group("fits", track_order=True) - """ - pass + if "/plots" not in tavi_file: + tavi_file.create_group("plots", track_order=True) - def get_selected(self): - return "scan0001" + except OSError: + print(f"Cannot create tavi file at {self.file_path}") def generate_scan_group( self, diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0001.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0001.h5 index 812d6970ace5174faf7e2c13ccf9aee63b0a8a95..f0a2185913f98dc910eb623aa029888d8dde255f 100644 GIT binary patch delta 32 ncmca{iRH#6mWC~iEL?o%Rt5%E#+G{K24-d^2HSR;I>Qh6Z}3hDOGgCfkL$7~SLnvA77l diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0002.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0002.h5 index e64aa262114719aa699146b1bc3cbf8f39681dea..520bb5196d98f5b940e879649e902a8591f01bcb 100644 GIT binary patch delta 32 ocmdmRnQg;mwuUW?a~k=~tqcsTj4k!djV&z=Ew-;}WMtC-0LB#xZU6uP delta 32 ocmdmRnQg;mwuUW?a~k=KtW1rq3=Q;5P0S4pO}DRVWMtC-0L2>$R{#J2 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0003.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0003.h5 index 47597d50213d268d02b4a67fe83139a78fd07809..5b4dbf7be61a7b176f72cc53454e89fc97ea6b1d 100644 GIT binary patch delta 32 ocmdmRnQg;mwuUW?a~k=~tqcsTj4k!d&5g|r4YsdpWMtC-0L8KjVE_OC delta 32 ocmdmRnQg;mwuUW?a~k=KtW1rq3=Q;5Ees5d4Y#jqWMtC-0L1kQQUCw| diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0004.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0004.h5 index 57f9f1ff98404a99bf26cd8f3c3e1204ce7b27c2..293ad3aa18bde0d99f6538958d1f0c5712cd6c1f 100644 GIT binary patch delta 32 ocmdmRnQg;mwuUW?a~k=~tqcsTj4kyn49pBo4Y#jqWMtC-0L6(4UH||9 delta 32 ocmdmRnQg;mwuUW?a~k=KtW1rq3=QJO}DRVWMtC-0L9V@X8-^I delta 32 ocmdmRnQg;mwuUW?a~k=KtW1rq3=Qh($ delta 32 ocmZ2*mUY2d)`l&NOYHcJtW1rq3=Q-w42%p-jJI#HV|=F$0J~}mmH+?% diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0011.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0011.h5 index 43c20e1f7aabc94fd9b5f5b203ab68c56cbb97a2..6152d77caa63a9e8ab79c5b7239b1732fb836087 100644 GIT binary patch delta 32 ocmX>wm-WD0)`l&NXLR|@tqcsTObql4jLnQqjke#?WqhUp0J@0^mH+?% delta 32 ocmX>wm-WD0)`l&NXLR|DtW1rq3=Q-wjExKo47T6WWqhUp0J>}nkN^Mx diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0012.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0012.h5 index c3621ad8e5578a9010aadf83503195f31a29ed2a..ff65c9b3b05a75eda83bc926005a9ce13003acd1 100644 GIT binary patch delta 32 ocmcaGm-WJ2)`l&NM^yRDtqcsTObql4%q)yd&9`4tW&EcB0KG5@zW@LL delta 32 ocmcaGm-WJ2)`l&NM^yQYtW1rq3=Q-w%#2KoOt)WBW&EcB0KGg4z5oCK diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0013.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0013.h5 index 1f34c3b0ab97028521c6574ee5b0e178bf62a24b..20a5fcf2c86e0624dfe2fa3cc6d102b6e5a1eae4 100644 GIT binary patch delta 32 ocmcaGm-WJ2)`l&NM^yRDtqcsTObql44Gc_-%(q`sW&EcB0KB9Mu>b%7 delta 32 ocmcaGm-WJ2)`l&NM^yQYtW1rq3=Q-wER9SoEVo}$W&EcB0KKUS%K!iX diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0014.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0014.h5 index a5993d187cf710b9418c786f7bb8eef828fb6d8d..41b3ddcc891f29390e90db54be55f5c2a5c18815 100644 GIT binary patch delta 32 ocmX>wm-WD0)`l&NXLR|@tqcsTObql4jg5>=Ew|s&WqhUp0J@$Eng9R* delta 32 ocmX>wm-WD0)`l&NXLR|DtW1rq3=Q-wjf_l diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0015.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0015.h5 index 7392c1a0ab498418aae0b7ecd871d826ecaa399e..df4041210ad7a4851be0602bf6eeb415dac58b91 100644 GIT binary patch delta 32 ocmX>wm-WD0)`l&NYxMZctqcsTObql4%}h)zEVu8{V`NhR0JY8ug#Z8m delta 32 ocmX>wm-WD0)`l&NYxMYxtW1rq3=Q-wO^uAqEVl2`V`NhR0JY)?g#Z8m diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0016.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0016.h5 index abb7d6fbd4310559feced857532ccfd5beeff68f..353ccbe497ce8ff8caff006d00c7774164d70552 100644 GIT binary patch delta 30 mcmbO+mvzQm)`l&NOVoJGtqcsTObql4EzL}}Z%|`=p$-6>F$sO$m?y diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0017.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0017.h5 index 289a16b05725f6ec042f37b305e34cb4d515c8f8..f729f73c789571fd420df68596d724db3e0477ad 100644 GIT binary patch delta 32 ocmbO+mvzQm)`l&NOVs$xtqcsTObqmlj4aH}EVpk`V|=C#0IYBc{r~^~ delta 32 ocmbO+mvzQm)`l&NOVs#`tW1rq3=Q=R42?`J%(rh+V|=C#0IUlM^Z)<= diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0018.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0018.h5 index cc47f5a694eb6a9876b9b90fceabd301990eefb3..7caa0497dc479b69e5de8d7beca58870c4d68941 100644 GIT binary patch delta 32 ocmX>wm-WD0)`l&NYxMZctqcsTObqml%nVG;O}FpTV`NhR0JWD1egFUf delta 32 ocmX>wm-WD0)`l&NYxMYxtW1rq3=Q=ROpMHo&9?8-V`NhR0JV1sdjJ3c diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0019.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0019.h5 index 144f7c4adeea7566aefd8bedfd4990c62fd990d4..5f4ef977ed6c2b7dcd61bcb9b9b139f6f861d1dd 100644 GIT binary patch delta 32 ocmX?bmi53{)`l&NE!KSIRt5%ECI)&&mPVE)2HPiDGwNvr0KO6l+yDRo delta 32 ocmX?bmi53{)`l&NE!KQSR;I>QhK70u=EmlhX4@xOGwNvr0KPa0;{X5v diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0020.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0020.h5 index 19c19282712cd620b81a25b7d2cb5e6464ba48ca..d9e0cc1898a378890a11dbd20e2bf2beee0f7917 100644 GIT binary patch delta 32 ocmX?bmi53{)`l&NE!KSIRt5%ECI))OMrKCl7TYITGwNvr0KN(d-T(jq delta 32 ocmX?bmi53{)`l&NE!KQSR;I>QhK72E2BwAvCfg@jGwNvr0KI<+&Hw-a diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0021.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0021.h5 index 36360c16f0d8cb3b82e9706c3272103462588692..be2869fcf56e40bc8d83fa09eec75dda2e10b162 100644 GIT binary patch delta 32 ocmexyneE4AwuUW?D%E`ERt5%ECI))Orj`ZQhK72E#%AW0M%#_58IS1!0LnlLxBvhE diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0022.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0022.h5 index 3dcb60b39cce5bd190122d1bcb351c5bc6a42106..4feac4d3b2773a4b827b75fe1b40862a23d46553 100644 GIT binary patch delta 32 ocmexyneE4AwuUW?D%E`ERt5%ECI))OmPV!q#@mgm8IS1!0Lm2#u>b%7 delta 32 ocmexyneE4AwuUW?D%E^OR;I>QhK72EW)?<`8IS1!0Ln88w*UYD delta 32 ocmexyneE4AwuUW?D%E^OR;I>QhK71Z1_tKl#@mgm8IS1!0LkVGuK)l5 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0024.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0024.h5 index ab53a016c899855a7f0d2cf7b9f3dc5111ac149a..148a6401d83c263ff0b6b5117795e60eee4c7649 100644 GIT binary patch delta 32 ocmZ2*nQg&kwuUW?UmEz#tqcsTObql)Of5`}EVnZ?GS1Tg0LNnri2wiq delta 32 ocmZ2*nQg&kwuUW?UmEy~tW1rq3=Q>+jE#&9&9*Z&GS1Tg0LIh`dH?_b diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0025.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0025.h5 index 0f8365579baf245371b15acf1ae49b398cc77755..b3a892b5b97d4fa4bb64ad0e8ef528d74a3f839e 100644 GIT binary patch delta 32 ocmZ2*nQg&kwuUW?UmEz#tqcsTObql)EDg*pO}8^OGS1Tg0LN_#iU0rr delta 32 ocmZ2*nQg&kwuUW?UmEy~tW1rq3=Q>+%#1A!EVeT>GS1Tg0LMEDg#Z8m diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0026.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0026.h5 index 6a8b500c08336451d26d2f1d3279b21133d19e55..c25ecd82c37d8f51fcb52c4a96cd3aefd8375bdd 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObql)jf@S-4W0cbd0MjB100000 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>+EKSXfjJF@EW0cbd0Mkti0ssI2 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0027.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0027.h5 index 291c674fd56a1fd1b92d5bd9c47841d344f913fb..bc43470ed5710a872fd20d165e8c82f01c925c47 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObql)O-(E+jm!;=jkh1FW0cbd0Mh#k`Tzg` diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0028.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0028.h5 index 327816fea5c1c6689cc035220ef9e08925443154..ba5204c5d6faa52eb271c21a782db16785fa1772 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObql)Ei4QzjJF@EW0cbd0MmU72LJ#7 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>+O)ZU047MMtW0cbd0Mj)J{{R30 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0029.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0029.h5 index 0529af9011f8dd2697d26b7dcdcff7c5ccc5c7d9..66ac4b5d93dc048fbe7005381a6f3ef532a22af4 100644 GIT binary patch delta 31 ncmaEGneD-4wuUW?Tk3ettqcsTObqnQj0}v8wjZoxl-C9T$lD6S delta 31 ncmaEGneD-4wuUW?Tk3d?tW1rq3=Q>+Ee%Y~w;!xyl-C9T$vg_q diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0030.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0030.h5 index 7949ea308a931d4a63934537ea228d757e63981a..658246dee2053cd3b49183748a19752361ef0ba3 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqnQOpQz}&9)z^W0cbd0Ml&?2LJ#7 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>6j0`Od47VSuW0cbd0Mg_N_W%F@ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0031.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0031.h5 index 83cbcb85cd0db53d4b0020d7747f15dd3493ddaa..66cfd8c519897fa758aefcc5b42ac6dd54aca30b 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqnQEKH5fO|~DZW0cbd0MmR62LJ#7 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>6OpPo|4YnVuW0cbd0MjrE{{R30 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0032.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0032.h5 index bbb282c4e6b02965fb00be49d5d0dc64c013609d..da2f4c642ac37c27e06d3b64299b1b9e8eab8d50 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqnQ4b2TL%(ow^W0cbd0Ml9v1poj5 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>6EKCedjkh1FW0cbd0Mk1Q00000 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0033.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0033.h5 index ccf429cc49a1f3f0943b9cedd0afca144cf486be..3b57a87749f4df57a986894bdfdb84877e921770 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqnQO)Sh!O|~DZW0cbd0Mm{O2><{9 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>64NZ-WjJ6-DW0cbd0Mhpg`2YX_ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0034.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0034.h5 index b8e37a7c9a74958477d44d304f9d935d6a2a0674..6200a1257bbd9e413dabe133edff4b045270369b 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqnQEli9o%(fq@W0cbd0Mm;L2><{9 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q>6P0UQqEVm!3W0cbd0MmsF3IG5A diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0035.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0035.h5 index 4934814ff456d3a8cd08850599a530bffbe8bf01..d07e162f712546fc2e335d9ed253ec9b29514f6c 100644 GIT binary patch delta 31 ncmaEGneD-4wuUW?Tk3ettqcsTObqla49$!UwjZoxl-C9T$qx$0 delta 31 ncmaEGneD-4wuUW?Tk3d?tW1rq3=Q>6%`FU#wjZoxl-C9T$wLaw diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0036.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0036.h5 index dc44c9b47af6ec8e0ef73d1d4c7d4ce39466f42a..947a9b3d3fb98f839ee9d923bff967d0ad2fa0fd 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqlaOf1YTjJF@EW0cbd0Mn}r3;+NC delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q?n3@nW;Ew&%3W0cbd0MmjC3IG5A diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0037.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0037.h5 index 8748fb152cc6b43d340a2b3341e198e4d9fb8ca5..7966a32af7cc79e14d3e90cfe462f5d5d2a8098b 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqlaER2jSOt&AZW0cbd0MmR62LJ#7 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q?nObkp-jkX`EW0cbd0Mi@_{Qv*} diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0038.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0038.h5 index ef5c23642e4c251b55d2637437b85ca15cb065f7..6487da147cffe9e7d808b4fd4df2255d94119d53 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqla4NXnWEVdu2W0cbd0MmI32mk;8 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq3=Q?n%ni*f%(fq@W0cbd0MmpE2><{9 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0039.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0039.h5 index fa04c7a19161f565e79e204d759153999136954a..f284e9e27f80f80152b858afb2d67f1df284c5bb 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqlaO)M-4W0cbd0MlFx1^@s6 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0040.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0040.h5 index 9d3d3a53f537aadf35a722e2868c6fb069275032..070fe8f592a2d924e74ff9baa231c6e7c6da6e4c 100644 GIT binary patch delta 32 mcmZp;!qxypTNqVp_{^;g46IBH^ein*ER9UJ8`UtL(**#obP3x4 delta 32 mcmZp;!qxypTNqVp_>8Pfjjap~^~{Y;j4jNz8`UtL(**#oFbUQG diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0041.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0041.h5 index f2fb4339fd3eb95a53b74636df1b47157ccfc0bb..51ee626a853df2b214fa180cc25d6d5deb4afd76 100644 GIT binary patch delta 29 lcmdmSh-JqimJKZ*`OK{h46IBH^$ZLx3@wc}Px`n_9{{c_3l9JQ delta 29 lcmdmSh-JqimJKZ*`HZYgjjap~^~}vo%q>kePx`n_9{{eo3myOf diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0042.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0042.h5 index 8e8724e51cb220fce39836115c6a4205ea26ef32..aef1f542c33b294990c2744af9a9c8c9cc7aa6fb 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?D%E`ERt5%ECWd+jrly9LM%#_58RPT-uyzT0 delta 32 ncmbPmnQg*lwuUW?D%E^OR;I>QhK73PmS$$=#@mgm8RPT-u^QhK70;M&{;*2HU-=8Qt^%vmFVQ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0044.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0044.h5 index 46b3655b49e3c6e830d5bbe04276e6b675212fe4..cbb0017bd17697a38c06b757fb66e106761f6d9f 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;3Mn;xKCfmKL8Qt^%ve5~U delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhK70;rWO`P#@oHB8Qt^%vu+8V diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0045.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0045.h5 index 63da5bbeb1f0e175871cb4b46e74c0af31376cd6..31d6e1cabc075ed0f75dd4675a16088da6cbcfab 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;3re>yQCfmKL8Qt^%vla=L delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhK70;7MAAb#@oHB8Qt^%v$zSS diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0046.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0046.h5 index 2e50556fda16fa762c645adcd4f534ffdb49022e..72ce8f1dfd05eba7124277330750a7488d0fcb46 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;37M6y_=G(oh8Qt^%vn~ml delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhK72UMux_gCfmKL8Qt^%vn2_b diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0047.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0047.h5 index fd97be0668a42ef064792b083fdb4c7e0347ad9b..be37de4dac75842258977c617aaebdd91f1d3eb1 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd-OMn)C}mfO9m8Qt^%vgZkt delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhK72UrbZ?fX4}208Qt^%vtJ3G diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0048.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0048.h5 index 331f45991e66e20ce78d353d1a6995a7662aca45..30d1709f7bd1a307263fc44c40dbfb98d333a290 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd-Ore>y=2HU-=8Qt^%vmObT delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhK72U7A6KprrW)$8Qt^%vpETv diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0049.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0049.h5 index df125c97bd27b5d1313b977c7594dd9cca85cff5..5b66bdf809d37e99974b4a8a2dbdc5053eece54d 100644 GIT binary patch delta 32 ncmbR7nPtXjmWC~iF=Bk?Rt5%ECWd-O7M7-FM%%N*81<9^wJZrc delta 32 ncmbR7nPtXjmWC~iF=Bj1R;I>QhDLe@h9<@qCfl>b81<9^w5tg) diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0050.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0050.h5 index 01a6dbd3adf39425f27d3a2cdf9396837c407c22..3cec2089c261a567f5b5c9a2747c480098e9ce55 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?D%E`ERt5%ECWd;(Mn;AfCfkjw8RPT-uwe;! delta 32 ncmbPmnQg*lwuUW?D%E^OR;I>QhDLe@CZ=Wv7Tb-g8RPT-u!ISG diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0051.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0051.h5 index 4756cf1a79fdfaf9e17b553c56002341c9d11bf7..94714928a9e0acdd862ea3378f71bdf2cd91ed3c 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;(rlw|QhTFZW8Qt^%vlt1M delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLe@=4NJQM%%rr8Qt^%vn2_b diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0052.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0052.h5 index 4b1b33116cf31e76898c272e952d5e5d49570dad..49b06598d11c346d0a8f7a87a39bd2cbd14b98b2 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;(78WLE2HU-=8Qt^%vpxx# delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLgZ1{TJ~#@oHB8Qt^%vdjsO diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0053.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0053.h5 index 79f8d41f112fa82c8060fec964c44afc1ce8f089..08066244a591702d97f989afd9dec35bb0880fa3 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd+@MutYlM%%rr8Qt^%vZe`& delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLgZ#+K$LhTFZW8Qt^%vlR)J diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0054.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0054.h5 index 542d02e66432e4012165b40fcd158198e7fb3dca..50a09a982ce7582d1127596177737af4ee142635 100644 GIT binary patch delta 31 mcmbPmnQg*lwuUW?Hr2f5Rt5%ECWd+@rY0t4+dZop-Sq&fC<$T! delta 31 mcmbPmnQg*lwuUW?Hr2dFR;I>QhDLgZ=7xsm+dZop-Sq&e_z7JA diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0055.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0055.h5 index e28e80e2361ee5bd75acf84ae3560e94d22717e4..c9e13ac8c4ddabb013b0baa96461dab2d0b28a6e 100644 GIT binary patch delta 32 mcmZp;!qxypTNp!X_{^;g46IBH^-L_xO$;r!C)F^{(**#tD+&kz delta 32 mcmZp;!qxypTNp!X_>8Pfjjarg^o$IQOifLQhDLfu#>N(A7Tb-g8RPT-u)hg| diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0057.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0057.h5 index ae4fa866293d242735a5366d3857a3af9cb9b3cc..03a1a7de21d693060db3bdc71ac49e3dd1230422 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;Zrbb34X4}208Qt^%vjGW| delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLfuW~RobrrW)$8Qt^%vlQhDLfumS$!qmfO9m8Qt^%vvdie diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0059.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0059.h5 index d40cc3ba951c47ed50eaa29095064b5f27a8369a..da1c53d871b2aff80fb872ab8b81b84b8c70f6ba 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd-uh86}ECfmKL8Qt^%vmFVS delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLhEM&{8Pfjjarg^o&g{jZ7@IC)F^{(**#t8wv*i diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0061.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0061.h5 index 132fddcbd301849404c736181fbac8deb650d49b..e4518bfed8ef0f379fc6dc32bc2e291b5bda29df 100644 GIT binary patch delta 29 lcmdmSh-JqimJMq@@R?f~7+9GY>X}&>85X{pw7#bUF{`GU68UVG+3&sEd delta 29 lcmZ2+kY&X|mJM%y@)=o~8e16}>6sW>nwl7I{`GU68UVH#3()`o diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0063.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0063.h5 index 54079badab1a2d46e944486781765f12dffc627e..1b619bc0563b4584e982cf4d67699210525111e9 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWdQhDLfOrUvFFCfmKL8Qt^%vkD27 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0064.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0064.h5 index d4abf5224639ca9d1a1fef536e575f963358b557..d44d2b20b93b9d2f990882366c065f9f2091166a 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?D%E`ERt5%ECWdQhDLfO7KY{qhTDy*8RPT-u#gFQ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0065.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0065.h5 index 2569e15d40752035b459163af3fb3b550ded2cc7..599aab339d7453288be907ab52b9f16434b59f10 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd+zhNcE)7Tdk58Qt^%vm*(Z delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLg(hDH`QhDLg(CME`!X4}208Qt^%vnmOh diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0067.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0067.h5 index 3b46cf551bb2823c1e5e7710443d3322ae227e3e..ad6696846e02596af31683c8bdb159c93f0019a6 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd+z7Dg6EhTFZW8Qt^%vq=e= delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLg(=4Pg*7Tdk58Qt^%vw8`k diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0068.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0068.h5 index af8142f6f9e8cd50965dfaa159f6d5e204083dd6..fd2dbf656f2bccddc47d9975b5623e5a078111fa 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;JhNhNAhTFZW8Qt^%vo8sk delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLg31{NlkM%%rr8Qt^%vpNZy diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0069.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0069.h5 index 950a6a6d9de343b7bd240f95931fdf52117bf6ff..fc8a7b7bd2babe48656675d7d595fa4d9f39894e 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECWd;JCYDA9CfmKL8Qt^%vpxx! delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLg3#un!0=G(oh8Qt^%vxy0# diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0070.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0070.h5 index f97a4724c51db6d61a3fbbc183f3b0b7ffe8482c..038105702b2c0753d744f2b5b4331ece0b4dd060 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTObqobEetJ<{9 delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq42|^6%q%Po47MMtW0cbd0MmX81poj5 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0071.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0071.h5 index 8968674e2f87926a2341421265dc9b7980d5ae63..52a31f382b58f20e5c3bafaf7fcdb10f62f2feae 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsP&hNi}*hTFZW8Qt^%va<<{ delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLg3mX^jw=G(oh8Qt^%vxy0z diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0072.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0072.h5 index 8482314b3ef1a2ff5c7f1920fe9e28dde6c3d484..015d44046d1143ad66e37d6c9502f52346fd4d2e 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsP&CYI(VCfmKL8Qt^%vn>gk delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLhkMwW&K2HU-=8Qt^%vh@j& diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0073.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0073.h5 index 9920a4e93342c16956b537d349e2a9f5e999c541..bec6764e4ef3de507152a9fbc63ecd2e93a87c99 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsP&7RDwP=G(oh8Qt^%vo{Hw delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLhkrj}-gCfmKL8Qt^%vu6pN diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0074.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0074.h5 index c77c41664116c5b5b874c6e47f6ae4ef54effe98..586990f2e7a18d15d61600a074184b52a4db9088 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsROh8Cvg=G(oh8Qt^%vndIh delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLhk7M3Q)CfmKL8Qt^%vxW(v diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0075.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0075.h5 index a6bb365722fde910c50c9e721e29e6e3552bb065..035eaf6b5c703dfc3540d084f00b9e27b03b044b 100644 GIT binary patch delta 32 mcmbPmnQg*lwuUW?Hr0IQRt5%ECPsROra)-8-K(0>O%DLFwF!#= delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLf8hL%RA=G(oh8Qt^%vsek8 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0076.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0076.h5 index 5a82910cd462cc1f7855dd6279e84db1c132ca63..f248caac63ae9998071d00facdcd42851750bb66 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?D%E`ERt5%ECPsRO7A8h!Cfkjw8RPT-u%-!q delta 32 ncmbPmnQg*lwuUW?D%E^OR;I>QhDLf8CKeW!=G%>`8RPT-u~i9? diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0077.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0077.h5 index eb8a5e364100ad35fe937cf5350415616d9645c9..d44afc28747186f7f6588c02a22a4dda48ce544a 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsQjhUNwa#@oHB8Qt^%vZ@J+ delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLf8<`$+V=G(oh8Qt^%v!e;5 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0078.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0078.h5 index 008508d37c5d622d6108c31d84392319a2fc1e20..3039b3a74972e1cd8d52fa577de088ff3df66dd6 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsQjCYGj#hTFZW8Qt^%vjz#1 delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLgp1{P)(7Tdk58Qt^%vyus< diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0079.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0079.h5 index 6585fe479e416a8f21e7b270075603cb30a9da15..e4c53b80eacd08358214fac39c6f8b46a3d65908 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsQj7KWyVhTFZW8Qt^%vf>Gk delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhDLgp#unzr2HU-=8Qt^%vs?+A diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0080.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0080.h5 index 619a8facafb088073be0cc24c2031361afed3600..f38fd8cad314eb3ef1095e34548e93a41c9b82a0 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsS3h9;&KX4}208Qt^%vlQhDLgpW|oHL2HU-=8Qt^%vvCQX diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0081.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0081.h5 index 4651e8146435f7c6878603936d1f8b026e148595..fce3bc4f25a28c86d50e95a4a437ca93f26fce0b 100644 GIT binary patch delta 29 lcmdmSh-JqimJMq@@R?f~7+9GY=^2}t8JU=D-u0o*006Q23pfA( delta 29 lcmdmSh-JqimJMq@@EKW|8e16}=~-G@n46hz-u0o*006SY3r_$5 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0082.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0082.h5 index 5bfc2a7ccc42e1fad53da462f49aa95ce6f5b831..b4a8a4c66ecc98f2361cf9a0402d7b6d99643c9e 100644 GIT binary patch delta 32 ocmbPnn03Zs)`l&NcZ~SVtqcsTOpNr5%`Gg<47R^AVqB*O0K7^Hp#T5? delta 32 ocmbPnn03Zs)`l&NcZ~RqtW1rq42|^+j4TXI%(lNWVqB*O0K3!*mjD0& diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0083.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0083.h5 index 94b9391e948161a22ce748b049baf795521ca427..8314ba8220669a87bed2810151ed8cdf97fad844 100644 GIT binary patch delta 32 ocmZ2+nRUfw)`l&NbKLmMtqcsTOpNqQ3=J*KO}DRdWBjKC0KXmz$N&HU delta 32 ocmZ2+nRUfw)`l&NbKLlhtW1rq42|^+Of8Jejkm9IWBjKC0KXjy#{d8T diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0084.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0084.h5 index e753ee92876dc74e46c8d2f767e3f0c50b10e09f..9433fefadec22dfa09a764265dab46ff31cff4c1 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?D%E`ERt5%ECPsQDCZ>iKCfkjw8RPT-u&)V! delta 32 ncmbPmnQg*lwuUW?D%E^OR;I>QhQ@jZ78XY4hTDy*8RPT-u)hg_ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0085.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0085.h5 index 03bb72e31a4c77e1b55c4da50f018df1392b3025..1fb59b86eafc82684047465fbcbf05460f912b47 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsQD=H`~>X4}208Qt^%v!V&5 delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhQ@k^h8E_QM%%rr8Qt^%voZ;q diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0086.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0086.h5 index c6ae7e7f29bde1a6021524e1165807622d3ab716..6fb8258ec9f71e587e8e5406cb467c5c3829942a 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsRuh6WZU=G(oh8Qt^%vkVEA delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhQ@k^CKl$VhTFZW8Qt^%vn&ai diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0087.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0087.h5 index 281c3c3d8280510616cdeee3a61a5fe4b0cfce88..c897d0e3975d0d6e8b6cc575f4cbf04171573122 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsRuCMJgFX4}208Qt^%vnL6d delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhQ@k^<`$Nw#@oHB8Qt^%vuz2V diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0088.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0088.h5 index 4e9f42be34bf216b0fbd15a44f7cb9adbb8f1711..9d911e54a12826575cc10907aa9b50bcc0f79f0d 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?Hr0IQRt5%ECPsRu=H|xc=G(oh8Qt^%vwsPp delta 32 ncmbPmnQg*lwuUW?Hr0GaR;I>QhQ@kE1{S842HU-=8Qt^%vl9uH diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0089.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0089.h5 index c2cd98deffaad86da83745005a222519010b575a..7c535b81191e70f1ebe38fba59890757ca4f7ffb 100644 GIT binary patch delta 29 lcmdmSh-JqimJMq@@R?f~7+9GY>6sZ=nwlDI-u0o*006Qf3p@Y- delta 29 lcmdmSh-JqimJMq@@EKW|8e16}>lqoFo0*$!-u0o*006Q$3qb$? diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0090.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0090.h5 index 57f5c153545a418251d27c9af0a2e2645e2fde8f..8addc5d7ea26e97b0478099d25f3b7f94c9ab64f 100644 GIT binary patch delta 32 ncmbPmnQg*lwuUW?D%E`ERt5%ECPsQ@CPo$pmfMZ08RPT-u*(U8 delta 32 ncmbPmnQg*lwuUW?D%E^OR;I>QhQ@kEW|jt~#@mgm8RPT-u(t_+ diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0091.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0091.h5 index b568c507280ecb09fd58d76ab577f9d9869f81aa..bb8d2c99d3d223c44636b18bc9252f1f7a0536cf 100644 GIT binary patch delta 32 ocmaEGneD-4wuUW?Tk81CtqcsTOpNr*%uOsUEw>-4W0cbd0MqOX6aWAK delta 32 ocmaEGneD-4wuUW?Tk80XtW1rq42|`S4UElAO}8JaW0cbd0MjiC00000 diff --git a/test_data/IPTS32124_CG4C_exp0424/scan0092.h5 b/test_data/IPTS32124_CG4C_exp0424/scan0092.h5 index a9c197e3e1571a31c5ecc48d004c589fcd1b766d..bdb7037a8889903d40f06b924632405f6c7342bf 100644 GIT binary patch delta 31 ncmcaGiS@!H)`l&NHA=kZRt5%ECPsSZ24QhQ@lv#uk=_+dGvQkE;Oysb2}F diff --git a/test_data/IPTS9865_HB1_exp0815/scan0001.h5 b/test_data/IPTS9865_HB1_exp0815/scan0001.h5 index 5510972c2f2e610b4e650c1c6271b09ed22ddda3..709945149f1639b3a80f4e4bb8d870233770e95e 100644 GIT binary patch delta 29 lcmZ4RmvO;g#tmPL`OK{h46ICy^vsP7%q>kfGnvfu0syL_3DE!m delta 29 lcmZ4RmvO;g#tmPL`HZYgjjarg^^8p|O)M=pGnvfu0syMy3EBVv diff --git a/test_data/IPTS9865_HB1_exp0815/scan0002.h5 b/test_data/IPTS9865_HB1_exp0815/scan0002.h5 index 40c53a73d0da0f2adeea01f0f4a66aad14ddd1a8..f8b6c22f1b8114662d4bb807d86d87a39e99598b 100644 GIT binary patch delta 29 lcmZ4RmvO;g#tmPL`OK{h46ICy^vq2R4Gc{-Gnvfu0syK%3Bv#Y delta 29 lcmZ4RmvO;g#tmPL`HZYgjjarg^^DETjSLMoGnvfu0syLB3B~{b diff --git a/test_data/IPTS9865_HB1_exp0815/scan0003.h5 b/test_data/IPTS9865_HB1_exp0815/scan0003.h5 index e106713cf0ec5c66cad2944aba146e5ebc8882fd..3a06a25dc940f43d3d3dbf7eae4eeab5cd9074b9 100644 GIT binary patch delta 29 lcmcccpZUUn<_$J)`OK{h46ICy^vumH%qVKfs40Jp&j#sB~S delta 32 ocmbPmfn~x4mWC~iXGHjntW1rq42|_n3{6ce4YuDBVKfs40Ji%HvH$=8 diff --git a/test_data/IPTS9865_HB1_exp0815/scan0005.h5 b/test_data/IPTS9865_HB1_exp0815/scan0005.h5 index 2e62f73d4c6363b5767b21044238f807b62dc98c..589240147edc7c46d87858f1831898a6ba066c6b 100644 GIT binary patch delta 29 kcmZo@WNBz*+2He*&)mwuz{%K)LS)S0F8?Y1^@s6 diff --git a/test_data/tavi_test_exp424.h5 b/test_data/tavi_test_exp424.h5 index f07c6a7353fc69c20f55b47b6231ea198e61040f..8b6cba5550434c28e51044873ce72080e4d1fdd0 100644 GIT binary patch delta 2556 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 diff --git a/tests/test_fit.py b/tests/test_fit.py index bdedfbe..d95623f 100644 --- a/tests/test_fit.py +++ b/tests/test_fit.py @@ -2,8 +2,7 @@ import matplotlib.pyplot as plt import numpy as np -from tavi.data.fit import Fit -from tavi.data.plotter import Plot1DManager +from tavi.data.fit import Fit1D from tavi.data.scan import Scan @@ -13,14 +12,16 @@ def test_fit_single_peak(): _, s1 = Scan.from_nexus_file(nexus_file_name) plot1d = s1.generate_curve(norm_channel="mcu", norm_val=30) - f1 = Fit(x=plot1d.x, y=plot1d.y, err=plot1d.yerr, fit_range=(0.5, 4.0)) + f1 = Fit1D(plot1d) + f1.set_range(0.5, 4.0) f1.add_background(values=(0.7,)) f1.add_signal(values=(None, 3.5, None), vary=(True, True, True)) - fit_report = f1.perform_fit() - # assert np.allclose(f1.result.params["s1_center"].value, 3.54, atol=0.01) - # assert np.allclose(f1.result.params["s1_fwhm"].value, 0.39, atol=0.01) + f1.perform_fit() + assert np.allclose(f1.result.params["s1_center"].value, 3.54, atol=0.01) + assert np.allclose(f1.result.params["s1_fwhm"].value, 0.39, atol=0.01) fig, ax = plt.subplots() plot1d.plot_curve(ax) + f1.fit_plot.plot_curve(ax) plt.show() @@ -29,8 +30,9 @@ def test_fit_two_peak(): nexus_file_name = "./test_data/IPTS32124_CG4C_exp0424/scan0042.h5" _, s1 = Scan.from_nexus_file(nexus_file_name) - x, y, yerr, xlabel, ylabel, title, label = s1.generate_curve(norm_channel="mcu", norm_val=30) - f1 = Fit(x=x, y=y, err=yerr, fit_range=(0.0, 4.0)) + plot1d = s1.generate_curve(norm_channel="mcu", norm_val=30) + f1 = Fit1D(plot1d) + f1.set_range(0.0, 4.0) f1.add_background(values=(0.7,)) f1.add_signal(values=(None, 3.5, 0.29), vary=(True, True, True)) f1.add_signal( @@ -40,11 +42,11 @@ def test_fit_two_peak(): mins=(0, 0, 0.1), maxs=(None, 0.1, 0.3), ) - fit_report = f1.perform_fit() + f1.perform_fit() assert np.allclose(f1.result.params["s1_center"].value, 3.54, atol=0.01) assert np.allclose(f1.result.params["s1_fwhm"].value, 0.40, atol=0.01) - p1 = Plot1DManager() - p1.plot_curve(x, y, yerr, xlabel, ylabel, title, label) - p1.plot_curve(f1.x_plot, f1.y_plot, fmt="-", xlabel=xlabel, ylabel=ylabel, title=title) + fig, ax = plt.subplots() + plot1d.plot_curve(ax) + f1.fit_plot.plot_curve(ax) plt.show() diff --git a/tests/test_scan.py b/tests/test_scan.py index 28c3ada..ac583d1 100644 --- a/tests/test_scan.py +++ b/tests/test_scan.py @@ -12,7 +12,7 @@ def test_load_scan_from_tavi(): tavi_file_name = "./test_data/tavi_test_exp424.h5" tavi.new_file(tavi_file_name) nexus_data_folder = "./test_data/IPTS32124_CG4C_exp0424" - tavi.get_nexus_data_from_disk(nexus_data_folder) + tavi.load_nexus_data_from_disk(nexus_data_folder) with h5py.File(tavi.file_path, "r") as tavi_file: dataset_name, scan = Scan.from_nexus_entry(tavi_file["/data/IPTS32124_CG4C_exp0424/scan0042"]) diff --git a/tests/test_scan_group.py b/tests/test_scan_group.py index e988104..e01ef15 100644 --- a/tests/test_scan_group.py +++ b/tests/test_scan_group.py @@ -12,7 +12,7 @@ def test_contour_plot(): tavi_file = Path(tavi_file_name) if not tavi_file.is_file(): nexus_data_folder = "./test_data/IPTS32124_CG4C_exp0424" - tavi.get_nexus_data_from_disk(nexus_data_folder) + tavi.load_nexus_data_from_disk(nexus_data_folder) tavi.load_data() else: tavi.open_file(tavi_file_name) diff --git a/tests/test_tavi_data.py b/tests/test_tavi_data.py index 9d8ac57..1c17beb 100644 --- a/tests/test_tavi_data.py +++ b/tests/test_tavi_data.py @@ -10,6 +10,7 @@ def test_new_tavi_file_at_given_path(): tavi = TAVI() tavi_file_name = "./test_data/tavi_empty_test.h5" tavi.new_file(tavi_file_name) + tavi.save_file() with h5py.File(tavi_file_name, "r") as f: keys = [key for key in f["/"].keys()] @@ -23,47 +24,28 @@ def test_new_tavi_file_at_given_path(): os.remove(tavi_file_name) -def test_new_tavi_file_without_path(): - tavi = TAVI() - tavi.new_file() - - with h5py.File(tavi.file_path, "r") as f: - keys = [key for key in f["/"].keys()] - # check if groups preserves the order - assert keys[0] == "data" - assert keys[1] == "processed_data" - assert keys[2] == "fits" - assert keys[3] == "plots" - - # delete file - os.remove(tavi.file_path) - - -def test_get_nexus_data_from_disk(): +def test_load_nexus_data_from_disk(): tavi = TAVI() tavi_file_name = "./test_data/tavi_test_exp424.h5" tavi.new_file(tavi_file_name) nexus_data_folder = "./test_data/IPTS32124_CG4C_exp0424" - tavi.get_nexus_data_from_disk(nexus_data_folder) - - with h5py.File(tavi.file_path, "r") as tavi_file: - assert len(tavi_file["/data/IPTS32124_CG4C_exp0424"]) == 92 + tavi.load_nexus_data_from_disk(nexus_data_folder) + assert len(tavi.data["IPTS32124_CG4C_exp0424"]) == 92 # os.remove(tavi.file_path) -def test_load_data(): - +def test_save_tavi_file(): tavi = TAVI() tavi_file_name = "./test_data/tavi_test_exp424.h5" tavi.new_file(tavi_file_name) nexus_data_folder = "./test_data/IPTS32124_CG4C_exp0424" - tavi.get_nexus_data_from_disk(nexus_data_folder) - - tavi.load_data() + tavi.load_nexus_data_from_disk(nexus_data_folder) + tavi.save_file() - assert len(tavi.data["IPTS32124_CG4C_exp0424"]) == 92 + with h5py.File(tavi.file_path, "r") as tavi_file: + assert len(tavi_file["/data/IPTS32124_CG4C_exp0424"]) == 92 def test_open_tavi_file(): @@ -73,3 +55,16 @@ def test_open_tavi_file(): assert len(scans := tavi.data["IPTS32124_CG4C_exp0424"]) == 92 assert scans["scan0001"].scan_info.scan_num == 1 + + +def test_new_tavi_file_without_path(): + tavi = TAVI() + tavi.new_file() + tavi.save_file() + + with h5py.File(tavi.file_path, "r") as f: + keys = [key for key in f["/"].keys()] + # check if groups preserves the order + assert keys[1] == "processed_data" + # delete file + os.remove(tavi.file_path)