From 34acca20e8c29aaa133bc8519814823c099de09c Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Fri, 10 Oct 2025 17:19:16 +0200 Subject: [PATCH] DAQ: updated when b_factor and best res are calculated and better error handling during auto center --- daq/src/aaredaq/daq.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/daq/src/aaredaq/daq.py b/daq/src/aaredaq/daq.py index 0126b989..3b25cb7a 100644 --- a/daq/src/aaredaq/daq.py +++ b/daq/src/aaredaq/daq.py @@ -475,16 +475,12 @@ class AareDAQ: print('before centre_of_mass') print("COM by low res spots") + result_array = create_quality_filtered_array(images, 'spots_low_res', min_spots=None, - min_efficiency=1.0, min_background=None) + min_efficiency=1.0, min_background=None, min_low_res_spots=10.0) self.crystal_size = get_xtal_size(self.crystal_size, result_array, r) grid_mm_x, grid_mm_y, com = raster_centre_of_mass(result_array, r) - result_list = get_result_list_from_com(images, com) - - self.last_best_b_factor = get_best_b_factor(result_list) - self.last_best_res = get_best_res(result_list) - if grid_mm_x is None or grid_mm_y is None: print(f"using old method as COM is none or nan") grid_mm_x, grid_mm_y = identify_crystal_raster(result, r) @@ -492,6 +488,11 @@ class AareDAQ: if r.n_x == 1: new_delta_mm = self.sample_geometry.smargon_nudge(Coordinate(x=0, y=grid_mm_y)) else: + result_list = get_result_list_from_com(images, com) + print(result_list) + self.last_best_b_factor = get_best_b_factor(result_list) + self.last_best_res = get_best_res(result_list) + print("b_factor: ", self.last_best_b_factor, " best_res: ", self.last_best_res) new_delta_mm = self.sample_geometry.smargon_nudge(Coordinate(x=grid_mm_x, y=grid_mm_y)) print('after centre_of_mass') @@ -990,7 +991,6 @@ class AareDAQ: def measure(self, sample: SampleShortInfo) -> float: start = time.perf_counter() - formatted_date = datetime.now().strftime('%Y%m%d') sample_prefix = "{}/{}/{:02d}/{}".format( formatted_date, @@ -1033,6 +1033,8 @@ class AareDAQ: grid_size_mm=Coordinate(x=geom.beam_size_mm.x * 0.5, y=geom.beam_size_mm.y * 0.5), omega_deg=0 )): + params = self.smart_params + print(params) self.__cfg.zoom_mode = ZoomModeEnum.User self.__devs.samcam_settings = self.__cfg.zoom_settings.get_camera_settings(self.zoom) self.__rotation( RotationScanRequest(start_omega_deg=0, @@ -1042,12 +1044,14 @@ class AareDAQ: incr_omega_deg=0.2, steps=900,)) else: + print("auto center failed") self.__aare.axc_failed(sample) self.zoom = 1 self.__cfg.zoom_mode = ZoomModeEnum.User self.__devs.samcam_settings = self.__cfg.zoom_settings.get_camera_settings(self.zoom) self.__cfg.state_busy = False - except Exception: + except Exception as e: + print(f"Error in measure: {e}") self.__aare.sample_failed(sample) self.__cfg.state_busy = False end = time.perf_counter()