Source code for ess.sans.io

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2023 Scipp contributors (https://github.com/scipp)

import scipp as sc
import scippnexus as snx
from scippnexus.application_definitions import nxcansas

from .types import BackgroundSubtractedIofQ, OutFilename, RunNumber, RunTitle


[docs] def save_background_subtracted_iofq( *, iofq: BackgroundSubtractedIofQ, out_filename: OutFilename, run_number: RunNumber, run_title: RunTitle, ) -> None: """Save background-subtracted I(Q) histogram as an NXcanSAS file.""" if iofq.bins is None: da = iofq.copy(deep=False) else: da = iofq.hist() if da.coords.is_edges('Q'): da.coords['Q'] = sc.midpoints(da.coords['Q']) with snx.File(out_filename, 'w') as f: f['sasentry'] = nxcansas.SASentry(title=run_title, run=run_number) f['sasentry']['sasdata'] = nxcansas.SASdata(da, Q_variances='resolutions')