Files
dap/dap/algos/jfdata.py
T

43 lines
1.4 KiB
Python

import numpy as np
import jungfrau_utils as ju
from .addmask import calc_apply_additional_mask
class JFData:
def __init__(self):
self.ju_stream_adapter = ju.StreamAdapter()
self.id_pixel_mask_corrected = None
self.pixel_mask_pf = None
def get_pixel_mask(self, results, double_pixels):
pixel_mask_corrected = self.ju_stream_adapter.handler.get_pixel_mask(double_pixels=double_pixels)
if pixel_mask_corrected is None:
self.id_pixel_mask_corrected = None
self.pixel_mask_pf = None
return None
# starting from ju 3.3.1 pedestal file is cached in library, re-calculated only if parameters (and/or pedestal file) have changed
new_id_pixel_mask_corrected = id(pixel_mask_corrected)
old_id_pixel_mask_corrected = self.id_pixel_mask_corrected
if new_id_pixel_mask_corrected == old_id_pixel_mask_corrected:
return self.pixel_mask_pf
pixel_mask_pf = np.ascontiguousarray(pixel_mask_corrected)
calc_apply_additional_mask(results, pixel_mask_pf) # changes pixel_mask_pf in place
self.id_pixel_mask_corrected = new_id_pixel_mask_corrected
self.pixel_mask_pf = pixel_mask_pf
return pixel_mask_pf
def get_saturated_pixels(self, image, double_pixels):
return self.ju_stream_adapter.handler.get_saturated_pixels(image, double_pixels=double_pixels)