essreduce 25.7.0__tar.gz → 25.7.1__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 (145) hide show
  1. {essreduce-25.7.0/src/essreduce.egg-info → essreduce-25.7.1}/PKG-INFO +1 -1
  2. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/lut.py +4 -4
  3. {essreduce-25.7.0 → essreduce-25.7.1/src/essreduce.egg-info}/PKG-INFO +1 -1
  4. {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/SOURCES.txt +1 -0
  5. essreduce-25.7.1/tests/time_of_flight/lut_test.py +114 -0
  6. {essreduce-25.7.0 → essreduce-25.7.1}/.copier-answers.ess.yml +0 -0
  7. {essreduce-25.7.0 → essreduce-25.7.1}/.copier-answers.yml +0 -0
  8. {essreduce-25.7.0 → essreduce-25.7.1}/.github/ISSUE_TEMPLATE/high-level-requirement.yml +0 -0
  9. {essreduce-25.7.0 → essreduce-25.7.1}/.github/dependabot.yml +0 -0
  10. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/ci.yml +0 -0
  11. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/docs.yml +0 -0
  12. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/nightly_at_main.yml +0 -0
  13. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/nightly_at_release.yml +0 -0
  14. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/python-version-ci +0 -0
  15. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/release.yml +0 -0
  16. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/test.yml +0 -0
  17. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/unpinned.yml +0 -0
  18. {essreduce-25.7.0 → essreduce-25.7.1}/.github/workflows/weekly_windows_macos.yml +0 -0
  19. {essreduce-25.7.0 → essreduce-25.7.1}/.gitignore +0 -0
  20. {essreduce-25.7.0 → essreduce-25.7.1}/.pre-commit-config.yaml +0 -0
  21. {essreduce-25.7.0 → essreduce-25.7.1}/.python-version +0 -0
  22. {essreduce-25.7.0 → essreduce-25.7.1}/CODE_OF_CONDUCT.md +0 -0
  23. {essreduce-25.7.0 → essreduce-25.7.1}/CONTRIBUTING.md +0 -0
  24. {essreduce-25.7.0 → essreduce-25.7.1}/LICENSE +0 -0
  25. {essreduce-25.7.0 → essreduce-25.7.1}/MANIFEST.in +0 -0
  26. {essreduce-25.7.0 → essreduce-25.7.1}/README.md +0 -0
  27. {essreduce-25.7.0 → essreduce-25.7.1}/conda/meta.yaml +0 -0
  28. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/anaconda-icon.js +0 -0
  29. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/favicon.svg +0 -0
  30. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/logo-dark.svg +0 -0
  31. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_static/logo.svg +0 -0
  32. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_templates/class-template.rst +0 -0
  33. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_templates/doc_version.html +0 -0
  34. {essreduce-25.7.0 → essreduce-25.7.1}/docs/_templates/module-template.rst +0 -0
  35. {essreduce-25.7.0 → essreduce-25.7.1}/docs/about/index.md +0 -0
  36. {essreduce-25.7.0 → essreduce-25.7.1}/docs/api-reference/index.md +0 -0
  37. {essreduce-25.7.0 → essreduce-25.7.1}/docs/conf.py +0 -0
  38. {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/coding-conventions.md +0 -0
  39. {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/dependency-management.md +0 -0
  40. {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/getting-started.md +0 -0
  41. {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/gui.ipynb +0 -0
  42. {essreduce-25.7.0 → essreduce-25.7.1}/docs/developer/index.md +0 -0
  43. {essreduce-25.7.0 → essreduce-25.7.1}/docs/index.md +0 -0
  44. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/index.md +0 -0
  45. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/installation.md +0 -0
  46. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/reduction-workflow-guidelines.md +0 -0
  47. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/dream.ipynb +0 -0
  48. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/frame-unwrapping.ipynb +0 -0
  49. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/index.md +0 -0
  50. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/tof/wfm.ipynb +0 -0
  51. {essreduce-25.7.0 → essreduce-25.7.1}/docs/user-guide/widget.md +0 -0
  52. {essreduce-25.7.0 → essreduce-25.7.1}/pyproject.toml +0 -0
  53. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/base.in +0 -0
  54. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/base.txt +0 -0
  55. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/basetest.in +0 -0
  56. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/basetest.txt +0 -0
  57. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/ci.in +0 -0
  58. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/ci.txt +0 -0
  59. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/dev.in +0 -0
  60. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/dev.txt +0 -0
  61. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/docs.in +0 -0
  62. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/docs.txt +0 -0
  63. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/make_base.py +0 -0
  64. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/mypy.in +0 -0
  65. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/mypy.txt +0 -0
  66. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/nightly.in +0 -0
  67. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/nightly.txt +0 -0
  68. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/static.in +0 -0
  69. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/static.txt +0 -0
  70. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/test.in +0 -0
  71. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/test.txt +0 -0
  72. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/wheels.in +0 -0
  73. {essreduce-25.7.0 → essreduce-25.7.1}/requirements/wheels.txt +0 -0
  74. {essreduce-25.7.0 → essreduce-25.7.1}/resources/logo.svg +0 -0
  75. {essreduce-25.7.0 → essreduce-25.7.1}/setup.cfg +0 -0
  76. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/__init__.py +0 -0
  77. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/data.py +0 -0
  78. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/__init__.py +0 -0
  79. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/raw.py +0 -0
  80. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/roi.py +0 -0
  81. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/live/workflow.py +0 -0
  82. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/logging.py +0 -0
  83. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/__init__.py +0 -0
  84. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/_nexus_loader.py +0 -0
  85. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/json_generator.py +0 -0
  86. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/json_nexus.py +0 -0
  87. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/types.py +0 -0
  88. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/nexus/workflow.py +0 -0
  89. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/parameter.py +0 -0
  90. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/py.typed +0 -0
  91. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/scripts/grow_nexus.py +0 -0
  92. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/streaming.py +0 -0
  93. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/__init__.py +0 -0
  94. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/eto_to_tof.py +0 -0
  95. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/fakes.py +0 -0
  96. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/interpolator_numba.py +0 -0
  97. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/interpolator_scipy.py +0 -0
  98. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/resample.py +0 -0
  99. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/types.py +0 -0
  100. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/time_of_flight/workflow.py +0 -0
  101. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/ui.py +0 -0
  102. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/uncertainty.py +0 -0
  103. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/__init__.py +0 -0
  104. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_base.py +0 -0
  105. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_binedges_widget.py +0 -0
  106. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_bounds_widget.py +0 -0
  107. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_config.py +0 -0
  108. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_filename_widget.py +0 -0
  109. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_linspace_widget.py +0 -0
  110. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_optional_widget.py +0 -0
  111. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_spinner.py +0 -0
  112. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_string_widget.py +0 -0
  113. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_switchable_widget.py +0 -0
  114. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/widgets/_vector_widget.py +0 -0
  115. {essreduce-25.7.0 → essreduce-25.7.1}/src/ess/reduce/workflow.py +0 -0
  116. {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/dependency_links.txt +0 -0
  117. {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/entry_points.txt +0 -0
  118. {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/requires.txt +0 -0
  119. {essreduce-25.7.0 → essreduce-25.7.1}/src/essreduce.egg-info/top_level.txt +0 -0
  120. {essreduce-25.7.0 → essreduce-25.7.1}/tests/accumulators_test.py +0 -0
  121. {essreduce-25.7.0 → essreduce-25.7.1}/tests/live/raw_test.py +0 -0
  122. {essreduce-25.7.0 → essreduce-25.7.1}/tests/live/roi_test.py +0 -0
  123. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_generator_test.py +0 -0
  124. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/array_dataset.json +0 -0
  125. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/dataset.json +0 -0
  126. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/detector.json +0 -0
  127. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/entry.json +0 -0
  128. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/event_data.json +0 -0
  129. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/instrument.json +0 -0
  130. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_examples/log.json +0 -0
  131. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/json_nexus_test.py +0 -0
  132. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/nexus_loader_test.py +0 -0
  133. {essreduce-25.7.0 → essreduce-25.7.1}/tests/nexus/workflow_test.py +0 -0
  134. {essreduce-25.7.0 → essreduce-25.7.1}/tests/package_test.py +0 -0
  135. {essreduce-25.7.0 → essreduce-25.7.1}/tests/scripts/test_grow_nexus.py +0 -0
  136. {essreduce-25.7.0 → essreduce-25.7.1}/tests/streaming_test.py +0 -0
  137. {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/interpolator_test.py +0 -0
  138. {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/resample_tests.py +0 -0
  139. {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/unwrap_test.py +0 -0
  140. {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/wfm_test.py +0 -0
  141. {essreduce-25.7.0 → essreduce-25.7.1}/tests/time_of_flight/workflow_test.py +0 -0
  142. {essreduce-25.7.0 → essreduce-25.7.1}/tests/uncertainty_test.py +0 -0
  143. {essreduce-25.7.0 → essreduce-25.7.1}/tests/widget_test.py +0 -0
  144. {essreduce-25.7.0 → essreduce-25.7.1}/tools/shrink_nexus.py +0 -0
  145. {essreduce-25.7.0 → essreduce-25.7.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: essreduce
3
- Version: 25.7.0
3
+ Version: 25.7.1
4
4
  Summary: Common data reduction tools for the ESS facility
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -4,6 +4,7 @@
4
4
  Utilities for computing time-of-flight lookup tables from neutron simulations.
5
5
  """
6
6
 
7
+ import math
7
8
  from dataclasses import dataclass
8
9
  from typing import NewType
9
10
 
@@ -330,12 +331,11 @@ def make_tof_lookup_table(
330
331
  ndist = len(distance_bins) - 1
331
332
  max_size = 2e7
332
333
  total_size = ndist * len(simulation.time_of_arrival)
333
- nchunks = total_size / max_size
334
- chunk_size = int(ndist / nchunks) + 1
334
+ nchunks = math.ceil(total_size / max_size)
335
+ chunk_size = math.ceil(ndist / nchunks)
335
336
  pieces = []
336
- for i in range(int(nchunks) + 1):
337
+ for i in range(nchunks):
337
338
  dist_edges = distance_bins[i * chunk_size : (i + 1) * chunk_size + 1]
338
-
339
339
  pieces.append(
340
340
  _compute_mean_tof_in_distance_range(
341
341
  simulation=simulation,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: essreduce
3
- Version: 25.7.0
3
+ Version: 25.7.1
4
4
  Summary: Common data reduction tools for the ESS facility
5
5
  Author: Scipp contributors
6
6
  License: BSD 3-Clause License
@@ -135,6 +135,7 @@ tests/nexus/json_nexus_examples/instrument.json
135
135
  tests/nexus/json_nexus_examples/log.json
136
136
  tests/scripts/test_grow_nexus.py
137
137
  tests/time_of_flight/interpolator_test.py
138
+ tests/time_of_flight/lut_test.py
138
139
  tests/time_of_flight/resample_tests.py
139
140
  tests/time_of_flight/unwrap_test.py
140
141
  tests/time_of_flight/wfm_test.py
@@ -0,0 +1,114 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2025 Scipp contributors (https://github.com/scipp)
3
+ import pytest
4
+ import scipp as sc
5
+
6
+ from ess.reduce import time_of_flight
7
+ from ess.reduce.time_of_flight import TofLookupTableWorkflow
8
+
9
+ sl = pytest.importorskip("sciline")
10
+
11
+
12
+ def test_lut_workflow_computes_table():
13
+ wf = TofLookupTableWorkflow()
14
+ wf[time_of_flight.DiskChoppers] = {}
15
+ wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
16
+ wf[time_of_flight.NumberOfSimulatedNeutrons] = 100_000
17
+ wf[time_of_flight.SimulationSeed] = 60
18
+ wf[time_of_flight.PulseStride] = 1
19
+
20
+ lmin, lmax = sc.scalar(25.0, unit='m'), sc.scalar(35.0, unit='m')
21
+ dres = sc.scalar(0.1, unit='m')
22
+ tres = sc.scalar(333.0, unit='us')
23
+
24
+ wf[time_of_flight.LtotalRange] = lmin, lmax
25
+ wf[time_of_flight.DistanceResolution] = dres
26
+ wf[time_of_flight.TimeResolution] = tres
27
+
28
+ table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
29
+
30
+ assert table.coords['distance'].min() < lmin
31
+ assert table.coords['distance'].max() > lmax
32
+ assert table.coords['event_time_offset'].max() == sc.scalar(1 / 14, unit='s').to(
33
+ unit=table.coords['event_time_offset'].unit
34
+ )
35
+ assert sc.isclose(table.coords['distance_resolution'], dres)
36
+ # Note that the time resolution is not exactly preserved since we want the table to
37
+ # span exactly the frame period.
38
+ assert sc.isclose(table.coords['time_resolution'], tres, rtol=sc.scalar(0.01))
39
+
40
+
41
+ def test_lut_workflow_computes_table_in_chunks():
42
+ wf = TofLookupTableWorkflow()
43
+ wf[time_of_flight.DiskChoppers] = {}
44
+ wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
45
+ # Lots of neutrons activates chunking
46
+ wf[time_of_flight.NumberOfSimulatedNeutrons] = 1_000_000
47
+ wf[time_of_flight.SimulationSeed] = 61
48
+ wf[time_of_flight.PulseStride] = 1
49
+
50
+ lmin, lmax = sc.scalar(25.0, unit='m'), sc.scalar(35.0, unit='m')
51
+ dres = sc.scalar(0.1, unit='m')
52
+ tres = sc.scalar(250.0, unit='us')
53
+
54
+ wf[time_of_flight.LtotalRange] = lmin, lmax
55
+ wf[time_of_flight.DistanceResolution] = dres
56
+ wf[time_of_flight.TimeResolution] = tres
57
+
58
+ table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
59
+
60
+ assert table.coords['distance'].min() < lmin
61
+ assert table.coords['distance'].max() > lmax
62
+ assert table.coords['event_time_offset'].max() == sc.scalar(1 / 14, unit='s').to(
63
+ unit=table.coords['event_time_offset'].unit
64
+ )
65
+ assert sc.isclose(table.coords['distance_resolution'], dres)
66
+ # Note that the time resolution is not exactly preserved since we want the table to
67
+ # span exactly the frame period.
68
+ assert sc.isclose(table.coords['time_resolution'], tres, rtol=sc.scalar(0.01))
69
+
70
+
71
+ def test_lut_workflow_pulse_skipping():
72
+ wf = TofLookupTableWorkflow()
73
+ wf[time_of_flight.DiskChoppers] = {}
74
+ wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
75
+ wf[time_of_flight.NumberOfSimulatedNeutrons] = 100_000
76
+ wf[time_of_flight.SimulationSeed] = 62
77
+ wf[time_of_flight.PulseStride] = 2
78
+
79
+ lmin, lmax = sc.scalar(55.0, unit='m'), sc.scalar(65.0, unit='m')
80
+ dres = sc.scalar(0.1, unit='m')
81
+ tres = sc.scalar(250.0, unit='us')
82
+
83
+ wf[time_of_flight.LtotalRange] = lmin, lmax
84
+ wf[time_of_flight.DistanceResolution] = dres
85
+ wf[time_of_flight.TimeResolution] = tres
86
+
87
+ table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
88
+
89
+ assert table.coords['event_time_offset'].max() == 2 * sc.scalar(
90
+ 1 / 14, unit='s'
91
+ ).to(unit=table.coords['event_time_offset'].unit)
92
+
93
+
94
+ def test_lut_workflow_non_exact_distance_range():
95
+ wf = TofLookupTableWorkflow()
96
+ wf[time_of_flight.DiskChoppers] = {}
97
+ wf[time_of_flight.SourcePosition] = sc.vector([0, 0, 0], unit='m')
98
+ wf[time_of_flight.NumberOfSimulatedNeutrons] = 100_000
99
+ wf[time_of_flight.SimulationSeed] = 63
100
+ wf[time_of_flight.PulseStride] = 1
101
+
102
+ lmin, lmax = sc.scalar(25.0, unit='m'), sc.scalar(35.0, unit='m')
103
+ dres = sc.scalar(0.33, unit='m')
104
+ tres = sc.scalar(250.0, unit='us')
105
+
106
+ wf[time_of_flight.LtotalRange] = lmin, lmax
107
+ wf[time_of_flight.DistanceResolution] = dres
108
+ wf[time_of_flight.TimeResolution] = tres
109
+
110
+ table = wf.compute(time_of_flight.TimeOfFlightLookupTable)
111
+
112
+ assert table.coords['distance'].min() < lmin
113
+ assert table.coords['distance'].max() > lmax
114
+ assert sc.isclose(table.coords['distance_resolution'], dres)
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