From 5d714e1fa37114106c85fc42127413eaed86c22a Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Tue, 30 Jul 2024 18:09:56 +0200 Subject: [PATCH] moved spi_analysis out of work function --- dap/algos/__init__.py | 1 + dap/algos/spiana.py | 16 ++++++++++++++++ dap/worker.py | 16 ++-------------- 3 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 dap/algos/spiana.py diff --git a/dap/algos/__init__.py b/dap/algos/__init__.py index a738167..7d98ed2 100644 --- a/dap/algos/__init__.py +++ b/dap/algos/__init__.py @@ -2,5 +2,6 @@ from .radprof import calc_radial_integration from .addmask import calc_apply_additional_mask from .peakfind import calc_peakfinder_analysis +from .spiana import calc_spi_analysis diff --git a/dap/algos/spiana.py b/dap/algos/spiana.py new file mode 100644 index 0000000..9e8235e --- /dev/null +++ b/dap/algos/spiana.py @@ -0,0 +1,16 @@ + +def calc_spi_analysis(results): + if "spi_limit" in results and len(results["spi_limit"]) == 2: + + number_of_spots = 0 + if results["roi_intensities_normalised"][0] >= results["spi_limit"][0]: + number_of_spots += 25 + if results["roi_intensities_normalised"][1] >= results["spi_limit"][1]: + number_of_spots += 50 + + results["number_of_spots"] = number_of_spots + if number_of_spots > 0: + results["is_hit_frame"] = True + + + diff --git a/dap/worker.py b/dap/worker.py index 9de6835..257b31b 100644 --- a/dap/worker.py +++ b/dap/worker.py @@ -7,7 +7,7 @@ from time import sleep import jungfrau_utils as ju import numpy as np -from algos import calc_radial_integration, calc_apply_additional_mask, calc_peakfinder_analysis +from algos import calc_radial_integration, calc_apply_additional_mask, calc_peakfinder_analysis, calc_spi_analysis from zmqsocks import ZMQSockets from utils import json_load, read_bit @@ -227,20 +227,8 @@ def work(backend_address, accumulator_host, accumulator_port, visualisation_host # SPI analysis do_spi_analysis = results.get("do_spi_analysis", False) - if do_spi_analysis and "roi_intensities_normalised" in results and len(results["roi_intensities_normalised"]) >= 2: - - if "spi_limit" in results and len(results["spi_limit"]) == 2: - - number_of_spots = 0 - if results["roi_intensities_normalised"][0] >= results["spi_limit"][0]: - number_of_spots += 25 - if results["roi_intensities_normalised"][1] >= results["spi_limit"][1]: - number_of_spots += 50 - - results["number_of_spots"] = number_of_spots - if number_of_spots > 0: - results["is_hit_frame"] = True + calc_spi_analysis(results) # in case all needed parameters are present, make peakfinding do_peakfinder_analysis = results.get("do_peakfinder_analysis", False)