essdiffraction 26.5.2__tar.gz → 26.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {essdiffraction-26.5.2/src/essdiffraction.egg-info → essdiffraction-26.6.0}/PKG-INFO +18 -18
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-make-wavelength-lookup-table.ipynb +5 -5
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/pyproject.toml +17 -17
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/workflows.py +11 -3
- {essdiffraction-26.5.2 → essdiffraction-26.6.0/src/essdiffraction.egg-info}/PKG-INFO +18 -18
- essdiffraction-26.6.0/src/essdiffraction.egg-info/requires.txt +36 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/geant4_reduction_test.py +75 -84
- essdiffraction-26.5.2/src/essdiffraction.egg-info/requires.txt +0 -36
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/.copier-answers.ess.yml +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/.copier-answers.yml +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/LICENSE +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/README.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/anaconda-icon.js +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/essdiffraction-search-logo.png +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/favicon.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/logo-dark.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/logo.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/beer_mcstas_dark.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/beer_mcstas_light.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/dream_advanced_powder_reduction_dark.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/dream_advanced_powder_reduction_light.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/dream_basic_powder_reduction_dark.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/dream_basic_powder_reduction_light.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_templates/class-template.rst +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_templates/doc_version.html +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_templates/layout.html +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_templates/module-template.rst +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/about/bibliography.rst +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/about/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/api-reference/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/bibliography.bib +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/conf.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/developer/coding-conventions.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/developer/dependency-management.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/developer/getting-started.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/developer/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/beer/beer_modulation_mcstas.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/beer/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/common/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/common/vanadium_processing.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-advanced-powder-reduction.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-detector-diagnostics.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-instrument-view.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-powder-reduction.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-visualize-absorption.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/workflow-widget-dream.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/installation.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/magic/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/sns-instruments/POWGEN_data_reduction.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/sns-instruments/index.md +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/resources/logo.svg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/setup.cfg +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/clustering.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/conversions.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/data.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/io.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/peakfinding.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/types.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/beer/workflow.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/diffraction/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/diffraction/peaks.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/diffraction/py.typed +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/beamline.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/data.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/diagnostics.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/instrument_view.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/io/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/io/cif.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/io/geant4.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/parameters.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/dream/py.typed +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/magic/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/magic/beamline.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/magic/data.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/magic/types.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/magic/workflow.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/_util.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/calibration.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/conversion.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/correction.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/filtering.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/grouping.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/logging.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/masking.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/py.typed +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/smoothing.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/transform.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/types.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/powder/workflow.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/__init__.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/beamline.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/calibration.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/data.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/instrument_view.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/peaks.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/ess/snspowder/powgen/workflow.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/essdiffraction.egg-info/SOURCES.txt +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/essdiffraction.egg-info/dependency_links.txt +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/essdiffraction.egg-info/top_level.txt +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/beer/mcstas_reduction_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/conftest.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/diffraction/peaks_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/diagnostics_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/instrument_view_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/io/cif_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/io/geant4_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/workflows/dream_generic_workflow_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/magic/workflow_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/package_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/powder/conversion_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/powder/correction_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/powder/filtering_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/powder/transform_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/snspowder/powgen/load_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/snspowder/powgen/powgen_reduction_test.py +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tools/docs/beer-thumbnails.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tools/docs/dream-thumbnails.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tools/preprocess_pg3_files.ipynb +0 -0
- {essdiffraction-26.5.2 → essdiffraction-26.6.0}/tools/shrink_nexus.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: essdiffraction
|
|
3
|
-
Version: 26.
|
|
3
|
+
Version: 26.6.0
|
|
4
4
|
Summary: Diffraction data reduction for the European Spallation Source
|
|
5
5
|
Author: Scipp contributors
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -21,8 +21,8 @@ Requires-Python: >=3.11
|
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
Requires-Dist: dask>=2022.1.0
|
|
24
|
-
Requires-Dist: essreduce>=26.
|
|
25
|
-
Requires-Dist: graphviz
|
|
24
|
+
Requires-Dist: essreduce>=26.6.0
|
|
25
|
+
Requires-Dist: graphviz>=0.20
|
|
26
26
|
Requires-Dist: numpy>=2
|
|
27
27
|
Requires-Dist: plopp>=26.2.0
|
|
28
28
|
Requires-Dist: pythreejs>=2.4.1
|
|
@@ -32,28 +32,28 @@ Requires-Dist: scippneutron>=26.3.0
|
|
|
32
32
|
Requires-Dist: scippnexus>=23.12.0
|
|
33
33
|
Requires-Dist: tof>=25.12.0
|
|
34
34
|
Requires-Dist: ncrystal[cif]>=4.1.0
|
|
35
|
-
Requires-Dist: spglib!=2.7
|
|
35
|
+
Requires-Dist: spglib!=2.7,>=2.0.0
|
|
36
36
|
Provides-Extra: test
|
|
37
37
|
Requires-Dist: pandas>=2.1.2; extra == "test"
|
|
38
38
|
Requires-Dist: pooch>=1.5; extra == "test"
|
|
39
39
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
40
40
|
Requires-Dist: ipywidgets>=8.1.7; extra == "test"
|
|
41
41
|
Provides-Extra: docs
|
|
42
|
-
Requires-Dist: autodoc-pydantic; extra == "docs"
|
|
43
|
-
Requires-Dist: ipykernel; extra == "docs"
|
|
44
|
-
Requires-Dist: ipympl; extra == "docs"
|
|
45
|
-
Requires-Dist: ipython!=8.7.0; extra == "docs"
|
|
46
|
-
Requires-Dist: myst-parser; extra == "docs"
|
|
47
|
-
Requires-Dist: nbsphinx; extra == "docs"
|
|
48
|
-
Requires-Dist: pandas; extra == "docs"
|
|
49
|
-
Requires-Dist: pooch; extra == "docs"
|
|
42
|
+
Requires-Dist: autodoc-pydantic>=2.0.0; extra == "docs"
|
|
43
|
+
Requires-Dist: ipykernel>=6.20.0; extra == "docs"
|
|
44
|
+
Requires-Dist: ipympl>=0.9.0; extra == "docs"
|
|
45
|
+
Requires-Dist: ipython!=8.7.0,>=8.8.0; extra == "docs"
|
|
46
|
+
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
|
|
47
|
+
Requires-Dist: nbsphinx>=0.9.3; extra == "docs"
|
|
48
|
+
Requires-Dist: pandas>=2.1.2; extra == "docs"
|
|
49
|
+
Requires-Dist: pooch>=1.5; extra == "docs"
|
|
50
50
|
Requires-Dist: pydata-sphinx-theme>=0.14; extra == "docs"
|
|
51
|
-
Requires-Dist: sphinx; extra == "docs"
|
|
52
|
-
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
53
|
-
Requires-Dist: sphinx-copybutton; extra == "docs"
|
|
54
|
-
Requires-Dist: sphinx-design; extra == "docs"
|
|
55
|
-
Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
|
|
56
|
-
Requires-Dist: pyarrow; extra == "docs"
|
|
51
|
+
Requires-Dist: sphinx>=7; extra == "docs"
|
|
52
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.24.0; extra == "docs"
|
|
53
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
|
|
54
|
+
Requires-Dist: sphinx-design>=0.5.0; extra == "docs"
|
|
55
|
+
Requires-Dist: sphinxcontrib-bibtex>=2.5.0; extra == "docs"
|
|
56
|
+
Requires-Dist: pyarrow>=12.0.0; extra == "docs"
|
|
57
57
|
Dynamic: license-file
|
|
58
58
|
|
|
59
59
|
[](CODE_OF_CONDUCT.md)
|
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
"outputs": [],
|
|
19
19
|
"source": [
|
|
20
20
|
"import scipp as sc\n",
|
|
21
|
+
"import scippnexus as snx\n",
|
|
21
22
|
"from ess.reduce import unwrap\n",
|
|
22
|
-
"from ess.reduce.nexus.types import AnyRun\n",
|
|
23
|
+
"from ess.reduce.nexus.types import AnyRun, Position\n",
|
|
23
24
|
"from ess.dream.beamline import InstrumentConfiguration, choppers"
|
|
24
25
|
]
|
|
25
26
|
},
|
|
@@ -62,14 +63,13 @@
|
|
|
62
63
|
"source": [
|
|
63
64
|
"wf = unwrap.LookupTableWorkflow()\n",
|
|
64
65
|
"\n",
|
|
65
|
-
"wf[unwrap.LtotalRange] = sc.scalar(5.0, unit=\"m\"), sc.scalar(80.0, unit=\"m\")\n",
|
|
66
|
+
"wf[unwrap.LtotalRange[AnyRun, snx.NXdetector]] = sc.scalar(5.0, unit=\"m\"), sc.scalar(80.0, unit=\"m\")\n",
|
|
66
67
|
"wf[unwrap.NumberOfSimulatedNeutrons] = 200_000 # Increase this number for more reliable results\n",
|
|
67
|
-
"wf[
|
|
68
|
+
"wf[Position[snx.NXsource, AnyRun]] = sc.vector([0, 0, 0], unit='m')\n",
|
|
68
69
|
"wf[unwrap.DiskChoppers[AnyRun]] = disk_choppers\n",
|
|
69
70
|
"wf[unwrap.DistanceResolution] = sc.scalar(0.1, unit=\"m\")\n",
|
|
70
71
|
"wf[unwrap.TimeResolution] = sc.scalar(250.0, unit='us')\n",
|
|
71
72
|
"wf[unwrap.PulsePeriod] = 1.0 / sc.scalar(14.0, unit=\"Hz\")\n",
|
|
72
|
-
"wf[unwrap.PulseStride] = 1\n",
|
|
73
73
|
"wf[unwrap.PulseStrideOffset] = None"
|
|
74
74
|
]
|
|
75
75
|
},
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"metadata": {},
|
|
89
89
|
"outputs": [],
|
|
90
90
|
"source": [
|
|
91
|
-
"table = wf.compute(unwrap.LookupTable)\n",
|
|
91
|
+
"table = wf.compute(unwrap.LookupTable[AnyRun, snx.NXdetector])\n",
|
|
92
92
|
"table.array"
|
|
93
93
|
]
|
|
94
94
|
},
|
|
@@ -30,8 +30,8 @@ requires-python = ">=3.11"
|
|
|
30
30
|
# Make sure to list one dependency per line.
|
|
31
31
|
dependencies = [
|
|
32
32
|
"dask>=2022.1.0",
|
|
33
|
-
"essreduce>=26.
|
|
34
|
-
"graphviz",
|
|
33
|
+
"essreduce>=26.6.0",
|
|
34
|
+
"graphviz>=0.20",
|
|
35
35
|
"numpy>=2",
|
|
36
36
|
"plopp>=26.2.0",
|
|
37
37
|
"pythreejs>=2.4.1",
|
|
@@ -41,7 +41,7 @@ dependencies = [
|
|
|
41
41
|
"scippnexus>=23.12.0",
|
|
42
42
|
"tof>=25.12.0",
|
|
43
43
|
"ncrystal[cif]>=4.1.0",
|
|
44
|
-
"spglib
|
|
44
|
+
"spglib>=2.0.0,!=2.7", # https://github.com/mctools/ncrystal/issues/320
|
|
45
45
|
]
|
|
46
46
|
|
|
47
47
|
dynamic = ["version"]
|
|
@@ -54,23 +54,23 @@ test = [
|
|
|
54
54
|
"ipywidgets>=8.1.7",
|
|
55
55
|
]
|
|
56
56
|
docs = [
|
|
57
|
-
"autodoc-pydantic",
|
|
58
|
-
"ipykernel",
|
|
59
|
-
"ipympl",
|
|
57
|
+
"autodoc-pydantic>=2.0.0",
|
|
58
|
+
"ipykernel>=6.20.0",
|
|
59
|
+
"ipympl>=0.9.0",
|
|
60
60
|
# Breaks syntax highlighting in Jupyter code cells.
|
|
61
|
-
"ipython
|
|
62
|
-
"myst-parser",
|
|
63
|
-
"nbsphinx",
|
|
64
|
-
"pandas",
|
|
65
|
-
"pooch",
|
|
61
|
+
"ipython>=8.8.0,!=8.7.0",
|
|
62
|
+
"myst-parser>=2.0.0",
|
|
63
|
+
"nbsphinx>=0.9.3",
|
|
64
|
+
"pandas>=2.1.2",
|
|
65
|
+
"pooch>=1.5",
|
|
66
66
|
"pydata-sphinx-theme>=0.14",
|
|
67
|
-
"sphinx",
|
|
68
|
-
"sphinx-autodoc-typehints",
|
|
69
|
-
"sphinx-copybutton",
|
|
70
|
-
"sphinx-design",
|
|
71
|
-
"sphinxcontrib-bibtex",
|
|
67
|
+
"sphinx>=7",
|
|
68
|
+
"sphinx-autodoc-typehints>=1.24.0",
|
|
69
|
+
"sphinx-copybutton>=0.5.2",
|
|
70
|
+
"sphinx-design>=0.5.0",
|
|
71
|
+
"sphinxcontrib-bibtex>=2.5.0",
|
|
72
72
|
# needed by pandas < 3.0
|
|
73
|
-
"pyarrow",
|
|
73
|
+
"pyarrow>=12.0.0",
|
|
74
74
|
]
|
|
75
75
|
|
|
76
76
|
[project.urls]
|
|
@@ -32,7 +32,7 @@ from scippneutron.metadata import Software
|
|
|
32
32
|
|
|
33
33
|
from ess.reduce.nexus.types import DetectorBankSizes, NeXusName
|
|
34
34
|
from ess.reduce.parameter import parameter_mappers
|
|
35
|
-
from ess.reduce.unwrap import GenericUnwrapWorkflow
|
|
35
|
+
from ess.reduce.unwrap import GenericUnwrapWorkflow, WavelengthLutMode
|
|
36
36
|
from ess.reduce.workflow import register_workflow
|
|
37
37
|
|
|
38
38
|
from .beamline import InstrumentConfiguration
|
|
@@ -97,7 +97,9 @@ def _collect_reducer_software() -> ReducerSoftware:
|
|
|
97
97
|
)
|
|
98
98
|
|
|
99
99
|
|
|
100
|
-
def DreamWorkflow(
|
|
100
|
+
def DreamWorkflow(
|
|
101
|
+
wavelength_from: WavelengthLutMode = "file", **kwargs
|
|
102
|
+
) -> sciline.Pipeline:
|
|
101
103
|
"""
|
|
102
104
|
Dream generic workflow with default parameters.
|
|
103
105
|
The workflow is based on the GenericUnwrapWorkflow.
|
|
@@ -109,6 +111,10 @@ def DreamWorkflow(**kwargs) -> sciline.Pipeline:
|
|
|
109
111
|
|
|
110
112
|
Parameters
|
|
111
113
|
----------
|
|
114
|
+
wavelength_from:
|
|
115
|
+
Mode for creating the wavelength lookup table. Possible values are
|
|
116
|
+
'analytical', 'simulation', and 'file'. See
|
|
117
|
+
https://scipp.github.io/ess/reduce/user-guide/unwrap/lut-building-methods.html
|
|
112
118
|
kwargs:
|
|
113
119
|
Additional keyword arguments are forwarded to the base
|
|
114
120
|
:func:`GenericUnwrapWorkflow`.
|
|
@@ -116,12 +122,14 @@ def DreamWorkflow(**kwargs) -> sciline.Pipeline:
|
|
|
116
122
|
wf = GenericUnwrapWorkflow(
|
|
117
123
|
run_types=[SampleRun, VanadiumRun, EmptyCanRun],
|
|
118
124
|
monitor_types=[BunkerMonitor, CaveMonitor],
|
|
125
|
+
wavelength_from=wavelength_from,
|
|
119
126
|
**kwargs,
|
|
120
127
|
)
|
|
121
128
|
wf[DetectorBankSizes] = DETECTOR_BANK_SIZES
|
|
122
129
|
wf[NeXusName[BunkerMonitor]] = "monitor_bunker"
|
|
123
130
|
wf[NeXusName[CaveMonitor]] = "monitor_cave"
|
|
124
|
-
|
|
131
|
+
if wavelength_from == "file":
|
|
132
|
+
wf.insert(_get_lookup_table_filename_from_configuration)
|
|
125
133
|
wf[ReducerSoftware] = _collect_reducer_software()
|
|
126
134
|
wf[LookupTableRelativeErrorThreshold] = {
|
|
127
135
|
"endcap_backward_detector": float('inf'),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: essdiffraction
|
|
3
|
-
Version: 26.
|
|
3
|
+
Version: 26.6.0
|
|
4
4
|
Summary: Diffraction data reduction for the European Spallation Source
|
|
5
5
|
Author: Scipp contributors
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -21,8 +21,8 @@ Requires-Python: >=3.11
|
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
Requires-Dist: dask>=2022.1.0
|
|
24
|
-
Requires-Dist: essreduce>=26.
|
|
25
|
-
Requires-Dist: graphviz
|
|
24
|
+
Requires-Dist: essreduce>=26.6.0
|
|
25
|
+
Requires-Dist: graphviz>=0.20
|
|
26
26
|
Requires-Dist: numpy>=2
|
|
27
27
|
Requires-Dist: plopp>=26.2.0
|
|
28
28
|
Requires-Dist: pythreejs>=2.4.1
|
|
@@ -32,28 +32,28 @@ Requires-Dist: scippneutron>=26.3.0
|
|
|
32
32
|
Requires-Dist: scippnexus>=23.12.0
|
|
33
33
|
Requires-Dist: tof>=25.12.0
|
|
34
34
|
Requires-Dist: ncrystal[cif]>=4.1.0
|
|
35
|
-
Requires-Dist: spglib!=2.7
|
|
35
|
+
Requires-Dist: spglib!=2.7,>=2.0.0
|
|
36
36
|
Provides-Extra: test
|
|
37
37
|
Requires-Dist: pandas>=2.1.2; extra == "test"
|
|
38
38
|
Requires-Dist: pooch>=1.5; extra == "test"
|
|
39
39
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
40
40
|
Requires-Dist: ipywidgets>=8.1.7; extra == "test"
|
|
41
41
|
Provides-Extra: docs
|
|
42
|
-
Requires-Dist: autodoc-pydantic; extra == "docs"
|
|
43
|
-
Requires-Dist: ipykernel; extra == "docs"
|
|
44
|
-
Requires-Dist: ipympl; extra == "docs"
|
|
45
|
-
Requires-Dist: ipython!=8.7.0; extra == "docs"
|
|
46
|
-
Requires-Dist: myst-parser; extra == "docs"
|
|
47
|
-
Requires-Dist: nbsphinx; extra == "docs"
|
|
48
|
-
Requires-Dist: pandas; extra == "docs"
|
|
49
|
-
Requires-Dist: pooch; extra == "docs"
|
|
42
|
+
Requires-Dist: autodoc-pydantic>=2.0.0; extra == "docs"
|
|
43
|
+
Requires-Dist: ipykernel>=6.20.0; extra == "docs"
|
|
44
|
+
Requires-Dist: ipympl>=0.9.0; extra == "docs"
|
|
45
|
+
Requires-Dist: ipython!=8.7.0,>=8.8.0; extra == "docs"
|
|
46
|
+
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
|
|
47
|
+
Requires-Dist: nbsphinx>=0.9.3; extra == "docs"
|
|
48
|
+
Requires-Dist: pandas>=2.1.2; extra == "docs"
|
|
49
|
+
Requires-Dist: pooch>=1.5; extra == "docs"
|
|
50
50
|
Requires-Dist: pydata-sphinx-theme>=0.14; extra == "docs"
|
|
51
|
-
Requires-Dist: sphinx; extra == "docs"
|
|
52
|
-
Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
|
|
53
|
-
Requires-Dist: sphinx-copybutton; extra == "docs"
|
|
54
|
-
Requires-Dist: sphinx-design; extra == "docs"
|
|
55
|
-
Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
|
|
56
|
-
Requires-Dist: pyarrow; extra == "docs"
|
|
51
|
+
Requires-Dist: sphinx>=7; extra == "docs"
|
|
52
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.24.0; extra == "docs"
|
|
53
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
|
|
54
|
+
Requires-Dist: sphinx-design>=0.5.0; extra == "docs"
|
|
55
|
+
Requires-Dist: sphinxcontrib-bibtex>=2.5.0; extra == "docs"
|
|
56
|
+
Requires-Dist: pyarrow>=12.0.0; extra == "docs"
|
|
57
57
|
Dynamic: license-file
|
|
58
58
|
|
|
59
59
|
[](CODE_OF_CONDUCT.md)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
dask>=2022.1.0
|
|
2
|
+
essreduce>=26.6.0
|
|
3
|
+
graphviz>=0.20
|
|
4
|
+
numpy>=2
|
|
5
|
+
plopp>=26.2.0
|
|
6
|
+
pythreejs>=2.4.1
|
|
7
|
+
sciline>=25.04.1
|
|
8
|
+
scipp>=25.11.0
|
|
9
|
+
scippneutron>=26.3.0
|
|
10
|
+
scippnexus>=23.12.0
|
|
11
|
+
tof>=25.12.0
|
|
12
|
+
ncrystal[cif]>=4.1.0
|
|
13
|
+
spglib!=2.7,>=2.0.0
|
|
14
|
+
|
|
15
|
+
[docs]
|
|
16
|
+
autodoc-pydantic>=2.0.0
|
|
17
|
+
ipykernel>=6.20.0
|
|
18
|
+
ipympl>=0.9.0
|
|
19
|
+
ipython!=8.7.0,>=8.8.0
|
|
20
|
+
myst-parser>=2.0.0
|
|
21
|
+
nbsphinx>=0.9.3
|
|
22
|
+
pandas>=2.1.2
|
|
23
|
+
pooch>=1.5
|
|
24
|
+
pydata-sphinx-theme>=0.14
|
|
25
|
+
sphinx>=7
|
|
26
|
+
sphinx-autodoc-typehints>=1.24.0
|
|
27
|
+
sphinx-copybutton>=0.5.2
|
|
28
|
+
sphinx-design>=0.5.0
|
|
29
|
+
sphinxcontrib-bibtex>=2.5.0
|
|
30
|
+
pyarrow>=12.0.0
|
|
31
|
+
|
|
32
|
+
[test]
|
|
33
|
+
pandas>=2.1.2
|
|
34
|
+
pooch>=1.5
|
|
35
|
+
pytest>=7.0
|
|
36
|
+
ipywidgets>=8.1.7
|
|
@@ -28,7 +28,6 @@ from ess.powder.types import (
|
|
|
28
28
|
IntensityDspacingTwoTheta,
|
|
29
29
|
IntensityTof,
|
|
30
30
|
KeepEvents,
|
|
31
|
-
LookupTable,
|
|
32
31
|
LookupTableFilename,
|
|
33
32
|
MonitorFilename,
|
|
34
33
|
NeXusDetectorName,
|
|
@@ -42,10 +41,14 @@ from ess.powder.types import (
|
|
|
42
41
|
WavelengthMask,
|
|
43
42
|
)
|
|
44
43
|
from scippneutron import metadata
|
|
44
|
+
from scippnexus import NXsource
|
|
45
45
|
|
|
46
46
|
from ess.reduce import unwrap
|
|
47
47
|
from ess.reduce import workflow as reduce_workflow
|
|
48
|
-
from ess.reduce.nexus.types import AnyRun
|
|
48
|
+
from ess.reduce.nexus.types import AnyRun, Position
|
|
49
|
+
|
|
50
|
+
PARAMETRIZATION = ("detector_name", ["mantle", "endcap_backward", "endcap_forward"])
|
|
51
|
+
|
|
49
52
|
|
|
50
53
|
params = {
|
|
51
54
|
Filename[SampleRun]: dream.data.simulated_diamond_sample(small=True),
|
|
@@ -55,6 +58,7 @@ params = {
|
|
|
55
58
|
MonitorFilename[VanadiumRun]: dream.data.simulated_monitor_vanadium_sample(),
|
|
56
59
|
MonitorFilename[EmptyCanRun]: dream.data.simulated_monitor_empty_can(),
|
|
57
60
|
dream.InstrumentConfiguration: dream.beamline.InstrumentConfiguration.high_flux_BC215, # noqa: E501
|
|
61
|
+
Position[NXsource, AnyRun]: sc.vector(value=[0, 0, -76.55], unit="m"),
|
|
58
62
|
CalibrationFilename: None,
|
|
59
63
|
UncertaintyBroadcastMode: UncertaintyBroadcastMode.drop,
|
|
60
64
|
DspacingBins: sc.linspace('dspacing', 0.0, 2.3434, 201, unit='angstrom'),
|
|
@@ -74,32 +78,32 @@ params = {
|
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
def workflow(params_for_det):
|
|
85
|
-
return make_workflow(params_for_det, run_norm=powder.RunNormalization.proton_charge)
|
|
86
|
-
|
|
81
|
+
def _make_workflow(
|
|
82
|
+
detector_name,
|
|
83
|
+
run_norm=powder.RunNormalization.proton_charge,
|
|
84
|
+
wavelength_from="file",
|
|
85
|
+
):
|
|
86
|
+
wf = dream.DreamGeant4Workflow(run_norm=run_norm, wavelength_from=wavelength_from)
|
|
87
|
+
wf[NeXusDetectorName] = detector_name
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
wf = dream.DreamGeant4Workflow(run_norm=run_norm)
|
|
90
|
-
for key, value in params_for_det.items():
|
|
89
|
+
for key, value in params.items():
|
|
91
90
|
wf[key] = value
|
|
92
91
|
return wf
|
|
93
92
|
|
|
94
93
|
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
95
|
+
def test_pipeline_can_compute_dspacing_result(detector_name):
|
|
96
|
+
workflow = powder.with_pixel_mask_filenames(
|
|
97
|
+
_make_workflow(detector_name=detector_name), []
|
|
98
|
+
)
|
|
97
99
|
result = workflow.compute(EmptyCanSubtractedIofDspacing)
|
|
98
100
|
assert result.sizes == {'dspacing': len(params[DspacingBins]) - 1}
|
|
99
101
|
assert sc.identical(result.coords['dspacing'], params[DspacingBins])
|
|
100
102
|
|
|
101
103
|
|
|
102
|
-
|
|
104
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
105
|
+
def test_pipeline_can_compute_dspacing_result_without_empty_can(detector_name):
|
|
106
|
+
workflow = _make_workflow(detector_name=detector_name)
|
|
103
107
|
workflow[Filename[EmptyCanRun]] = None
|
|
104
108
|
workflow[MonitorFilename[EmptyCanRun]] = None
|
|
105
109
|
workflow = powder.with_pixel_mask_filenames(workflow, [])
|
|
@@ -108,66 +112,39 @@ def test_pipeline_can_compute_dspacing_result_without_empty_can(workflow):
|
|
|
108
112
|
assert sc.identical(result.coords['dspacing'], params[DspacingBins])
|
|
109
113
|
|
|
110
114
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
assert sc.identical(result.coords['dspacing'], params[DspacingBins])
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
@pytest.fixture(scope="module")
|
|
120
|
-
def dream_lookup_table():
|
|
121
|
-
lut_wf = unwrap.LookupTableWorkflow()
|
|
122
|
-
lut_wf[unwrap.DiskChoppers[AnyRun]] = dream.beamline.choppers(
|
|
123
|
-
dream.beamline.InstrumentConfiguration.high_flux_BC215
|
|
124
|
-
)
|
|
125
|
-
lut_wf[unwrap.SourcePosition] = sc.vector(value=[0, 0, -76.55], unit="m")
|
|
126
|
-
lut_wf[unwrap.NumberOfSimulatedNeutrons] = 500_000
|
|
127
|
-
lut_wf[unwrap.SimulationSeed] = 555
|
|
128
|
-
lut_wf[unwrap.PulseStride] = 1
|
|
129
|
-
lut_wf[unwrap.LtotalRange] = (
|
|
130
|
-
sc.scalar(60.0, unit="m"),
|
|
131
|
-
sc.scalar(80.0, unit="m"),
|
|
132
|
-
)
|
|
133
|
-
lut_wf[unwrap.DistanceResolution] = sc.scalar(0.1, unit="m")
|
|
134
|
-
lut_wf[unwrap.TimeResolution] = sc.scalar(250.0, unit='us')
|
|
135
|
-
return lut_wf.compute(unwrap.LookupTable)
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
def test_pipeline_can_compute_dspacing_result_using_custom_built_tof_lookup(
|
|
139
|
-
workflow, dream_lookup_table
|
|
115
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
116
|
+
@pytest.mark.parametrize("lut_mode", ["file", "simulation", "analytical"])
|
|
117
|
+
def test_pipeline_can_compute_dspacing_result_different_lookup_tables(
|
|
118
|
+
detector_name,
|
|
119
|
+
lut_mode,
|
|
140
120
|
):
|
|
141
|
-
workflow =
|
|
142
|
-
|
|
121
|
+
workflow = _make_workflow(detector_name=detector_name, wavelength_from=lut_mode)
|
|
122
|
+
|
|
123
|
+
if lut_mode == "file":
|
|
124
|
+
workflow[LookupTableFilename] = dream.data.lookup_table_high_flux()
|
|
125
|
+
else:
|
|
126
|
+
workflow[unwrap.DiskChoppers] = dream.beamline.choppers(
|
|
127
|
+
dream.beamline.InstrumentConfiguration.high_flux_BC215
|
|
128
|
+
)
|
|
129
|
+
workflow[unwrap.DistanceResolution] = sc.scalar(0.1, unit="m")
|
|
130
|
+
workflow[unwrap.TimeResolution] = sc.scalar(250.0, unit='us')
|
|
131
|
+
if lut_mode == "simulation":
|
|
132
|
+
workflow[unwrap.NumberOfSimulatedNeutrons] = 200_000
|
|
133
|
+
workflow[unwrap.SimulationSeed] = 555
|
|
143
134
|
|
|
144
|
-
result = workflow.compute(IntensityDspacing[SampleRun])
|
|
145
|
-
assert result.sizes == {'dspacing': len(params[DspacingBins]) - 1}
|
|
146
|
-
assert sc.identical(result.coords['dspacing'], params[DspacingBins])
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
@pytest.mark.parametrize("keep_events", [True, False])
|
|
150
|
-
def test_pipeline_can_compute_dspacing_result_with_hist_monitor_norm(
|
|
151
|
-
params_for_det, keep_events: bool
|
|
152
|
-
):
|
|
153
|
-
workflow = make_workflow(
|
|
154
|
-
params_for_det, run_norm=powder.RunNormalization.monitor_histogram
|
|
155
|
-
)
|
|
156
|
-
workflow[KeepEvents[SampleRun]] = KeepEvents[SampleRun](keep_events)
|
|
157
|
-
workflow[KeepEvents[VanadiumRun]] = KeepEvents[VanadiumRun](keep_events)
|
|
158
135
|
workflow = powder.with_pixel_mask_filenames(workflow, [])
|
|
159
|
-
result = workflow.compute(
|
|
136
|
+
result = workflow.compute(EmptyCanSubtractedIofDspacing)
|
|
160
137
|
assert result.sizes == {'dspacing': len(params[DspacingBins]) - 1}
|
|
161
138
|
assert sc.identical(result.coords['dspacing'], params[DspacingBins])
|
|
162
139
|
|
|
163
140
|
|
|
141
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
164
142
|
@pytest.mark.parametrize("keep_events", [True, False])
|
|
165
|
-
|
|
166
|
-
|
|
143
|
+
@pytest.mark.parametrize("norm", ["monitor_histogram", "monitor_integrated"])
|
|
144
|
+
def test_pipeline_can_compute_dspacing_result_with_different_norm(
|
|
145
|
+
detector_name, keep_events: bool, norm: str
|
|
167
146
|
):
|
|
168
|
-
workflow =
|
|
169
|
-
params_for_det, run_norm=powder.RunNormalization.monitor_integrated
|
|
170
|
-
)
|
|
147
|
+
workflow = _make_workflow(detector_name=detector_name, run_norm=norm)
|
|
171
148
|
workflow[KeepEvents[SampleRun]] = KeepEvents[SampleRun](keep_events)
|
|
172
149
|
workflow[KeepEvents[VanadiumRun]] = KeepEvents[VanadiumRun](keep_events)
|
|
173
150
|
workflow = powder.with_pixel_mask_filenames(workflow, [])
|
|
@@ -176,13 +153,13 @@ def test_pipeline_can_compute_dspacing_result_with_integrated_monitor_norm(
|
|
|
176
153
|
assert sc.identical(result.coords['dspacing'], params[DspacingBins])
|
|
177
154
|
|
|
178
155
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
) -> None:
|
|
156
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
157
|
+
def test_pipeline_normalizes_and_subtracts_empty_can_as_expected(detector_name) -> None:
|
|
182
158
|
sample = sc.data.binned_x(13, 3)
|
|
183
159
|
vanadium = sc.data.binned_x(16, 3)
|
|
184
160
|
empty_can = sc.data.binned_x(9, 3)
|
|
185
161
|
|
|
162
|
+
workflow = _make_workflow(detector_name=detector_name)
|
|
186
163
|
workflow[FocussedDataDspacing[SampleRun]] = sample
|
|
187
164
|
workflow[FocussedDataDspacing[VanadiumRun]] = vanadium
|
|
188
165
|
workflow[FocussedDataDspacing[EmptyCanRun]] = empty_can
|
|
@@ -199,8 +176,11 @@ def test_pipeline_normalizes_and_subtracts_empty_can_as_expected(
|
|
|
199
176
|
sc.testing.assert_allclose(result, expected)
|
|
200
177
|
|
|
201
178
|
|
|
202
|
-
|
|
203
|
-
|
|
179
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
180
|
+
def test_workflow_is_deterministic(detector_name):
|
|
181
|
+
workflow = powder.with_pixel_mask_filenames(
|
|
182
|
+
_make_workflow(detector_name=detector_name), []
|
|
183
|
+
)
|
|
204
184
|
# This is Sciline's default scheduler, but we want to be explicit here
|
|
205
185
|
scheduler = sciline.scheduler.DaskScheduler()
|
|
206
186
|
graph = workflow.get(IntensityTof, scheduler=scheduler)
|
|
@@ -209,8 +189,11 @@ def test_workflow_is_deterministic(workflow):
|
|
|
209
189
|
assert sc.identical(sc.values(result), sc.values(reference))
|
|
210
190
|
|
|
211
191
|
|
|
212
|
-
|
|
213
|
-
|
|
192
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
193
|
+
def test_pipeline_can_compute_intermediate_results(detector_name):
|
|
194
|
+
workflow = powder.with_pixel_mask_filenames(
|
|
195
|
+
_make_workflow(detector_name=detector_name), []
|
|
196
|
+
)
|
|
214
197
|
results = workflow.compute((CorrectedDetector[SampleRun], NeXusDetectorName))
|
|
215
198
|
result = results[CorrectedDetector[SampleRun]]
|
|
216
199
|
|
|
@@ -222,10 +205,12 @@ def test_pipeline_can_compute_intermediate_results(workflow):
|
|
|
222
205
|
assert expected_dims.issubset(set(result.dims))
|
|
223
206
|
|
|
224
207
|
|
|
225
|
-
|
|
208
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
209
|
+
def test_pipeline_group_by_two_theta(detector_name):
|
|
226
210
|
two_theta_bins = sc.linspace(
|
|
227
211
|
dim='two_theta', unit='rad', start=0.8, stop=2.4, num=17
|
|
228
212
|
)
|
|
213
|
+
workflow = _make_workflow(detector_name=detector_name)
|
|
229
214
|
workflow[TwoThetaBins] = two_theta_bins
|
|
230
215
|
workflow = powder.with_pixel_mask_filenames(workflow, [])
|
|
231
216
|
result = workflow.compute(IntensityDspacingTwoTheta[SampleRun])
|
|
@@ -235,7 +220,9 @@ def test_pipeline_group_by_two_theta(workflow):
|
|
|
235
220
|
assert sc.allclose(result.coords['two_theta'], two_theta_bins)
|
|
236
221
|
|
|
237
222
|
|
|
238
|
-
|
|
223
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
224
|
+
def test_pipeline_wavelength_masking(detector_name):
|
|
225
|
+
workflow = _make_workflow(detector_name=detector_name)
|
|
239
226
|
wmin = sc.scalar(0.18, unit="angstrom")
|
|
240
227
|
wmax = sc.scalar(0.21, unit="angstrom")
|
|
241
228
|
workflow[WavelengthMask] = lambda x: (x > wmin) & (x < wmax)
|
|
@@ -253,7 +240,9 @@ def test_pipeline_wavelength_masking(workflow):
|
|
|
253
240
|
)
|
|
254
241
|
|
|
255
242
|
|
|
256
|
-
|
|
243
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
244
|
+
def test_pipeline_two_theta_masking(detector_name):
|
|
245
|
+
workflow = _make_workflow(detector_name=detector_name)
|
|
257
246
|
tmin = sc.scalar(1.0, unit="rad")
|
|
258
247
|
tmax = sc.scalar(1.2, unit="rad")
|
|
259
248
|
workflow[TwoThetaMask] = lambda x: (x > tmin) & (x < tmax)
|
|
@@ -269,8 +258,11 @@ def test_pipeline_two_theta_masking(workflow):
|
|
|
269
258
|
)
|
|
270
259
|
|
|
271
260
|
|
|
272
|
-
|
|
273
|
-
|
|
261
|
+
@pytest.mark.parametrize(*PARAMETRIZATION)
|
|
262
|
+
def test_pipeline_can_save_data(detector_name):
|
|
263
|
+
workflow = powder.with_pixel_mask_filenames(
|
|
264
|
+
_make_workflow(detector_name=detector_name), []
|
|
265
|
+
)
|
|
274
266
|
result = workflow.compute(ReducedTofCIF)
|
|
275
267
|
|
|
276
268
|
buffer = io.StringIO()
|
|
@@ -293,9 +285,8 @@ def test_pipeline_save_data_to_disk(output_folder: Path):
|
|
|
293
285
|
to have enough signal: we thus use the large files instead of small, and use the
|
|
294
286
|
mantle detector bank.
|
|
295
287
|
"""
|
|
296
|
-
wf =
|
|
297
|
-
|
|
298
|
-
run_norm=powder.RunNormalization.proton_charge,
|
|
288
|
+
wf = _make_workflow(
|
|
289
|
+
detector_name="mantle", run_norm=powder.RunNormalization.proton_charge
|
|
299
290
|
)
|
|
300
291
|
|
|
301
292
|
wf[Filename[SampleRun]] = dream.data.simulated_diamond_sample(small=False)
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
dask>=2022.1.0
|
|
2
|
-
essreduce>=26.4.0
|
|
3
|
-
graphviz
|
|
4
|
-
numpy>=2
|
|
5
|
-
plopp>=26.2.0
|
|
6
|
-
pythreejs>=2.4.1
|
|
7
|
-
sciline>=25.04.1
|
|
8
|
-
scipp>=25.11.0
|
|
9
|
-
scippneutron>=26.3.0
|
|
10
|
-
scippnexus>=23.12.0
|
|
11
|
-
tof>=25.12.0
|
|
12
|
-
ncrystal[cif]>=4.1.0
|
|
13
|
-
spglib!=2.7
|
|
14
|
-
|
|
15
|
-
[docs]
|
|
16
|
-
autodoc-pydantic
|
|
17
|
-
ipykernel
|
|
18
|
-
ipympl
|
|
19
|
-
ipython!=8.7.0
|
|
20
|
-
myst-parser
|
|
21
|
-
nbsphinx
|
|
22
|
-
pandas
|
|
23
|
-
pooch
|
|
24
|
-
pydata-sphinx-theme>=0.14
|
|
25
|
-
sphinx
|
|
26
|
-
sphinx-autodoc-typehints
|
|
27
|
-
sphinx-copybutton
|
|
28
|
-
sphinx-design
|
|
29
|
-
sphinxcontrib-bibtex
|
|
30
|
-
pyarrow
|
|
31
|
-
|
|
32
|
-
[test]
|
|
33
|
-
pandas>=2.1.2
|
|
34
|
-
pooch>=1.5
|
|
35
|
-
pytest>=7.0
|
|
36
|
-
ipywidgets>=8.1.7
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/beer_mcstas_dark.svg
RENAMED
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/_static/thumbnails/beer_mcstas_light.svg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/beer/beer_modulation_mcstas.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/common/vanadium_processing.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-instrument-view.ipynb
RENAMED
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/dream-powder-reduction.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/docs/user-guide/dream/workflow-widget-dream.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/src/essdiffraction.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/dream/workflows/dream_generic_workflow_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{essdiffraction-26.5.2 → essdiffraction-26.6.0}/tests/snspowder/powgen/powgen_reduction_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|