Source code for ess.offspec.load
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2025 Scipp contributors (https://github.com/scipp)
import scipp as sc
from ..reflectometry.types import (
CoordTransformationGraph,
Filename,
RawDetector,
ReferenceRun,
RunType,
)
from .types import MonitorData, NeXusMonitorName
[docs]
def load_offspec_events(
filename: Filename[RunType],
) -> RawDetector[RunType]:
"""Load OFFSPEC event data from an HDF5 file."""
full = sc.io.load_hdf5(filename)
da = full['data']
da.coords['theta'] = full.pop('Theta')[-1].data
da = da.bins.concat('tof')
return da
[docs]
def load_offspec_monitor(
filename: Filename[RunType],
graph: CoordTransformationGraph[ReferenceRun],
monitor_name: NeXusMonitorName,
) -> MonitorData[RunType]:
"""Load OFFSPEC monitor data and convert to wavelength."""
full = sc.io.load_hdf5(filename)
mon = full["monitors"][monitor_name]["data"].transform_coords(
"wavelength", graph=graph
)
return mon
providers = (
load_offspec_events,
load_offspec_monitor,
)