From 05e026231680765da43bc6d214e5a9bbf3fe981e Mon Sep 17 00:00:00 2001 From: x12sa Date: Mon, 16 Feb 2026 15:22:05 +0100 Subject: [PATCH] fix(ferma-scan): fix flomni, lamni and omny fermat scans. add exp_time and frames_per_trigger --- csaxs_bec/scans/LamNIFermatScan.py | 5 +++-- csaxs_bec/scans/flomni_fermat_scan.py | 5 ++++- csaxs_bec/scans/omny_fermat_scan.py | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/csaxs_bec/scans/LamNIFermatScan.py b/csaxs_bec/scans/LamNIFermatScan.py index d9fdf9e..74f8a55 100644 --- a/csaxs_bec/scans/LamNIFermatScan.py +++ b/csaxs_bec/scans/LamNIFermatScan.py @@ -210,7 +210,7 @@ class LamNIFermatScan(ScanBase, LamNIMixin): arg_input = {} arg_bundle_size = {"bundle": len(arg_input), "min": None, "max": None} - def __init__(self, *args, parameter: dict = None, **kwargs): + def __init__(self, *args, parameter: dict = None, frames_per_trigger:int=1, exp_time:float=0,**kwargs): """ A LamNI scan following Fermat's spiral. @@ -233,7 +233,7 @@ class LamNIFermatScan(ScanBase, LamNIMixin): >>> scans.lamni_fermat_scan(fov_size=[20, 25], center_x=0.02, center_y=0, shift_x=0, shift_y=0, angle=0, step=0.5, fov_circular=0, exp_time=0.1) """ - super().__init__(parameter=parameter, **kwargs) + super().__init__(parameter=parameter, frames_per_trigger=frames_per_trigger, exp_time=exp_time,**kwargs) self.axis = [] scan_kwargs = parameter.get("kwargs", {}) self.fov_size = scan_kwargs.get("fov_size") @@ -482,6 +482,7 @@ class LamNIFermatScan(ScanBase, LamNIMixin): yield from self.open_scan() yield from self.stage() yield from self.run_baseline_reading() + yield from self.pre_scan() yield from self.scan_core() yield from self.finalize() yield from self.unstage() diff --git a/csaxs_bec/scans/flomni_fermat_scan.py b/csaxs_bec/scans/flomni_fermat_scan.py index 7402358..889d86e 100644 --- a/csaxs_bec/scans/flomni_fermat_scan.py +++ b/csaxs_bec/scans/flomni_fermat_scan.py @@ -52,6 +52,7 @@ class FlomniFermatScan(SyncFlyScanBase): angle: float = None, corridor_size: float = 3, parameter: dict = None, + frames_per_trigger:int=1, **kwargs, ): """ @@ -63,6 +64,7 @@ class FlomniFermatScan(SyncFlyScanBase): cenx(float) [um]: center position in x. ceny(float) [um]: center position in y. exp_time(float) [s]: exposure time + frames_per_trigger(int) : Number of burst frames per point step(float) [um]: stepsize zshift(float) [um]: shift in z angle(float) [deg]: rotation angle (will rotate first) @@ -74,7 +76,7 @@ class FlomniFermatScan(SyncFlyScanBase): >>> scans.flomni_fermat_scan(fovx=20, fovy=25, cenx=0.02, ceny=0, zshift=0, angle=0, step=0.5, exp_time=0.01) """ - super().__init__(parameter=parameter, exp_time=exp_time, **kwargs) + super().__init__(parameter=parameter, exp_time=exp_time, frames_per_trigger=frames_per_trigger, **kwargs) self.show_live_table = False self.axis = [] self.fovx = fovx @@ -323,6 +325,7 @@ class FlomniFermatScan(SyncFlyScanBase): yield from self.stage() yield from self.run_baseline_reading() yield from self._prepare_setup_part2() + yield from self.pre_scan() yield from self.scan_core() yield from self.finalize() yield from self.unstage() diff --git a/csaxs_bec/scans/omny_fermat_scan.py b/csaxs_bec/scans/omny_fermat_scan.py index 9cb902b..38269b7 100644 --- a/csaxs_bec/scans/omny_fermat_scan.py +++ b/csaxs_bec/scans/omny_fermat_scan.py @@ -51,6 +51,7 @@ class OMNYFermatScan(SyncFlyScanBase): angle: float = None, corridor_size: float = 3, parameter: dict = None, + frames_per_trigger:int=1, **kwargs, ): """ @@ -62,6 +63,7 @@ class OMNYFermatScan(SyncFlyScanBase): cenx(float) [um]: center position in x. ceny(float) [um]: center position in y. exp_time(float) [s]: exposure time + frames_per_trigger:int: Number of burst frames per trigger, defaults to 1. step(float) [um]: stepsize zshift(float) [um]: shift in z angle(float) [deg]: rotation angle (will rotate first) @@ -73,7 +75,7 @@ class OMNYFermatScan(SyncFlyScanBase): >>> scans.omny_fermat_scan(fovx=20, fovy=25, cenx=10, ceny=0, zshift=0, angle=0, step=2, exp_time=0.01) """ - super().__init__(parameter=parameter, **kwargs) + super().__init__(parameter=parameter, exp_time=exp_time, frames_per_trigger=frames_per_trigger, **kwargs) self.axis = [] self.fovx = fovx self.fovy = fovy @@ -299,6 +301,7 @@ class OMNYFermatScan(SyncFlyScanBase): yield from self.stage() yield from self.run_baseline_reading() yield from self._prepare_setup_part2() + yield from self.pre_scan() yield from self.scan_core() yield from self.finalize() yield from self.unstage()