View job log here
ValueError: No strictly increasing sections found.
In provider ess.reduce.unwrap.to_wavelength.monitor_wavelength_data(
monitor_data: ess.reduce.nexus.types.RawMonitor[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1],
lookup: ess.reduce.unwrap.types.ErrorLimitedLookupTable[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1],
ltotal: ess.reduce.unwrap.types.MonitorLtotal[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1],
pulse_stride_offset: ess.reduce.unwrap.types.PulseStrideOffset,
keep_event_time_offset: ess.reduce.unwrap.types.KeepEventTimeOffset,
backend: <enum 'FrameUnwrapBackend'>,
) -> ess.reduce.unwrap.types.WavelengthMonitor[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1]
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/unwrap/resample.py:91: ValueError
Full output
workflow = <sciline.pipeline.Pipeline object at 0x7f811872fe30>
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/coda_odin_999999_00022385.hdf')
monitor_index = 2
@pytest.mark.parametrize("monitor_index", [1, 2, 3])
def test_can_compute_wavelength__beam_monitor_(
workflow: sciline.Pipeline, coda_nexus_file_path: Path, monitor_index: int
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusName[BeamMonitor1]] = f"beam_monitor_{monitor_index}"
> result = workflow.compute(WavelengthMonitor[SampleRun, BeamMonitor1])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/odin/odin_reduction_test.py:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/task_graph.py:122: in compute
return self._scheduler.get(self._graph, [targets], reporter=reporter)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/scheduler.py:140: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/threaded.py:115: in get
results = get_async(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:547: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:351: in reraise
raise exc
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/local.py:256: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/_task_spec.py:768: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/dask/utils.py:81: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/sciline/_provider.py:145: in __call__
return self._func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/unwrap/to_wavelength.py:621: in monitor_wavelength_data
_compute_wavelength_data(
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/unwrap/to_wavelength.py:531: in _compute_wavelength_data
out = rebin_strictly_increasing(data, dim='wavelength')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
da = <scipp.DataArray>
Dimensions: Sizes[time:0, wavelength:716, ]
Coordinates:
* position vector3 ...e]) [nan, nan, ..., nan, nan]
Data:
float64 [dimensionless] (time, wavelength) [] []
dim = 'wavelength'
def rebin_strictly_increasing(da: sc.DataArray, dim: str) -> sc.DataArray:
"""
Find strictly monotonic sections in a coordinate dimension and rebin the data array
into a regular grid based on these sections.
"""
# Ensure the dimension is named like the coordinate.
da = da.rename_dims({da.coords[dim].dim: dim})
slices = find_strictly_increasing_sections(da.coords[dim])
if len(slices) == 1:
# Slices refer to the indices in the coord, which are bin edges.
# For slicing data we need to stop at the last index minus one.
return da[dim, slices[0].start : slices[0].stop - 1]
if not slices:
> raise ValueError("No strictly increasing sections found.")
E ValueError: No strictly increasing sections found.
E In provider ess.reduce.unwrap.to_wavelength.monitor_wavelength_data(
E monitor_data: ess.reduce.nexus.types.RawMonitor[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1],
E lookup: ess.reduce.unwrap.types.ErrorLimitedLookupTable[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1],
E ltotal: ess.reduce.unwrap.types.MonitorLtotal[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1],
E pulse_stride_offset: ess.reduce.unwrap.types.PulseStrideOffset,
E keep_event_time_offset: ess.reduce.unwrap.types.KeepEventTimeOffset,
E backend: <enum 'FrameUnwrapBackend'>,
E ) -> ess.reduce.unwrap.types.WavelengthMonitor[ess.imaging.types.SampleRun, ess.imaging.types.BeamMonitor1]
.tox/nexusfiles-scipp-odin/lib/python3.12/site-packages/ess/reduce/unwrap/resample.py:91: ValueError