essdiffraction 26.2.0__tar.gz → 26.4.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.
Files changed (156) hide show
  1. {essdiffraction-26.2.0/src/essdiffraction.egg-info → essdiffraction-26.4.0}/PKG-INFO +5 -5
  2. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/api-reference/index.md +1 -0
  3. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/dream-advanced-powder-reduction.ipynb +13 -13
  4. essdiffraction-26.2.0/docs/user-guide/dream/dream-make-tof-lookup-table.ipynb → essdiffraction-26.4.0/docs/user-guide/dream/dream-make-wavelength-lookup-table.ipynb +21 -19
  5. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/dream-powder-reduction.ipynb +4 -6
  6. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/index.md +1 -1
  7. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/workflow-widget-dream.ipynb +1 -1
  8. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/sns-instruments/POWGEN_data_reduction.ipynb +4 -3
  9. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/pyproject.toml +4 -4
  10. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/base.in +5 -5
  11. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/base.txt +27 -27
  12. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/basetest.txt +9 -9
  13. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/ci.txt +14 -10
  14. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/dev.txt +8 -8
  15. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/docs.txt +12 -12
  16. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/mypy.txt +2 -2
  17. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/nightly.in +1 -1
  18. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/nightly.txt +24 -25
  19. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/static.txt +12 -6
  20. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/clustering.py +1 -1
  21. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/conversions.py +37 -13
  22. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/data.py +5 -0
  23. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/io.py +3 -3
  24. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/types.py +6 -2
  25. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/beamline.py +14 -8
  26. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/data.py +17 -12
  27. essdiffraction-26.4.0/src/ess/dream/instrument_view.py +151 -0
  28. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/io/cif.py +7 -0
  29. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/parameters.py +1 -1
  30. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/workflows.py +33 -10
  31. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/calibration.py +33 -5
  32. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/conversion.py +34 -71
  33. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/correction.py +2 -2
  34. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/types.py +24 -17
  35. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/workflow.py +2 -2
  36. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/data.py +112 -1
  37. {essdiffraction-26.2.0 → essdiffraction-26.4.0/src/essdiffraction.egg-info}/PKG-INFO +5 -5
  38. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/essdiffraction.egg-info/SOURCES.txt +1 -1
  39. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/essdiffraction.egg-info/requires.txt +4 -4
  40. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/beer/mcstas_reduction_test.py +19 -6
  41. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/diffraction/test_peaks.py +21 -0
  42. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/dream/geant4_reduction_test.py +23 -26
  43. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/dream/instrument_view_test.py +12 -33
  44. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/dream/io/cif_test.py +8 -1
  45. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/powder/conversion_test.py +14 -36
  46. essdiffraction-26.2.0/src/ess/dream/instrument_view.py +0 -171
  47. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.copier-answers.ess.yml +0 -0
  48. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.copier-answers.yml +0 -0
  49. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
  50. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/dependabot.yml +0 -0
  51. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/ci.yml +0 -0
  52. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/docs.yml +0 -0
  53. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/nightly_at_main.yml +0 -0
  54. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/nightly_at_main_lower_bound.yml +0 -0
  55. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/nightly_at_release.yml +0 -0
  56. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/python-version-ci +0 -0
  57. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/release.yml +0 -0
  58. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/test.yml +0 -0
  59. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/unpinned.yml +0 -0
  60. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.github/workflows/weekly_windows_macos.yml +0 -0
  61. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.gitignore +0 -0
  62. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.pre-commit-config.yaml +0 -0
  63. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/.python-version +0 -0
  64. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/CODE_OF_CONDUCT.md +0 -0
  65. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/CONTRIBUTING.md +0 -0
  66. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/LICENSE +0 -0
  67. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/MANIFEST.in +0 -0
  68. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/README.md +0 -0
  69. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/anaconda-icon.js +0 -0
  70. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/favicon.svg +0 -0
  71. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/logo-dark.svg +0 -0
  72. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/logo.svg +0 -0
  73. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/thumbnails/beer_mcstas_dark.svg +0 -0
  74. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/thumbnails/beer_mcstas_light.svg +0 -0
  75. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/thumbnails/dream_advanced_powder_reduction_dark.svg +0 -0
  76. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/thumbnails/dream_advanced_powder_reduction_light.svg +0 -0
  77. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/thumbnails/dream_basic_powder_reduction_dark.svg +0 -0
  78. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_static/thumbnails/dream_basic_powder_reduction_light.svg +0 -0
  79. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_templates/class-template.rst +0 -0
  80. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_templates/doc_version.html +0 -0
  81. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/_templates/module-template.rst +0 -0
  82. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/about/bibliography.rst +0 -0
  83. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/about/index.md +0 -0
  84. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/bibliography.bib +0 -0
  85. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/conf.py +0 -0
  86. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/developer/coding-conventions.md +0 -0
  87. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/developer/dependency-management.md +0 -0
  88. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/developer/getting-started.md +0 -0
  89. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/developer/index.md +0 -0
  90. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/index.md +0 -0
  91. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/beer/beer_modulation_mcstas.ipynb +0 -0
  92. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/beer/index.md +0 -0
  93. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/common/index.md +0 -0
  94. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/common/vanadium_processing.ipynb +0 -0
  95. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/dream-detector-diagnostics.ipynb +0 -0
  96. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/dream-instrument-view.ipynb +0 -0
  97. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/dream/dream-visualize-absorption.ipynb +0 -0
  98. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/index.md +0 -0
  99. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/installation.md +0 -0
  100. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/docs/user-guide/sns-instruments/index.md +0 -0
  101. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/basetest.in +0 -0
  102. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/ci.in +0 -0
  103. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/dev.in +0 -0
  104. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/docs.in +0 -0
  105. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/make_base.py +0 -0
  106. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/mypy.in +0 -0
  107. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/static.in +0 -0
  108. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/test.in +0 -0
  109. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/test.txt +0 -0
  110. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/wheels.in +0 -0
  111. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/requirements/wheels.txt +0 -0
  112. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/resources/logo.svg +0 -0
  113. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/setup.cfg +0 -0
  114. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/__init__.py +0 -0
  115. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/peakfinding.py +0 -0
  116. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/beer/workflow.py +0 -0
  117. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/diffraction/__init__.py +0 -0
  118. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/diffraction/peaks.py +0 -0
  119. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/diffraction/py.typed +0 -0
  120. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/__init__.py +0 -0
  121. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/diagnostics.py +0 -0
  122. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/io/__init__.py +0 -0
  123. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/io/geant4.py +0 -0
  124. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/dream/py.typed +0 -0
  125. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/__init__.py +0 -0
  126. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/_util.py +0 -0
  127. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/filtering.py +0 -0
  128. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/grouping.py +0 -0
  129. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/logging.py +0 -0
  130. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/masking.py +0 -0
  131. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/py.typed +0 -0
  132. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/smoothing.py +0 -0
  133. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/powder/transform.py +0 -0
  134. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/__init__.py +0 -0
  135. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/beamline.py +0 -0
  136. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/calibration.py +0 -0
  137. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/instrument_view.py +0 -0
  138. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/peaks.py +0 -0
  139. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/ess/snspowder/powgen/workflow.py +0 -0
  140. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/essdiffraction.egg-info/dependency_links.txt +0 -0
  141. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/src/essdiffraction.egg-info/top_level.txt +0 -0
  142. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/conftest.py +0 -0
  143. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/dream/diagnostics_test.py +0 -0
  144. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/dream/io/geant4_test.py +0 -0
  145. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/dream/workflows/dream_generic_workflow_test.py +0 -0
  146. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/package_test.py +0 -0
  147. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/powder/correction_test.py +0 -0
  148. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/powder/filtering_test.py +0 -0
  149. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/powder/transform_test.py +0 -0
  150. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/snspowder/powgen/load_test.py +0 -0
  151. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tests/snspowder/powgen/powgen_reduction_test.py +0 -0
  152. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tools/docs/beer-thumbnails.ipynb +0 -0
  153. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tools/docs/dream-thumbnails.ipynb +0 -0
  154. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tools/preprocess_pg3_files.ipynb +0 -0
  155. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tools/shrink_nexus.py +0 -0
  156. {essdiffraction-26.2.0 → essdiffraction-26.4.0}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: essdiffraction
3
- Version: 26.2.0
3
+ Version: 26.4.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,16 +21,16 @@ 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>=25.12.1
24
+ Requires-Dist: essreduce>=26.4.0
25
25
  Requires-Dist: graphviz
26
26
  Requires-Dist: numpy>=2
27
- Requires-Dist: plopp>=25.07.0
27
+ Requires-Dist: plopp>=26.2.0
28
28
  Requires-Dist: pythreejs>=2.4.1
29
29
  Requires-Dist: sciline>=25.04.1
30
30
  Requires-Dist: scipp>=25.11.0
31
- Requires-Dist: scippneutron>=25.02.0
31
+ Requires-Dist: scippneutron>=26.3.0
32
32
  Requires-Dist: scippnexus>=23.12.0
33
- Requires-Dist: tof>=25.11.1
33
+ Requires-Dist: tof>=25.12.0
34
34
  Requires-Dist: ncrystal[cif]>=4.1.0
35
35
  Requires-Dist: spglib!=2.7
36
36
  Provides-Extra: test
@@ -37,6 +37,7 @@
37
37
  grouping
38
38
  logging
39
39
  masking
40
+ peaks
40
41
  smoothing
41
42
  transform
42
43
  types
@@ -64,7 +64,7 @@
64
64
  "workflow[MonitorFilename[EmptyCanRun]] = dream.data.simulated_monitor_empty_can()\n",
65
65
  "workflow[CaveMonitorPosition] = sc.vector([0.0, 0.0, -4220.0], unit=\"mm\")\n",
66
66
  "\n",
67
- "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux\n",
67
+ "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux_BC215\n",
68
68
  "# Select a detector bank:\n",
69
69
  "workflow[NeXusDetectorName] = \"mantle\"\n",
70
70
  "# We drop uncertainties where they would otherwise lead to correlations:\n",
@@ -185,7 +185,7 @@
185
185
  "workflow[MonitorFilename[EmptyCanRun]] = dream.data.simulated_monitor_empty_can()\n",
186
186
  "workflow[CaveMonitorPosition] = sc.vector([0.0, 0.0, -4220.0], unit=\"mm\")\n",
187
187
  "\n",
188
- "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux\n",
188
+ "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux_BC215\n",
189
189
  "# Select a detector bank:\n",
190
190
  "workflow[NeXusDetectorName] = \"mantle\"\n",
191
191
  "# We drop uncertainties where they would otherwise lead to correlations:\n",
@@ -260,7 +260,7 @@
260
260
  "workflow[Filename[EmptyCanRun]] = dream.data.simulated_empty_can()\n",
261
261
  "workflow[CalibrationFilename] = None\n",
262
262
  "\n",
263
- "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux\n",
263
+ "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux_BC215\n",
264
264
  "# Select a detector bank:\n",
265
265
  "workflow[NeXusDetectorName] = \"mantle\"\n",
266
266
  "# We drop uncertainties where they would otherwise lead to correlations:\n",
@@ -374,7 +374,7 @@
374
374
  "workflow[Filename[EmptyCanRun]] = dream.data.simulated_empty_can()\n",
375
375
  "workflow[CalibrationFilename] = None\n",
376
376
  "\n",
377
- "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux\n",
377
+ "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux_BC215\n",
378
378
  "# We drop uncertainties where they would otherwise lead to correlations:\n",
379
379
  "workflow[UncertaintyBroadcastMode] = UncertaintyBroadcastMode.drop\n",
380
380
  "# Edges for binning in d-spacing:\n",
@@ -420,10 +420,10 @@
420
420
  ").rename_axis(index='detector')\n",
421
421
  "\n",
422
422
  "all_detector_workflow = workflow.copy()\n",
423
- "mapped = all_detector_workflow[EmptyCanSubtractedIofDspacing[SampleRun]].map(\n",
423
+ "mapped = all_detector_workflow[EmptyCanSubtractedIofDspacing].map(\n",
424
424
  " parameter_table\n",
425
425
  ")\n",
426
- "all_detector_workflow[EmptyCanSubtractedIofDspacing[SampleRun]] = mapped.reduce(\n",
426
+ "all_detector_workflow[EmptyCanSubtractedIofDspacing] = mapped.reduce(\n",
427
427
  " func=powder.grouping.collect_detectors\n",
428
428
  ")"
429
429
  ]
@@ -444,7 +444,7 @@
444
444
  "outputs": [],
445
445
  "source": [
446
446
  "all_detector_workflow.visualize(\n",
447
- " EmptyCanSubtractedIofDspacing[SampleRun], graph_attr={\"rankdir\": \"LR\"}, compact=True\n",
447
+ " EmptyCanSubtractedIofDspacing, graph_attr={\"rankdir\": \"LR\"}, compact=True\n",
448
448
  ")"
449
449
  ]
450
450
  },
@@ -463,7 +463,7 @@
463
463
  "metadata": {},
464
464
  "outputs": [],
465
465
  "source": [
466
- "result = all_detector_workflow.compute(EmptyCanSubtractedIofDspacing[SampleRun])"
466
+ "result = all_detector_workflow.compute(EmptyCanSubtractedIofDspacing)"
467
467
  ]
468
468
  },
469
469
  {
@@ -537,10 +537,10 @@
537
537
  ").rename_axis(index='detector')\n",
538
538
  "\n",
539
539
  "all_detector_workflow = workflow.copy()\n",
540
- "mapped = all_detector_workflow[EmptyCanSubtractedIofDspacingTwoTheta[SampleRun]].map(\n",
540
+ "mapped = all_detector_workflow[EmptyCanSubtractedIofDspacingTwoTheta].map(\n",
541
541
  " parameter_table\n",
542
542
  ")\n",
543
- "all_detector_workflow[EmptyCanSubtractedIofDspacingTwoTheta[SampleRun]] = mapped.reduce(\n",
543
+ "all_detector_workflow[EmptyCanSubtractedIofDspacingTwoTheta] = mapped.reduce(\n",
544
544
  " func=powder.grouping.collect_detectors\n",
545
545
  ")"
546
546
  ]
@@ -553,7 +553,7 @@
553
553
  "outputs": [],
554
554
  "source": [
555
555
  "all_detector_workflow.visualize(\n",
556
- " EmptyCanSubtractedIofDspacingTwoTheta[SampleRun],\n",
556
+ " EmptyCanSubtractedIofDspacingTwoTheta,\n",
557
557
  " graph_attr={\"rankdir\": \"LR\"},\n",
558
558
  " compact=True,\n",
559
559
  ")"
@@ -566,7 +566,7 @@
566
566
  "metadata": {},
567
567
  "outputs": [],
568
568
  "source": [
569
- "result = all_detector_workflow.compute(EmptyCanSubtractedIofDspacingTwoTheta[SampleRun])"
569
+ "result = all_detector_workflow.compute(EmptyCanSubtractedIofDspacingTwoTheta)"
570
570
  ]
571
571
  },
572
572
  {
@@ -628,7 +628,7 @@
628
628
  "name": "python",
629
629
  "nbconvert_exporter": "python",
630
630
  "pygments_lexer": "ipython3",
631
- "version": "3.10.14"
631
+ "version": "3.12.12"
632
632
  }
633
633
  },
634
634
  "nbformat": 4,
@@ -5,9 +5,9 @@
5
5
  "id": "0",
6
6
  "metadata": {},
7
7
  "source": [
8
- "# Create a time-of-flight lookup table for DREAM\n",
8
+ "# Create a wavelength lookup table for DREAM\n",
9
9
  "\n",
10
- "This notebook shows how to create a time-of-flight lookup table for the DREAM instrument."
10
+ "This notebook shows how to create a wavelength lookup table for the DREAM instrument."
11
11
  ]
12
12
  },
13
13
  {
@@ -18,7 +18,7 @@
18
18
  "outputs": [],
19
19
  "source": [
20
20
  "import scipp as sc\n",
21
- "from ess.reduce import time_of_flight\n",
21
+ "from ess.reduce import unwrap\n",
22
22
  "from ess.reduce.nexus.types import AnyRun\n",
23
23
  "from ess.dream.beamline import InstrumentConfiguration, choppers"
24
24
  ]
@@ -40,7 +40,7 @@
40
40
  "metadata": {},
41
41
  "outputs": [],
42
42
  "source": [
43
- "disk_choppers = choppers(InstrumentConfiguration.high_flux)"
43
+ "disk_choppers = choppers(InstrumentConfiguration.high_flux_BC240)"
44
44
  ]
45
45
  },
46
46
  {
@@ -48,6 +48,8 @@
48
48
  "id": "4",
49
49
  "metadata": {},
50
50
  "source": [
51
+ "Note that possible configurations are `high_flux_BC215`, `high_flux_BC240`, and `high_resolution`.\n",
52
+ "\n",
51
53
  "## Setting up the workflow"
52
54
  ]
53
55
  },
@@ -58,18 +60,17 @@
58
60
  "metadata": {},
59
61
  "outputs": [],
60
62
  "source": [
61
- "wf = time_of_flight.TofLookupTableWorkflow()\n",
63
+ "wf = unwrap.LookupTableWorkflow()\n",
62
64
  "\n",
63
- "wf[time_of_flight.LtotalRange] = sc.scalar(60.0, unit=\"m\"), sc.scalar(80.0, unit=\"m\")\n",
64
- "wf[time_of_flight.NumberOfSimulatedNeutrons] = 200_000 # Increase this number for more reliable results\n",
65
- "wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')\n",
66
- "wf[time_of_flight.DiskChoppers[AnyRun]] = disk_choppers\n",
67
- "wf[time_of_flight.DistanceResolution] = sc.scalar(0.1, unit=\"m\")\n",
68
- "wf[time_of_flight.TimeResolution] = sc.scalar(250.0, unit='us')\n",
69
- "wf[time_of_flight.LookupTableRelativeErrorThreshold] = 0.02\n",
70
- "wf[time_of_flight.PulsePeriod] = 1.0 / sc.scalar(14.0, unit=\"Hz\")\n",
71
- "wf[time_of_flight.PulseStride] = 1\n",
72
- "wf[time_of_flight.PulseStrideOffset] = None"
65
+ "wf[unwrap.LtotalRange] = sc.scalar(5.0, unit=\"m\"), sc.scalar(80.0, unit=\"m\")\n",
66
+ "wf[unwrap.NumberOfSimulatedNeutrons] = 200_000 # Increase this number for more reliable results\n",
67
+ "wf[unwrap.SourcePosition] = sc.vector([0, 0, 0], unit='m')\n",
68
+ "wf[unwrap.DiskChoppers[AnyRun]] = disk_choppers\n",
69
+ "wf[unwrap.DistanceResolution] = sc.scalar(0.1, unit=\"m\")\n",
70
+ "wf[unwrap.TimeResolution] = sc.scalar(250.0, unit='us')\n",
71
+ "wf[unwrap.PulsePeriod] = 1.0 / sc.scalar(14.0, unit=\"Hz\")\n",
72
+ "wf[unwrap.PulseStride] = 1\n",
73
+ "wf[unwrap.PulseStrideOffset] = None"
73
74
  ]
74
75
  },
75
76
  {
@@ -87,8 +88,8 @@
87
88
  "metadata": {},
88
89
  "outputs": [],
89
90
  "source": [
90
- "table = wf.compute(time_of_flight.TimeOfFlightLookupTable)\n",
91
- "table"
91
+ "table = wf.compute(unwrap.LookupTable)\n",
92
+ "table.array"
92
93
  ]
93
94
  },
94
95
  {
@@ -116,7 +117,7 @@
116
117
  "metadata": {},
117
118
  "outputs": [],
118
119
  "source": [
119
- "table.save_hdf5('DREAM-high-flux-tof-lookup-table.h5')"
120
+ "table.save_hdf5('DREAM-high-flux-wavelength-lut-5m-80m-bc240.h5')"
120
121
  ]
121
122
  }
122
123
  ],
@@ -135,7 +136,8 @@
135
136
  "mimetype": "text/x-python",
136
137
  "name": "python",
137
138
  "nbconvert_exporter": "python",
138
- "pygments_lexer": "ipython3"
139
+ "pygments_lexer": "ipython3",
140
+ "version": "3.12.12"
139
141
  }
140
142
  },
141
143
  "nbformat": 4,
@@ -87,7 +87,7 @@
87
87
  "workflow[MonitorFilename[EmptyCanRun]] = dream.data.simulated_monitor_empty_can()\n",
88
88
  "workflow[CaveMonitorPosition] = sc.vector([0.0, 0.0, -4220.0], unit=\"mm\")\n",
89
89
  "\n",
90
- "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux\n",
90
+ "workflow[dream.InstrumentConfiguration] = dream.InstrumentConfiguration.high_flux_BC215\n",
91
91
  "# Select a detector bank:\n",
92
92
  "workflow[NeXusDetectorName] = \"mantle\"\n",
93
93
  "# We drop uncertainties where they would otherwise lead to correlations:\n",
@@ -122,10 +122,10 @@
122
122
  "outputs": [],
123
123
  "source": [
124
124
  "results = workflow.compute([\n",
125
- " EmptyCanSubtractedIofDspacing[SampleRun],\n",
125
+ " EmptyCanSubtractedIofDspacing,\n",
126
126
  " ReducedEmptyCanSubtractedTofCIF\n",
127
127
  "])\n",
128
- "intensity = results[EmptyCanSubtractedIofDspacing[SampleRun]]\n",
128
+ "intensity = results[EmptyCanSubtractedIofDspacing]\n",
129
129
  "cif_data = results[ReducedEmptyCanSubtractedTofCIF]"
130
130
  ]
131
131
  },
@@ -145,9 +145,7 @@
145
145
  "outputs": [],
146
146
  "source": [
147
147
  "histogram = intensity.hist()\n",
148
- "fig = histogram.plot(title=intensity.coords['detector'].value.capitalize())\n",
149
- "fig.ax.set_ylabel(f\"I(d) [{histogram.unit}]\")\n",
150
- "fig"
148
+ "histogram.plot(title=intensity.coords['detector'].value.capitalize(), ylabel=f\"I(d) [{histogram.unit}]\")"
151
149
  ]
152
150
  },
153
151
  {
@@ -54,5 +54,5 @@ dream-instrument-view
54
54
  workflow-widget-dream
55
55
  dream-detector-diagnostics
56
56
  dream-visualize-absorption
57
- dream-make-tof-lookup-table
57
+ dream-make-wavelength-lookup-table
58
58
  ```
@@ -67,7 +67,7 @@
67
67
  "# Set parameters\n",
68
68
  "pbox._input_widgets[Filename[SampleRun]].children[0].value = str(dream.data.simulated_diamond_sample())\n",
69
69
  "pbox._input_widgets[Filename[VanadiumRun]].children[0].value = str(dream.data.simulated_vanadium_sample())\n",
70
- "pbox._input_widgets[InstrumentConfiguration].value = InstrumentConfiguration.high_flux\n",
70
+ "pbox._input_widgets[InstrumentConfiguration].value = InstrumentConfiguration.high_flux_BC215\n",
71
71
  "pbox._input_widgets[DspacingBins].fields[\"stop\"].value = 2.3434\n",
72
72
  "# Run the workflow\n",
73
73
  "rbox = wfw.result_box\n",
@@ -239,7 +239,7 @@
239
239
  "source": [
240
240
  "results = workflow.compute(\n",
241
241
  " (\n",
242
- " TofDetector[SampleRun],\n",
242
+ " WavelengthDetector[SampleRun],\n",
243
243
  " CorrectedDetector[SampleRun],\n",
244
244
  " )\n",
245
245
  ")"
@@ -252,7 +252,7 @@
252
252
  "metadata": {},
253
253
  "outputs": [],
254
254
  "source": [
255
- "results[TofDetector[SampleRun]]"
255
+ "results[WavelengthDetector[SampleRun]]"
256
256
  ]
257
257
  },
258
258
  {
@@ -377,7 +377,8 @@
377
377
  "mimetype": "text/x-python",
378
378
  "name": "python",
379
379
  "nbconvert_exporter": "python",
380
- "pygments_lexer": "ipython3"
380
+ "pygments_lexer": "ipython3",
381
+ "version": "3.12.12"
381
382
  }
382
383
  },
383
384
  "nbformat": 4,
@@ -31,16 +31,16 @@ requires-python = ">=3.11"
31
31
  # Make sure to list one dependency per line.
32
32
  dependencies = [
33
33
  "dask>=2022.1.0",
34
- "essreduce>=25.12.1",
34
+ "essreduce>=26.4.0",
35
35
  "graphviz",
36
36
  "numpy>=2",
37
- "plopp>=25.07.0",
37
+ "plopp>=26.2.0",
38
38
  "pythreejs>=2.4.1",
39
39
  "sciline>=25.04.1",
40
40
  "scipp>=25.11.0",
41
- "scippneutron>=25.02.0",
41
+ "scippneutron>=26.3.0",
42
42
  "scippnexus>=23.12.0",
43
- "tof>=25.11.1",
43
+ "tof>=25.12.0",
44
44
  "ncrystal[cif]>=4.1.0",
45
45
  "spglib!=2.7", # https://github.com/mctools/ncrystal/issues/320
46
46
  ]
@@ -3,15 +3,15 @@
3
3
  # --- END OF CUSTOM SECTION ---
4
4
  # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY!
5
5
  dask>=2022.1.0
6
- essreduce>=25.12.1
6
+ essreduce>=26.4.0
7
7
  graphviz
8
- numpy>=1.25
9
- plopp>=25.07.0
8
+ numpy>=2
9
+ plopp>=26.2.0
10
10
  pythreejs>=2.4.1
11
11
  sciline>=25.04.1
12
12
  scipp>=25.11.0
13
- scippneutron>=25.02.0
13
+ scippneutron>=26.3.0
14
14
  scippnexus>=23.12.0
15
- tof>=25.11.1
15
+ tof>=25.12.0
16
16
  ncrystal[cif]>=4.1.0
17
17
  spglib!=2.7
@@ -1,4 +1,4 @@
1
- # SHA1:40cd03cd4a9e9632db0eebb7d094cb1a55638372
1
+ # SHA1:d9fbbf694f7784dc50f913e8e6d0bcc452239f7a
2
2
  #
3
3
  # This file was generated by pip-compile-multi.
4
4
  # To update, run:
@@ -7,13 +7,13 @@
7
7
  #
8
8
  annotated-types==0.7.0
9
9
  # via pydantic
10
- ase==3.27.0
10
+ ase==3.28.0
11
11
  # via ncrystal
12
12
  asttokens==3.0.1
13
13
  # via stack-data
14
- certifi==2026.1.4
14
+ certifi==2026.2.25
15
15
  # via requests
16
- charset-normalizer==3.4.4
16
+ charset-normalizer==3.4.6
17
17
  # via requests
18
18
  click==8.3.1
19
19
  # via dask
@@ -27,7 +27,7 @@ cyclebane==24.10.0
27
27
  # via sciline
28
28
  cycler==0.12.1
29
29
  # via matplotlib
30
- dask==2026.1.1
30
+ dask==2026.3.0
31
31
  # via -r base.in
32
32
  decorator==5.2.1
33
33
  # via ipython
@@ -35,19 +35,19 @@ dnspython==2.8.0
35
35
  # via email-validator
36
36
  email-validator==2.3.0
37
37
  # via scippneutron
38
- essreduce==26.1.1
38
+ essreduce==26.4.0
39
39
  # via -r base.in
40
40
  executing==2.2.1
41
41
  # via stack-data
42
- fonttools==4.61.1
42
+ fonttools==4.62.1
43
43
  # via matplotlib
44
- fsspec==2026.1.0
44
+ fsspec==2026.2.0
45
45
  # via dask
46
- gemmi==0.7.4
46
+ gemmi==0.7.5
47
47
  # via ncrystal
48
48
  graphviz==0.21
49
49
  # via -r base.in
50
- h5py==3.15.1
50
+ h5py==3.16.0
51
51
  # via
52
52
  # scippneutron
53
53
  # scippnexus
@@ -55,11 +55,11 @@ idna==3.11
55
55
  # via
56
56
  # email-validator
57
57
  # requests
58
- importlib-metadata==8.7.1
58
+ importlib-metadata==9.0.0
59
59
  # via dask
60
60
  ipydatawidgets==4.3.5
61
61
  # via pythreejs
62
- ipython==9.9.0
62
+ ipython==9.10.0
63
63
  # via ipywidgets
64
64
  ipython-pygments-lexers==1.1.1
65
65
  # via ipython
@@ -71,9 +71,9 @@ jedi==0.19.2
71
71
  # via ipython
72
72
  jupyterlab-widgets==3.0.16
73
73
  # via ipywidgets
74
- kiwisolver==1.4.9
74
+ kiwisolver==1.5.0
75
75
  # via matplotlib
76
- lazy-loader==0.4
76
+ lazy-loader==0.5
77
77
  # via
78
78
  # plopp
79
79
  # scippneutron
@@ -87,7 +87,7 @@ matplotlib==3.10.8
87
87
  # plopp
88
88
  matplotlib-inline==0.2.1
89
89
  # via ipython
90
- mpltoolbox==25.10.0
90
+ mpltoolbox==26.2.0
91
91
  # via scippneutron
92
92
  ncrystal[cif]==4.2.12
93
93
  # via -r base.in
@@ -97,7 +97,7 @@ ncrystal-python==4.2.12
97
97
  # via ncrystal
98
98
  networkx==3.6.1
99
99
  # via cyclebane
100
- numpy==2.4.1
100
+ numpy==2.4.3
101
101
  # via
102
102
  # -r base.in
103
103
  # ase
@@ -117,22 +117,22 @@ packaging==26.0
117
117
  # lazy-loader
118
118
  # matplotlib
119
119
  # pooch
120
- parso==0.8.5
120
+ parso==0.8.6
121
121
  # via jedi
122
122
  partd==1.4.2
123
123
  # via dask
124
124
  pexpect==4.9.0
125
125
  # via ipython
126
- pillow==12.1.0
126
+ pillow==12.1.1
127
127
  # via matplotlib
128
- platformdirs==4.5.1
128
+ platformdirs==4.9.4
129
129
  # via pooch
130
- plopp==25.11.0
130
+ plopp==26.3.1
131
131
  # via
132
132
  # -r base.in
133
133
  # scippneutron
134
134
  # tof
135
- pooch==1.8.2
135
+ pooch==1.9.0
136
136
  # via tof
137
137
  prompt-toolkit==3.0.52
138
138
  # via ipython
@@ -164,23 +164,23 @@ sciline==25.11.1
164
164
  # via
165
165
  # -r base.in
166
166
  # essreduce
167
- scipp==26.1.1
167
+ scipp==26.3.1
168
168
  # via
169
169
  # -r base.in
170
170
  # essreduce
171
171
  # scippneutron
172
172
  # scippnexus
173
173
  # tof
174
- scippneutron==25.11.2
174
+ scippneutron==26.3.0
175
175
  # via
176
176
  # -r base.in
177
177
  # essreduce
178
- scippnexus==26.1.0
178
+ scippnexus==26.1.1
179
179
  # via
180
180
  # -r base.in
181
181
  # essreduce
182
182
  # scippneutron
183
- scipy==1.17.0
183
+ scipy==1.17.1
184
184
  # via
185
185
  # ase
186
186
  # scippneutron
@@ -193,7 +193,7 @@ spglib==2.6.0
193
193
  # ncrystal
194
194
  stack-data==0.6.3
195
195
  # via ipython
196
- tof==26.1.0
196
+ tof==26.3.0
197
197
  # via -r base.in
198
198
  toolz==1.1.0
199
199
  # via
@@ -219,7 +219,7 @@ typing-inspection==0.4.2
219
219
  # via pydantic
220
220
  urllib3==2.6.3
221
221
  # via requests
222
- wcwidth==0.3.0
222
+ wcwidth==0.6.0
223
223
  # via prompt-toolkit
224
224
  widgetsnbextension==4.0.15
225
225
  # via ipywidgets
@@ -7,9 +7,9 @@
7
7
  #
8
8
  asttokens==3.0.1
9
9
  # via stack-data
10
- certifi==2026.1.4
10
+ certifi==2026.2.25
11
11
  # via requests
12
- charset-normalizer==3.4.4
12
+ charset-normalizer==3.4.6
13
13
  # via requests
14
14
  comm==0.2.3
15
15
  # via ipywidgets
@@ -21,7 +21,7 @@ idna==3.11
21
21
  # via requests
22
22
  iniconfig==2.3.0
23
23
  # via pytest
24
- ipython==9.9.0
24
+ ipython==9.10.0
25
25
  # via ipywidgets
26
26
  ipython-pygments-lexers==1.1.1
27
27
  # via ipython
@@ -33,23 +33,23 @@ jupyterlab-widgets==3.0.16
33
33
  # via ipywidgets
34
34
  matplotlib-inline==0.2.1
35
35
  # via ipython
36
- numpy==2.4.1
36
+ numpy==2.4.3
37
37
  # via pandas
38
38
  packaging==26.0
39
39
  # via
40
40
  # pooch
41
41
  # pytest
42
- pandas==3.0.0
42
+ pandas==3.0.1
43
43
  # via -r basetest.in
44
- parso==0.8.5
44
+ parso==0.8.6
45
45
  # via jedi
46
46
  pexpect==4.9.0
47
47
  # via ipython
48
- platformdirs==4.5.1
48
+ platformdirs==4.9.4
49
49
  # via pooch
50
50
  pluggy==1.6.0
51
51
  # via pytest
52
- pooch==1.8.2
52
+ pooch==1.9.0
53
53
  # via -r basetest.in
54
54
  prompt-toolkit==3.0.52
55
55
  # via ipython
@@ -81,7 +81,7 @@ typing-extensions==4.15.0
81
81
  # via ipython
82
82
  urllib3==2.6.3
83
83
  # via requests
84
- wcwidth==0.3.0
84
+ wcwidth==0.6.0
85
85
  # via prompt-toolkit
86
86
  widgetsnbextension==4.0.15
87
87
  # via ipywidgets
@@ -5,20 +5,19 @@
5
5
  #
6
6
  # requirements upgrade
7
7
  #
8
- cachetools==6.2.4
8
+ cachetools==7.0.5
9
9
  # via tox
10
- certifi==2026.1.4
10
+ certifi==2026.2.25
11
11
  # via requests
12
- chardet==5.2.0
13
- # via tox
14
- charset-normalizer==3.4.4
12
+ charset-normalizer==3.4.6
15
13
  # via requests
16
14
  colorama==0.4.6
17
15
  # via tox
18
16
  distlib==0.4.0
19
17
  # via virtualenv
20
- filelock==3.20.3
18
+ filelock==3.25.2
21
19
  # via
20
+ # python-discovery
22
21
  # tox
23
22
  # virtualenv
24
23
  gitdb==4.0.12
@@ -32,21 +31,26 @@ packaging==26.0
32
31
  # -r ci.in
33
32
  # pyproject-api
34
33
  # tox
35
- platformdirs==4.5.1
34
+ platformdirs==4.9.4
36
35
  # via
36
+ # python-discovery
37
37
  # tox
38
38
  # virtualenv
39
39
  pluggy==1.6.0
40
40
  # via tox
41
41
  pyproject-api==1.10.0
42
42
  # via tox
43
+ python-discovery==1.2.0
44
+ # via virtualenv
43
45
  requests==2.32.5
44
46
  # via -r ci.in
45
- smmap==5.0.2
47
+ smmap==5.0.3
46
48
  # via gitdb
47
- tox==4.34.1
49
+ tomli-w==1.2.0
50
+ # via tox
51
+ tox==4.50.3
48
52
  # via -r ci.in
49
53
  urllib3==2.6.3
50
54
  # via requests
51
- virtualenv==20.36.1
55
+ virtualenv==21.2.0
52
56
  # via tox