From 4642219afb455bb95e65bef57b879008235d6a9e Mon Sep 17 00:00:00 2001 From: RJCD-Diamond Date: Thu, 14 May 2026 14:22:25 +0000 Subject: [PATCH] changed BaseLoader so that it must used full path --- src/xrpd_toolbox/data_loader.py | 13 +++---------- src/xrpd_toolbox/i15_1/pe2ad.py | 4 ++-- src/xrpd_toolbox/i15_1/sample_alignment.py | 8 +++----- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/xrpd_toolbox/data_loader.py b/src/xrpd_toolbox/data_loader.py index 4d20184..976cf9a 100644 --- a/src/xrpd_toolbox/data_loader.py +++ b/src/xrpd_toolbox/data_loader.py @@ -1,4 +1,3 @@ -from functools import cached_property from pathlib import Path import numpy as np @@ -26,12 +25,11 @@ class BaseDataLoader: Handles Nexus/HDF5 access and metadata retrieval. """ - def __init__(self, filepath: str | Path, data_path: str): + def __init__(self, filepath: str | Path, dataset_path: str): self.filepath = Path(filepath) - self.data_path = data_path self.entry = get_entry(self.filepath) - self.dataset_path = f"/{self.entry}/{self.data_path}/data" + self.dataset_path = dataset_path def get_entries(self): paths = [] @@ -68,7 +66,7 @@ def sum_frames(self): summed_images = [] for frame in range(n_frames): - frame_image = data[:, frame, :, :] + frame_image = data[..., frame, :, :] image_sum = np.sum(frame_image) summed_images.append(image_sum) @@ -82,11 +80,6 @@ def data(self) -> np.ndarray: """Load the entire dataset.""" return self.get_data() - @cached_property - def durations(self) -> np.ndarray: - path = f"/{self.entry}/instrument/{self.data_path}/count_time" - return h5_to_array(self.filepath, path) - def read_array(self, path: str) -> np.ndarray: """Helper for reading arbitrary datasets.""" return h5_to_array(self.filepath, path) diff --git a/src/xrpd_toolbox/i15_1/pe2ad.py b/src/xrpd_toolbox/i15_1/pe2ad.py index ae278e2..dd521b0 100644 --- a/src/xrpd_toolbox/i15_1/pe2ad.py +++ b/src/xrpd_toolbox/i15_1/pe2ad.py @@ -6,8 +6,8 @@ class PE2AD(BaseDataLoader): - def __init__(self, filepath, data_path: str = "pe2AD"): - super().__init__(filepath, data_path) + def __init__(self, filepath, dataset_path: str = "/entry/pe2AD/data"): + super().__init__(filepath, dataset_path) self.entries = self.get_entries() diff --git a/src/xrpd_toolbox/i15_1/sample_alignment.py b/src/xrpd_toolbox/i15_1/sample_alignment.py index d910802..5b0cf56 100644 --- a/src/xrpd_toolbox/i15_1/sample_alignment.py +++ b/src/xrpd_toolbox/i15_1/sample_alignment.py @@ -326,7 +326,7 @@ def run_sample_alignment(data: XYEData | str) -> SampleAligner: def sample_alignment( filepath: str | Path, - dataset_path: str, + dataset_path: str = "/entry/data", beamline: str | None = None, save: bool = False, ): @@ -336,7 +336,7 @@ def sample_alignment( if str(filepath).endswith(".csv"): xyedata = XYEData.from_csv(filepath) else: - data = BaseDataLoader(filepath=filepath, data_path=dataset_path) + data = BaseDataLoader(filepath=filepath, dataset_path=dataset_path) summed_frames = data.sum_frames() index = np.linspace(0, len(summed_frames), len(summed_frames)) xyedata = XYEData(x=index, y=summed_frames) @@ -376,9 +376,7 @@ def sample_alignment( if ".csv" not in filepath: continue - sample_centre_result = sample_alignment( - filepath, dataset_path="", beamline=BEAMLINE - ) + sample_centre_result = sample_alignment(filepath, beamline=BEAMLINE) print(sample_centre_result.model_dump_json())