From cc95c0fade5384ab3b2628c8ba89eb0b3c91c4fd Mon Sep 17 00:00:00 2001 From: Jan-Lukas Wynen Date: Mon, 4 Mar 2024 13:45:45 +0100 Subject: [PATCH 1/3] Add missing py.typed --- src/ess/dream/py.typed | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/ess/dream/py.typed diff --git a/src/ess/dream/py.typed b/src/ess/dream/py.typed new file mode 100644 index 00000000..e69de29b From 70338cfd8c7f1e7cdf30e1c4e08cf234d335bd68 Mon Sep 17 00:00:00 2001 From: Jan-Lukas Wynen Date: Mon, 4 Mar 2024 14:12:43 +0100 Subject: [PATCH 2/3] Move ess.diffraction.* into ess.powder --- docs/api-reference/index.md | 36 ++--- docs/examples/POWGEN_data_reduction.ipynb | 72 +++++++++- src/ess/diffraction/__init__.py | 41 ------ src/ess/diffraction/correction.py | 125 ------------------ src/ess/diffraction/powder/__init__.py | 14 -- src/ess/powder/__init__.py | 25 ++++ .../{diffraction => }/powder/conversion.py | 8 +- .../{diffraction => }/powder/correction.py | 123 ++++++++++++++++- .../external/__init__.py | 0 .../external/powgen/__init__.py | 0 .../external/powgen/beamline.py | 0 .../external/powgen/data.py | 0 .../external/powgen/instrument_view.py | 0 .../external/powgen/types.py | 0 src/ess/{diffraction => powder}/filtering.py | 0 src/ess/{diffraction => powder}/grouping.py | 1 + src/ess/{diffraction => powder}/logging.py | 5 +- src/ess/powder/py.typed | 0 src/ess/{diffraction => powder}/smoothing.py | 2 +- src/ess/{diffraction => powder}/types.py | 2 +- .../{diffraction => powder}/uncertainty.py | 0 .../conversion_test.py} | 2 +- .../correction_test.py} | 3 +- .../external/powgen/powgen_reduction_test.py | 11 +- .../{diffraction => powder}/filtering_test.py | 2 +- tests/{diffraction => powder}/load_test.py | 4 +- 26 files changed, 246 insertions(+), 230 deletions(-) delete mode 100644 src/ess/diffraction/correction.py delete mode 100644 src/ess/diffraction/powder/__init__.py create mode 100644 src/ess/powder/__init__.py rename src/ess/{diffraction => }/powder/conversion.py (94%) rename src/ess/{diffraction => }/powder/correction.py (50%) rename src/ess/{diffraction => powder}/external/__init__.py (100%) rename src/ess/{diffraction => powder}/external/powgen/__init__.py (100%) rename src/ess/{diffraction => powder}/external/powgen/beamline.py (100%) rename src/ess/{diffraction => powder}/external/powgen/data.py (100%) rename src/ess/{diffraction => powder}/external/powgen/instrument_view.py (100%) rename src/ess/{diffraction => powder}/external/powgen/types.py (100%) rename src/ess/{diffraction => powder}/filtering.py (100%) rename src/ess/{diffraction => powder}/grouping.py (97%) rename src/ess/{diffraction => powder}/logging.py (64%) create mode 100644 src/ess/powder/py.typed rename src/ess/{diffraction => powder}/smoothing.py (98%) rename src/ess/{diffraction => powder}/types.py (98%) rename src/ess/{diffraction => powder}/uncertainty.py (100%) rename tests/{diffraction/powder/conversions_test.py => powder/conversion_test.py} (98%) rename tests/{diffraction/powder/corrections_test.py => powder/correction_test.py} (98%) rename tests/{diffraction => powder}/external/powgen/powgen_reduction_test.py (89%) rename tests/{diffraction => powder}/filtering_test.py (99%) rename tests/{diffraction => powder}/load_test.py (92%) diff --git a/docs/api-reference/index.md b/docs/api-reference/index.md index 250b4a98..899dd6b1 100644 --- a/docs/api-reference/index.md +++ b/docs/api-reference/index.md @@ -1,8 +1,10 @@ # API Reference -## Module Attributes +## Esspowder + +### Module Attributes ```{eval-rst} -.. currentmodule:: ess.diffraction +.. currentmodule:: ess.powder .. autosummary:: :toctree: ../generated/attributes @@ -10,26 +12,7 @@ providers ``` -## Top-level functions - -```{eval-rst} -.. autosummary:: - :toctree: ../generated/functions - :recursive: - - crop_tof - filter_events - finalize_histogram - group_by_two_theta - lowpass - merge_all_pixels - normalize_by_monitor - normalize_by_proton_charge - normalize_by_vanadium - remove_bad_pulses -``` - -## Submodules +### Submodules ```{eval-rst} .. autosummary:: @@ -37,8 +20,13 @@ :template: module-template.rst :recursive: - external.powgen - powder + conversion + correction + filtering + grouping + smoothing types uncertainty + + external.powgen ``` \ No newline at end of file diff --git a/docs/examples/POWGEN_data_reduction.ipynb b/docs/examples/POWGEN_data_reduction.ipynb index 92e9767f..216b7503 100644 --- a/docs/examples/POWGEN_data_reduction.ipynb +++ b/docs/examples/POWGEN_data_reduction.ipynb @@ -27,9 +27,9 @@ "import sciline\n", "\n", "import ess.diffraction\n", - "from ess.diffraction import powder\n", - "from ess.diffraction.external import powgen\n", - "from ess.diffraction.types import *" + "from ess import powder\n", + "from ess.powder.external import powgen\n", + "from ess.powder.types import *" ] }, { @@ -82,7 +82,6 @@ "outputs": [], "source": [ "providers = [\n", - " *ess.diffraction.providers,\n", " *powder.providers,\n", " *powgen.providers,\n", "]\n", @@ -141,6 +140,69 @@ "Now we compute the result:" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "17f4aacf-aedf-4d1d-a7f8-c970eb19d68e", + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib widget" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "087ebe52-f246-41bc-94f3-626017d0c9c7", + "metadata": {}, + "outputs": [], + "source": [ + "d = pipeline.compute(DspacingData[VanadiumRun])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03a92ca3-02fe-4a0b-934c-047ba5ddecee", + "metadata": {}, + "outputs": [], + "source": [ + "edges = sc.geomspace('dspacing', sc.scalar(0.1, unit='Å'), sc.scalar(2.2, unit='Å'), 1000)\n", + "h = d.bins.concat().hist(dspacing=2000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2617132f-1574-4ab8-be42-bc2d1601698b", + "metadata": {}, + "outputs": [], + "source": [ + "h.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d3a371d-e69f-4e27-b9b0-39250866948a", + "metadata": {}, + "outputs": [], + "source": [ + "del h.coords['gd_prtn_chrg']\n", + "del h.coords['sample_position']\n", + "del h.coords['source_position']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "df725cc1-4a26-4323-b85f-d43fc5eae067", + "metadata": {}, + "outputs": [], + "source": [ + "h.save_hdf5('peaked-vanadium-spectrum.h5')" + ] + }, { "cell_type": "code", "execution_count": null, @@ -308,7 +370,7 @@ "metadata": {}, "outputs": [], "source": [ - "from ess.diffraction.grouping import group_by_two_theta, merge_all_pixels\n", + "from ess.powder.grouping import group_by_two_theta, merge_all_pixels\n", "\n", "grouping_providers = list(providers)\n", "grouping_providers.remove(merge_all_pixels)\n", diff --git a/src/ess/diffraction/__init__.py b/src/ess/diffraction/__init__.py index 9adad150..f101246f 100644 --- a/src/ess/diffraction/__init__.py +++ b/src/ess/diffraction/__init__.py @@ -7,50 +7,9 @@ import importlib.metadata -from . import uncertainty -from .correction import ( - normalize_by_monitor, - normalize_by_proton_charge, - normalize_by_vanadium, -) -from .correction import providers as correction_providers -from .filtering import crop_tof, filter_events -from .filtering import providers as filtering_providers -from .filtering import remove_bad_pulses -from .grouping import finalize_histogram, group_by_two_theta, merge_all_pixels -from .grouping import providers as grouping_providers -from .smoothing import lowpass - try: __version__ = importlib.metadata.version(__package__ or __name__) except importlib.metadata.PackageNotFoundError: __version__ = "0.0.0" del importlib - -providers = ( - *correction_providers, - *filtering_providers, - *grouping_providers, - *uncertainty.providers, -) -"""Sciline providers for setting up a diffraction pipeline. - -These implement basic diffraction data-reduction functionality and need to be -extended with instrument-specific and sub-technique-specific providers. -""" -del correction_providers, filtering_providers, grouping_providers - -__all__ = [ - 'crop_tof', - 'filter_events', - 'finalize_histogram', - 'group_by_two_theta', - 'lowpass', - 'merge_all_pixels', - 'normalize_by_monitor', - 'normalize_by_proton_charge', - 'normalize_by_vanadium', - 'remove_bad_pulses', - 'uncertainty', -] diff --git a/src/ess/diffraction/correction.py b/src/ess/diffraction/correction.py deleted file mode 100644 index 0bffc15b..00000000 --- a/src/ess/diffraction/correction.py +++ /dev/null @@ -1,125 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright (c) 2023 Scipp contributors (https://github.com/scipp) -from typing import Any, Dict, Optional - -import scipp as sc -from scippneutron.conversion.graph import beamline, tof - -from .logging import get_logger -from .smoothing import lowpass -from .types import ( - AccumulatedProtonCharge, - DspacingBins, - FilteredData, - FocussedData, - NormalizedByProtonCharge, - NormalizedByVanadium, - RunType, - SampleRun, - VanadiumRun, -) - - -def normalize_by_monitor( - data: sc.DataArray, - *, - monitor: sc.DataArray, - wavelength_edges: Optional[sc.Variable] = None, - smooth_args: Optional[Dict[str, Any]] = None, -) -> sc.DataArray: - """ - Normalize event data by a monitor. - - The input is converted to wavelength if it does not already contain wavelengths. - - Parameters - ---------- - data: - Input event data. - monitor: - A histogrammed monitor. - wavelength_edges: - If given, rebin the monitor with these edges. - smooth_args: - If given, the monitor histogram is smoothed with - :func:`ess.diffraction.lowpass` before dividing into `data`. - `smooth_args` is passed as keyword arguments to - :func:`ess.diffraction.lowpass`. If ``None``, the monitor is not smoothed. - - Returns - ------- - : - `data` normalized by a monitor. - """ - if 'wavelength' not in monitor.coords: - monitor = monitor.transform_coords( - 'wavelength', - graph={**beamline.beamline(scatter=False), **tof.elastic("tof")}, - keep_inputs=False, - keep_intermediate=False, - keep_aliases=False, - ) - - if wavelength_edges is not None: - monitor = monitor.rebin(wavelength=wavelength_edges) - if smooth_args is not None: - get_logger().info( - "Smoothing monitor for normalization using " - "ess.diffraction.smoothing.lowpass with %s.", - smooth_args, - ) - monitor = lowpass(monitor, dim='wavelength', **smooth_args) - return data.bins / sc.lookup(func=monitor, dim='wavelength') - - -def normalize_by_vanadium( - data: FocussedData[SampleRun], - vanadium: FocussedData[VanadiumRun], - edges: DspacingBins, -) -> NormalizedByVanadium: - """ - Normalize sample data by a vanadium measurement. - - Parameters - ---------- - data: - Sample data. - vanadium: - Vanadium data. - edges: - `vanadium` is histogrammed into these bins before dividing the data by it. - - Returns - ------- - : - `data` normalized by `vanadium`. - """ - norm = sc.lookup(vanadium.hist({edges.dim: edges}), dim=edges.dim) - # Converting to unit 'one' because the division might produce a unit - # with a large scale if the proton charges in data and vanadium were - # measured with different units. - return (data.bins / norm).to(unit='one', copy=False) - - -def normalize_by_proton_charge( - data: FilteredData[RunType], proton_charge: AccumulatedProtonCharge[RunType] -) -> NormalizedByProtonCharge[RunType]: - """Normalize data by an accumulated proton charge. - - Parameters - ---------- - data: - Un-normalized data array as events or a histogram. - proton_charge: - Accumulated proton charge over the entire run. - - Returns - ------- - : - ``data / proton_charge`` - """ - return NormalizedByProtonCharge[RunType](data / proton_charge) - - -providers = (normalize_by_proton_charge, normalize_by_vanadium) -"""Sciline providers for diffraction corrections.""" diff --git a/src/ess/diffraction/powder/__init__.py b/src/ess/diffraction/powder/__init__.py deleted file mode 100644 index b6f82682..00000000 --- a/src/ess/diffraction/powder/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: BSD-3-Clause -# Copyright (c) 2023 Scipp contributors (https://github.com/scipp) -""" -Components for powder diffraction experiments. -""" -from .conversion import providers as conversion_providers -from .conversion import to_dspacing_with_calibration -from .correction import merge_calibration - -providers = (*conversion_providers,) -"""Sciline providers for powder diffraction.""" -del conversion_providers - -__all__ = ['merge_calibration', 'to_dspacing_with_calibration'] diff --git a/src/ess/powder/__init__.py b/src/ess/powder/__init__.py new file mode 100644 index 00000000..a6086302 --- /dev/null +++ b/src/ess/powder/__init__.py @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: BSD-3-Clause +# Copyright (c) 2023 Scipp contributors (https://github.com/scipp) +# flake8: noqa: F401 +""" +Components for powder diffraction experiments. +""" +import importlib.metadata + +from . import conversion, correction, filtering, grouping, smoothing, uncertainty + +try: + __version__ = importlib.metadata.version(__package__ or __name__) +except importlib.metadata.PackageNotFoundError: + __version__ = "0.0.0" + +del importlib + +providers = ( + *conversion.providers, + *correction.providers, + *filtering.providers, + *grouping.providers, + *uncertainty.providers, +) +"""Sciline providers for powder diffraction.""" diff --git a/src/ess/diffraction/powder/conversion.py b/src/ess/powder/conversion.py similarity index 94% rename from src/ess/diffraction/powder/conversion.py rename to src/ess/powder/conversion.py index abc225a5..e002664e 100644 --- a/src/ess/diffraction/powder/conversion.py +++ b/src/ess/powder/conversion.py @@ -9,9 +9,9 @@ import scipp as sc -from ..logging import get_logger -from ..types import CalibrationData, DspacingData, NormalizedByProtonCharge, RunType from .correction import merge_calibration +from .logging import get_logger +from .types import CalibrationData, DspacingData, NormalizedByProtonCharge, RunType def _dspacing_from_diff_calibration_generic_impl(t, t0, a, c): @@ -63,7 +63,7 @@ def dspacing_from_diff_calibration( See Also -------- - ess.diffraction.conversions.to_dspacing_with_calibration + ess.powder.conversions.to_dspacing_with_calibration """ if sc.all(difa == sc.scalar(0.0, unit=difa.unit)).value: return _dspacing_from_diff_calibration_a0_impl(tof, tzero, difc) @@ -131,7 +131,7 @@ def to_dspacing_with_calibration( See Also -------- - ess.diffraction.conversions.dspacing_from_diff_calibration + ess.powder.conversions.dspacing_from_diff_calibration """ if calibration is not None: out = merge_calibration(into=data, calibration=calibration) diff --git a/src/ess/diffraction/powder/correction.py b/src/ess/powder/correction.py similarity index 50% rename from src/ess/diffraction/powder/correction.py rename to src/ess/powder/correction.py index ad33b01d..892a585a 100644 --- a/src/ess/diffraction/powder/correction.py +++ b/src/ess/powder/correction.py @@ -1,8 +1,125 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) """Correction algorithms for powder diffraction.""" +from typing import Any, Dict, Optional import scipp as sc +from scippneutron.conversion.graph import beamline, tof + +from .logging import get_logger +from .smoothing import lowpass +from .types import ( + AccumulatedProtonCharge, + DspacingBins, + FilteredData, + FocussedData, + NormalizedByProtonCharge, + NormalizedByVanadium, + RunType, + SampleRun, + VanadiumRun, +) + + +def normalize_by_monitor( + data: sc.DataArray, + *, + monitor: sc.DataArray, + wavelength_edges: Optional[sc.Variable] = None, + smooth_args: Optional[Dict[str, Any]] = None, +) -> sc.DataArray: + """ + Normalize event data by a monitor. + + The input is converted to wavelength if it does not already contain wavelengths. + + Parameters + ---------- + data: + Input event data. + monitor: + A histogrammed monitor. + wavelength_edges: + If given, rebin the monitor with these edges. + smooth_args: + If given, the monitor histogram is smoothed with + :func:`ess.powder.lowpass` before dividing into `data`. + `smooth_args` is passed as keyword arguments to + :func:`ess.powder.lowpass`. If ``None``, the monitor is not smoothed. + + Returns + ------- + : + `data` normalized by a monitor. + """ + if 'wavelength' not in monitor.coords: + monitor = monitor.transform_coords( + 'wavelength', + graph={**beamline.beamline(scatter=False), **tof.elastic("tof")}, + keep_inputs=False, + keep_intermediate=False, + keep_aliases=False, + ) + + if wavelength_edges is not None: + monitor = monitor.rebin(wavelength=wavelength_edges) + if smooth_args is not None: + get_logger().info( + "Smoothing monitor for normalization using " + "ess.powder.smoothing.lowpass with %s.", + smooth_args, + ) + monitor = lowpass(monitor, dim='wavelength', **smooth_args) + return data.bins / sc.lookup(func=monitor, dim='wavelength') + + +def normalize_by_vanadium( + data: FocussedData[SampleRun], + vanadium: FocussedData[VanadiumRun], + edges: DspacingBins, +) -> NormalizedByVanadium: + """ + Normalize sample data by a vanadium measurement. + + Parameters + ---------- + data: + Sample data. + vanadium: + Vanadium data. + edges: + `vanadium` is histogrammed into these bins before dividing the data by it. + + Returns + ------- + : + `data` normalized by `vanadium`. + """ + norm = sc.lookup(vanadium.hist({edges.dim: edges}), dim=edges.dim) + # Converting to unit 'one' because the division might produce a unit + # with a large scale if the proton charges in data and vanadium were + # measured with different units. + return (data.bins / norm).to(unit='one', copy=False) + + +def normalize_by_proton_charge( + data: FilteredData[RunType], proton_charge: AccumulatedProtonCharge[RunType] +) -> NormalizedByProtonCharge[RunType]: + """Normalize data by an accumulated proton charge. + + Parameters + ---------- + data: + Un-normalized data array as events or a histogram. + proton_charge: + Accumulated proton charge over the entire run. + + Returns + ------- + : + ``data / proton_charge`` + """ + return NormalizedByProtonCharge[RunType](data / proton_charge) def merge_calibration(*, into: sc.DataArray, calibration: sc.Dataset) -> sc.DataArray: @@ -24,7 +141,7 @@ def merge_calibration(*, into: sc.DataArray, calibration: sc.Dataset) -> sc.Data See Also -------- - ess.diffraction.load_calibration + ess.powder.load_calibration """ dim = calibration.dim if not sc.identical(into.coords[dim], calibration.coords[dim]): @@ -110,3 +227,7 @@ def _event_or_bin_coord(da: sc.DataArray, name: str) -> sc.Variable: except (AttributeError, KeyError): # Either not binned or no event coord with this name. return da.coords[name] + + +providers = (normalize_by_proton_charge, normalize_by_vanadium) +"""Sciline providers for powder diffraction corrections.""" diff --git a/src/ess/diffraction/external/__init__.py b/src/ess/powder/external/__init__.py similarity index 100% rename from src/ess/diffraction/external/__init__.py rename to src/ess/powder/external/__init__.py diff --git a/src/ess/diffraction/external/powgen/__init__.py b/src/ess/powder/external/powgen/__init__.py similarity index 100% rename from src/ess/diffraction/external/powgen/__init__.py rename to src/ess/powder/external/powgen/__init__.py diff --git a/src/ess/diffraction/external/powgen/beamline.py b/src/ess/powder/external/powgen/beamline.py similarity index 100% rename from src/ess/diffraction/external/powgen/beamline.py rename to src/ess/powder/external/powgen/beamline.py diff --git a/src/ess/diffraction/external/powgen/data.py b/src/ess/powder/external/powgen/data.py similarity index 100% rename from src/ess/diffraction/external/powgen/data.py rename to src/ess/powder/external/powgen/data.py diff --git a/src/ess/diffraction/external/powgen/instrument_view.py b/src/ess/powder/external/powgen/instrument_view.py similarity index 100% rename from src/ess/diffraction/external/powgen/instrument_view.py rename to src/ess/powder/external/powgen/instrument_view.py diff --git a/src/ess/diffraction/external/powgen/types.py b/src/ess/powder/external/powgen/types.py similarity index 100% rename from src/ess/diffraction/external/powgen/types.py rename to src/ess/powder/external/powgen/types.py diff --git a/src/ess/diffraction/filtering.py b/src/ess/powder/filtering.py similarity index 100% rename from src/ess/diffraction/filtering.py rename to src/ess/powder/filtering.py diff --git a/src/ess/diffraction/grouping.py b/src/ess/powder/grouping.py similarity index 97% rename from src/ess/diffraction/grouping.py rename to src/ess/powder/grouping.py index f56c4611..bf480d5a 100644 --- a/src/ess/diffraction/grouping.py +++ b/src/ess/powder/grouping.py @@ -1,5 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) +"""Grouping and merging of pixels / voxels.""" from scippneutron.conversion.graph import beamline diff --git a/src/ess/diffraction/logging.py b/src/ess/powder/logging.py similarity index 64% rename from src/ess/diffraction/logging.py rename to src/ess/powder/logging.py index ab78fa66..870503db 100644 --- a/src/ess/diffraction/logging.py +++ b/src/ess/powder/logging.py @@ -1,15 +1,16 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) +"""Logging tools for ess.power.""" import logging def get_logger() -> logging.Logger: - """Return the logger for ess.diffraction. + """Return the logger for ess.powder. Returns ------- : The requested logger. """ - return logging.getLogger('scipp.ess.diffraction') + return logging.getLogger('scipp.ess.powder') diff --git a/src/ess/powder/py.typed b/src/ess/powder/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/src/ess/diffraction/smoothing.py b/src/ess/powder/smoothing.py similarity index 98% rename from src/ess/diffraction/smoothing.py rename to src/ess/powder/smoothing.py index b6e8a456..c1cd242d 100644 --- a/src/ess/diffraction/smoothing.py +++ b/src/ess/powder/smoothing.py @@ -70,7 +70,7 @@ def lowpass( Examples -------- - >>> from ess.diffraction import lowpass + >>> from ess.powder.smoothing import lowpass >>> x = sc.linspace(dim='x', start=1.1, stop=4.0, num=1000, unit='m') >>> y = sc.sin(x * sc.scalar(1.0, unit='rad/m')) >>> y += sc.sin(x * sc.scalar(400.0, unit='rad/m')) diff --git a/src/ess/diffraction/types.py b/src/ess/powder/types.py similarity index 98% rename from src/ess/diffraction/types.py rename to src/ess/powder/types.py index d392b6cb..9d8e692c 100644 --- a/src/ess/diffraction/types.py +++ b/src/ess/powder/types.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) -"""This module defines the domain types used in ess.diffraction. +"""This module defines the domain types used in ess.powder. The domain types are used to define parameters and to request results from a Sciline pipeline. diff --git a/src/ess/diffraction/uncertainty.py b/src/ess/powder/uncertainty.py similarity index 100% rename from src/ess/diffraction/uncertainty.py rename to src/ess/powder/uncertainty.py diff --git a/tests/diffraction/powder/conversions_test.py b/tests/powder/conversion_test.py similarity index 98% rename from tests/diffraction/powder/conversions_test.py rename to tests/powder/conversion_test.py index e5c1ab17..8da72469 100644 --- a/tests/diffraction/powder/conversions_test.py +++ b/tests/powder/conversion_test.py @@ -4,7 +4,7 @@ import pytest import scipp as sc -from ess.diffraction.powder import to_dspacing_with_calibration +from ess.powder.conversion import to_dspacing_with_calibration @pytest.fixture(params=['random', 'zero']) diff --git a/tests/diffraction/powder/corrections_test.py b/tests/powder/correction_test.py similarity index 98% rename from tests/diffraction/powder/corrections_test.py rename to tests/powder/correction_test.py index 4fd0f042..ea3f697e 100644 --- a/tests/diffraction/powder/corrections_test.py +++ b/tests/powder/correction_test.py @@ -5,8 +5,7 @@ import scipp as sc import scipp.testing -from ess.diffraction.powder import merge_calibration -from ess.diffraction.powder.correction import apply_lorentz_correction +from ess.powder.correction import apply_lorentz_correction, merge_calibration @pytest.fixture diff --git a/tests/diffraction/external/powgen/powgen_reduction_test.py b/tests/powder/external/powgen/powgen_reduction_test.py similarity index 89% rename from tests/diffraction/external/powgen/powgen_reduction_test.py rename to tests/powder/external/powgen/powgen_reduction_test.py index b13071d1..0981f438 100644 --- a/tests/diffraction/external/powgen/powgen_reduction_test.py +++ b/tests/powder/external/powgen/powgen_reduction_test.py @@ -5,7 +5,7 @@ import sciline import scipp as sc -from ess.diffraction.types import ( +from ess.powder.types import ( CalibrationFilename, DspacingBins, DspacingHistogram, @@ -20,11 +20,10 @@ @pytest.fixture() def providers(): - from ess import diffraction - from ess.diffraction import powder - from ess.diffraction.external import powgen + from ess import powder + from ess.powder.external import powgen - return [*diffraction.providers, *powder.providers, *powgen.providers] + return [*powder.providers, *powgen.providers] @pytest.fixture() @@ -68,7 +67,7 @@ def test_pipeline_can_compute_intermediate_results(providers, params): def test_pipeline_group_by_two_theta(providers, params): - from ess.diffraction.grouping import group_by_two_theta, merge_all_pixels + from ess.powder.grouping import group_by_two_theta, merge_all_pixels providers.remove(merge_all_pixels) providers.append(group_by_two_theta) diff --git a/tests/diffraction/filtering_test.py b/tests/powder/filtering_test.py similarity index 99% rename from tests/diffraction/filtering_test.py rename to tests/powder/filtering_test.py index 20de49a7..3c4b9604 100644 --- a/tests/diffraction/filtering_test.py +++ b/tests/powder/filtering_test.py @@ -7,7 +7,7 @@ import numpy as np import scipp as sc -from ess.diffraction import filtering +from ess.powder import filtering def make_data_with_pulse_time(rng, n_event) -> sc.DataArray: diff --git a/tests/diffraction/load_test.py b/tests/powder/load_test.py similarity index 92% rename from tests/diffraction/load_test.py rename to tests/powder/load_test.py index 0cebd9ab..069322d6 100644 --- a/tests/diffraction/load_test.py +++ b/tests/powder/load_test.py @@ -2,8 +2,8 @@ # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) import pytest -from ess.diffraction.external import load_calibration -from ess.diffraction.external.powgen import data +from ess.powder.external import load_calibration +from ess.powder.external.powgen import data @pytest.mark.skip( From 00b9354aab8e3ebc39382a5abdd6d71028814a2d Mon Sep 17 00:00:00 2001 From: Jan-Lukas Wynen Date: Mon, 4 Mar 2024 15:36:30 +0100 Subject: [PATCH 3/3] Fix spelling Co-authored-by: Simon Heybrock <12912489+SimonHeybrock@users.noreply.github.com> --- docs/api-reference/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api-reference/index.md b/docs/api-reference/index.md index 899dd6b1..8a77ed8c 100644 --- a/docs/api-reference/index.md +++ b/docs/api-reference/index.md @@ -1,6 +1,6 @@ # API Reference -## Esspowder +## ESSpowder ### Module Attributes ```{eval-rst}