None
Test: nexusfiles-scipp|loki|loki_read_monitor_data|beam_monitor_4
None
None
None
None
None
None
None
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00009571.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
result = workflow.compute(RawMonitor[SampleRun, Incident])
> check_monitor_data(result)
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
da =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero datetime64 ... dims=(event: 0),
data=float32[counts],
coords={'event_time_offset':int32[ns], 'event_id':int32})
def _check_monitor_data(da: sc.DataArray) -> None:
if da.bins is not None:
assert da.dims == ("event_time_zero",)
assert "event_time_offset" in da.bins.coords
else:
assert set(da.dims) == {"time", "frame_time"}
assert "time" in da.coords
assert "frame_time" in da.coords
assert "position" in da.coords
> assert "source_position" in da.coords
E AssertionError: assert 'source_position' in
E + where
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:37: AssertionError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00009431.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
result = workflow.compute(RawMonitor[SampleRun, Incident])
> check_monitor_data(result)
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
da =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero datetime64 ... dims=(event: 0),
data=float32[counts],
coords={'event_time_offset':int32[ns], 'event_id':int32})
def _check_monitor_data(da: sc.DataArray) -> None:
if da.bins is not None:
assert da.dims == ("event_time_zero",)
assert "event_time_offset" in da.bins.coords
else:
assert set(da.dims) == {"time", "frame_time"}
assert "time" in da.coords
assert "frame_time" in da.coords
assert "position" in da.coords
> assert "source_position" in da.coords
E AssertionError: assert 'source_position' in
E + where
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:37: AssertionError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00009284.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
result = workflow.compute(RawMonitor[SampleRun, Incident])
> check_monitor_data(result)
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
da =
Dimensions: Sizes[event_time_zero:0, ]
Coordinates:
* event_time_zero datetime64 ... dims=(event: 0),
data=float32[counts],
coords={'event_time_offset':int32[ns], 'event_id':int32})
def _check_monitor_data(da: sc.DataArray) -> None:
if da.bins is not None:
assert da.dims == ("event_time_zero",)
assert "event_time_offset" in da.bins.coords
else:
assert set(da.dims) == {"time", "frame_time"}
assert "time" in da.coords
assert "frame_time" in da.coords
assert "position" in da.coords
> assert "source_position" in da.coords
E AssertionError: assert 'source_position' in
E + where
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dmsc_nightly/testing/nexusfiles/validation_fixtures.py:37: AssertionError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00009151.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-12-01T15:20:11.526190042]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-12-01T15:20:11.526190042]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00009004.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-12-01T15:20:11.526190042]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-12-01T15:20:11.526190042]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008857.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-12-01T15:20:11.526190042]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-12-01T15:20:11.526190042]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008717.hdf')
monitor_name = 'beam_monitor_4'
check_monitor_data =
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
check_monitor_data: Callable,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:107:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-12-01T15:20:11.526190042]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-12-01T15:20:11.526190042]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008577.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-11-28T13:56:11.587393283]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-11-28T13:56:11.587393283]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008430.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-11-28T13:56:11.587393283]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-11-28T13:56:11.587393283]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008297.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:453: in get_calibrated_monitor
nexus.extract_signal_data_array(monitor).assign_coords(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:65: in assign_coords
return _assign(self, 'coords', coords, **coords_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
name = 'coords', obj_attrs = None
kw_obj_attrs = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
out =
Dimensions: Sizes[event_time_zero:0, ]
Data:
int32
collected = {'position':
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 ... [m] (time) [(0, 0, 0)]
, 'source_position':
key = 'position'
value =
Dimensions: Sizes[time:1, ]
Coordinates:
* average_value float64 [m] () 0...ime) [2025-11-28T13:56:11.587393283]
Data:
vector3 [m] (time) [(0, 0, 0)]
def _assign(
obj: _T,
name: Literal['coords', 'masks'],
obj_attrs: dict[str, Variable] | None = None,
/,
**kw_obj_attrs: Variable,
) -> _T:
out = obj.copy(deep=False)
collected = combine_dict_args(obj_attrs, kw_obj_attrs)
for key, value in collected.items():
> getattr(out, name)[key] = value
^^^^^^^^^^^^^^^^^^^^^^^
E TypeError: __setitem__(): incompatible function arguments. The following argument types are supported:
E 1. (self: scipp._scipp.core.Coords, arg0: str, arg1: scipp._scipp.core.Variable) -> None
E
E Invoked with:
E , 'position',
E Dimensions: Sizes[time:1, ]
E Coordinates:
E * average_value float64 [m] () 0
E * maximum_value float64 [m] () 0
E * minimum_value float64 [m] () 0
E * time datetime64 [ns] (time) [2025-11-28T13:56:11.587393283]
E Data:
E vector3 [m] (time) [(0, 0, 0)]
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scipp/core/assignments.py:24: TypeError
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008164.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00008024.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007884.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007744.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007611.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007471.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007331.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007198.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00007058.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:159: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006925.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006785.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006645.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006505.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006365.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006225.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00006078.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/999999/raw/loki_999999_00005938.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00005787.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00005655.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00005522.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00005382.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:451: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00005242.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:446: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00005102.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:446: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00004962.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(RawMonitor[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:106:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:446: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00004682.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00004535.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00004395.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:134: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00004248.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:111: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00004108.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:111: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00003961.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:111: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning
workflow =
coda_nexus_file_path = PosixPath('/ess/data/coda/2025/999999/raw/loki_999999_00003896.hdf')
monitor_name = 'beam_monitor_4'
@pytest.mark.parametrize("monitor_name", [f"beam_monitor_{i}" for i in range(5)])
def test_loki_read_monitor_data(
workflow: sciline.Pipeline,
coda_nexus_file_path: Path,
monitor_name: str,
) -> None:
workflow[Filename[SampleRun]] = coda_nexus_file_path
workflow[NeXusMonitorName[Incident]] = monitor_name
> result = workflow.compute(MonitorData[SampleRun, Incident])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/nexusfiles-scipp/loki/loki_load_nexus_test.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/sciline/pipeline.py:191: in compute
return self.get(tp, **kwargs).compute(reporter=reporter)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/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-loki/lib/python3.12/site-packages/sciline/scheduler.py:119: in get
return self._dask_get(dsk, list(map(_to_dask_key, keys)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/threaded.py:91: in get
results = get_async(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:549: in get_async
raise_exception(exc, tb)
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:353: in reraise
raise exc
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/local.py:258: in execute_task
result = task(data)
^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/_task_spec.py:759: in __call__
return self.func(*new_argspec)
^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/dask/utils.py:80: in apply
return func(*args)
^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/workflow.py:485: in get_calibrated_monitor
monitor = nexus.compute_component_position(monitor)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/ess/reduce/nexus/_nexus_loader.py:111: in compute_component_position
return snx.compute_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:391: in compute_positions
return _with_positions(
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:442: in _with_positions
if (transform := chain.compute()) is not None:
^^^^^^^^^^^^^^^
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:270: in compute
transform = combine_transformations([t.build() for t in chain])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
chain = [
Dimensions: Sizes[time:0, ]
Coordinates:
* average_value float64 [m] () ... datetime64 [ns] (time) []
Data:
translation3 [m] (time) []
]
def combine_transformations(
chain: list[sc.DataArray | sc.Variable],
) -> sc.DataArray | sc.Variable:
"""
Take the product of a chain of transformations, handling potentially mismatching
time-dependence.
Time-dependent transformations are interpolated to a common time-coordinate.
"""
if any((x.sizes.get('time') == 0) for x in chain):
> warnings.warn(
UserWarning('depends_on chain {x} contains empty time-series, '),
stacklevel=2,
)
E UserWarning: depends_on chain {x} contains empty time-series,
.tox/nexusfiles-scipp-loki/lib/python3.12/site-packages/scippnexus/nxtransformations.py:180: UserWarning