From 323f500f438bea2ada52523cc1142df41dde7f1e Mon Sep 17 00:00:00 2001 From: Peter Somhorst <> Date: Wed, 4 Nov 2026 16:59:07 +0100 Subject: [PATCH 1/2] Fix phase and event time when time is wrapped --- eitprocessing/datahandling/loading/draeger.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/eitprocessing/datahandling/loading/draeger.py b/eitprocessing/datahandling/loading/draeger.py index 5fb048fd8..0e93f6851 100644 --- a/eitprocessing/datahandling/loading/draeger.py +++ b/eitprocessing/datahandling/loading/draeger.py @@ -154,7 +154,7 @@ def load_from_single_path( # noqa: PLR0915 unit=None, category="minvalue", derived_from=[eit_data], - time=np.array([t for t, d in phases if d == -1]), + time=np.array([time[i] for i, d in phases if d == -1]), ), ) sparsedata_collection.add( @@ -164,15 +164,15 @@ def load_from_single_path( # noqa: PLR0915 unit=None, category="maxvalue", derived_from=[eit_data], - time=np.array([t for t, d in phases if d == 1]), + time=np.array([time[i] for i, d in phases if d == 1]), ), ) if events: - time_, events_ = zip(*events, strict=True) - time = np.array(time_) + event_idxs, events_ = zip(*events, strict=True) + event_time = time[list(event_idxs)] events = list(events_) else: - time, events = np.array([]), [] + event_time, events = np.array([]), [] sparsedata_collection.add( SparseData( label="events_(draeger)", @@ -180,7 +180,7 @@ def load_from_single_path( # noqa: PLR0915 unit=None, category="event", derived_from=[eit_data], - time=time, + time=event_time, values=events, ), ) @@ -311,12 +311,12 @@ def _read_frame( # Therefore, check whether the event marker has changed with # respect to the most recent event. If so, create a new event. if ((previous_marker is not None) and (event_marker > previous_marker)) or (index == 0 and event_text): - events.append((frame_time, Event(event_marker, event_text))) + events.append((index, Event(event_marker, event_text))) if timing_error: warnings.warn("A timing error was encountered during loading.", RuntimeWarning, stacklevel=2) # TODO: expand on what timing errors are in some documentation. if min_max_flag in (1, -1): - phases.append((frame_time, min_max_flag)) + phases.append((index, min_max_flag)) return event_marker From b4fba4b768d8111741393c2f3c0fef54bab8c7c2 Mon Sep 17 00:00:00 2001 From: Peter Somhorst <> Date: Wed, 4 Nov 2026 17:04:57 +0100 Subject: [PATCH 2/2] Add test for slicing time wrapped data --- tests/eitdata/test_loading_draeger.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/eitdata/test_loading_draeger.py b/tests/eitdata/test_loading_draeger.py index 1bea8d9e7..428dbd563 100644 --- a/tests/eitdata/test_loading_draeger.py +++ b/tests/eitdata/test_loading_draeger.py @@ -80,6 +80,8 @@ def test_load_draeger( "Loading without sample frequency should yield the same data" ) + assert len(sequence[:100]) == 100 + def test_draeger_20hz_healthy_volunteer_2_differ( draeger_20hz_healthy_volunteer: Sequence, draeger_20hz_healthy_volunteer_fixed_rr: Sequence