From 172f5ec27082ea1254b0f7d75b456deb3412df5d Mon Sep 17 00:00:00 2001 From: Neil Vaytet Date: Wed, 4 Feb 2026 15:54:13 +0100 Subject: [PATCH 1/4] update notebook and add new table to data registry --- docs/odin/odin-make-tof-lookup-table.ipynb | 13 ++++++------- src/ess/odin/data.py | 20 +++++++++++++++++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/odin/odin-make-tof-lookup-table.ipynb b/docs/odin/odin-make-tof-lookup-table.ipynb index 6478cfa..9ff89d1 100644 --- a/docs/odin/odin-make-tof-lookup-table.ipynb +++ b/docs/odin/odin-make-tof-lookup-table.ipynb @@ -45,10 +45,10 @@ "wf[time_of_flight.NumberOfSimulatedNeutrons] = 200_000 # Increase this number for more reliable results\n", "wf[time_of_flight.SimulationSeed] = 1234\n", "wf[time_of_flight.PulseStride] = 2\n", - "wf[time_of_flight.LtotalRange] = sc.scalar(55.0, unit=\"m\"), sc.scalar(65.0, unit=\"m\")\n", + "wf[time_of_flight.LtotalRange] = sc.scalar(5.0, unit=\"m\"), sc.scalar(65.0, unit=\"m\")\n", "wf[time_of_flight.DistanceResolution] = sc.scalar(0.1, unit=\"m\")\n", "wf[time_of_flight.TimeResolution] = sc.scalar(250.0, unit='us')\n", - "wf[time_of_flight.LookupTableRelativeErrorThreshold] = 0.02" + "wf[time_of_flight.LookupTableRelativeErrorThreshold] = 1.0" ] }, { @@ -67,7 +67,7 @@ "outputs": [], "source": [ "table = wf.compute(time_of_flight.TimeOfFlightLookupTable)\n", - "table" + "table.array" ] }, { @@ -95,10 +95,8 @@ "metadata": {}, "outputs": [], "source": [ - "# Save chopper metadata\n", - "table.choppers = sc.DataGroup(disk_choppers)\n", "# Write to file\n", - "table.save_hdf5('ODIN-tof-lookup-table.h5')" + "table.save_hdf5('ODIN-tof-lookup-table-5m-65m.h5')" ] } ], @@ -117,7 +115,8 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.12.7" } }, "nbformat": 4, diff --git a/src/ess/odin/data.py b/src/ess/odin/data.py index ac17369..31ab32a 100644 --- a/src/ess/odin/data.py +++ b/src/ess/odin/data.py @@ -15,6 +15,7 @@ "iron_simulation_sample_large.nxs": "md5:c162b6abeccb51984880d8d5002bae95", "iron_simulation_sample_small.nxs": "md5:dda6fb30aa88780c5a3d4cef6ea05278", "ODIN-tof-lookup-table.h5": "md5:e657021f4508f167b2a2eb550853b06b", + "ODIN-tof-lookup-table-5m-65m.h5": "md5:7b8b3afac20512935d9e6b44d740d06c", }, ) @@ -59,13 +60,26 @@ def iron_simulation_ob_large() -> pathlib.Path: return _registry.get_path("iron_simulation_ob_large.nxs") -def odin_tof_lookup_table() -> pathlib.Path: +def odin_tof_lookup_table(full_beamline: bool = False) -> pathlib.Path: """ Odin TOF lookup table. This file is used to convert the time-of-flight to wavelength. + Use the ``full_beamline`` argument to get the lookup table for the full beamline, + which covers the range 5-65m. + The fulle range should be prefered, and the shorter range is kept for + retro-compatibility. - This table was computed using `Create a time-of-flight lookup table for ODIN + These tables were computed using `Create a time-of-flight lookup table for ODIN <../../odin/odin-make-tof-lookup-table.rst>`_ with ``NumberOfSimulatedNeutrons = 5_000_000``. + + Parameters + ---------- + full_beamline: + Whether to return the lookup table for the full beamline (5-65m) or for the + range 55-65m. """ - return _registry.get_path("ODIN-tof-lookup-table.h5") + if full_beamline: + return _registry.get_path("ODIN-tof-lookup-table-5m-65m.h5") + else: + return _registry.get_path("ODIN-tof-lookup-table.h5") From 2a8f6fa990dad06573758e3b1370743f0b82bac7 Mon Sep 17 00:00:00 2001 From: Neil Vaytet Date: Wed, 4 Feb 2026 15:54:56 +0100 Subject: [PATCH 2/4] bump essreduce requirement --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8bb1ce2..5a844c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dependencies = [ "scippneutron>=24.12.0", "scippnexus>=23.11.1", "tifffile>=2024.7.2", - "essreduce>=25.11.2", + "essreduce>=26.2.0", "scitiff>=25.7", ] From 019514360335f0814bb4cb110758a72b48b521e5 Mon Sep 17 00:00:00 2001 From: Neil Vaytet Date: Wed, 4 Feb 2026 16:02:15 +0100 Subject: [PATCH 3/4] update deps --- requirements/base.in | 2 +- requirements/base.txt | 2 +- requirements/docs.txt | 4 +--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index 9e1a2c5..5345c7c 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -10,5 +10,5 @@ scipp>=25.4.0 scippneutron>=24.12.0 scippnexus>=23.11.1 tifffile>=2024.7.2 -essreduce>=25.11.2 +essreduce>=26.2.0 scitiff>=25.7 diff --git a/requirements/base.txt b/requirements/base.txt index 633b6fd..23dedf1 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,4 @@ -# SHA1:a1100845ace4b19ad8a759324efbe63c69022f7b +# SHA1:fcc863d6dd3fc563d169eb78aedec09467a24bb3 # # This file was generated by pip-compile-multi. # To update, run: diff --git a/requirements/docs.txt b/requirements/docs.txt index 6d8f566..34ac36d 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -10,8 +10,6 @@ accessible-pygments==0.0.5 # via pydata-sphinx-theme alabaster==1.0.0 # via sphinx -appnope==0.1.4 - # via ipykernel autodoc-pydantic==2.2.0 # via -r docs.in babel==2.18.0 @@ -160,7 +158,7 @@ tornado==6.5.4 # via # ipykernel # jupyter-client -tqdm==4.67.2 +tqdm==4.67.3 # via -r docs.in urllib3==2.6.3 # via requests From 49b58edc490991921ddcd08ce613939ab262c32d Mon Sep 17 00:00:00 2001 From: Neil Vaytet Date: Wed, 4 Feb 2026 16:07:39 +0100 Subject: [PATCH 4/4] spelling --- src/ess/odin/data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ess/odin/data.py b/src/ess/odin/data.py index 31ab32a..49ebee2 100644 --- a/src/ess/odin/data.py +++ b/src/ess/odin/data.py @@ -66,7 +66,7 @@ def odin_tof_lookup_table(full_beamline: bool = False) -> pathlib.Path: This file is used to convert the time-of-flight to wavelength. Use the ``full_beamline`` argument to get the lookup table for the full beamline, which covers the range 5-65m. - The fulle range should be prefered, and the shorter range is kept for + The full range should be preferred, and the shorter range is kept for retro-compatibility. These tables were computed using `Create a time-of-flight lookup table for ODIN