From 0deb93eb0b51de7c373fa44be0b4a575e063c09a Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Mon, 2 Dec 2024 16:32:39 +0100 Subject: [PATCH] Set roi labels via statistics handler --- streamvis/common_apps/roi_intensities.py | 6 ++---- streamvis/jf_adapter.py | 2 ++ streamvis/jfjoch_adapter.py | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/streamvis/common_apps/roi_intensities.py b/streamvis/common_apps/roi_intensities.py index f71210e..365c94c 100644 --- a/streamvis/common_apps/roi_intensities.py +++ b/streamvis/common_apps/roi_intensities.py @@ -101,10 +101,8 @@ def update(): if len(plot.legend.items) != len(ys): plot.legend.items.clear() - for i in range(len(ys)): - plot.legend.items.append( - LegendItem(label=f"ROI_{i}", renderers=[lines[i], dash_lines[i]]) - ) + for i, label in enumerate(stats.roi_labels): + plot.legend.items.append(LegendItem(label=label, renderers=[lines[i], dash_lines[i]])) doc.add_root( diff --git a/streamvis/jf_adapter.py b/streamvis/jf_adapter.py index 7ee8dac..d54fee3 100644 --- a/streamvis/jf_adapter.py +++ b/streamvis/jf_adapter.py @@ -238,6 +238,7 @@ def __init__(self): self.hitrate_slow = Hitrate(step_size=1000) self.hitrate_slow_lon = Hitrate(step_size=1000) self.hitrate_slow_loff = Hitrate(step_size=1000) + self.roi_labels = [] self.roi_intensities = Intensities() self.roi_intensities_fast = Intensities(step_size=1, max_span=1200) self.roi_intensities_hit = Intensities() @@ -368,6 +369,7 @@ def parse(self, metadata, image): roi_intensities = metadata.get("roi_intensities_normalised") if roi_intensities is not None: + self.roi_labels = [f"ROI_{i}" for i in range(len(roi_intensities))] self.roi_intensities.update(pulse_id, roi_intensities) self.roi_intensities_fast.update(pulse_id, roi_intensities) if is_hit_frame: diff --git a/streamvis/jfjoch_adapter.py b/streamvis/jfjoch_adapter.py index 2fc7581..582f175 100644 --- a/streamvis/jfjoch_adapter.py +++ b/streamvis/jfjoch_adapter.py @@ -218,6 +218,7 @@ def __init__(self): self.hitrate_slow = Hitrate(step_size=1000) self.hitrate_slow_lon = Hitrate(step_size=1000) self.hitrate_slow_loff = Hitrate(step_size=1000) + self.roi_labels = [] self.roi_intensities = Intensities() self.roi_intensities_fast = Intensities(step_size=1, max_span=1200) self.roi_intensities_hit = Intensities() @@ -347,9 +348,12 @@ def parse(self, metadata, image): roi_integrals = metadata.get("roi_integrals") if roi_integrals is not None: + roi_labels = [] roi_intensities = [] - for roi_intensity in roi_integrals.values(): + for roi_label, roi_intensity in roi_integrals.items(): roi_intensities.append(roi_intensity["sum"]) + roi_labels.append(roi_label) + self.roi_labels = roi_labels if roi_intensities: self.roi_intensities.update(pulse_id, roi_intensities)