renamed: pixel_mask_pf -> pixel_mask

This commit is contained in:
2025-10-25 20:54:30 +02:00
parent c1626507ad
commit 2e2b404f7c
7 changed files with 52 additions and 52 deletions

View File

@@ -1,6 +1,6 @@
#TODO: find a better way to handle this
def calc_apply_additional_mask(results, pixel_mask_pf):
def calc_apply_additional_mask(results, pixel_mask):
apply_additional_mask = results.get("apply_additional_mask", False)
if not apply_additional_mask:
return
@@ -11,64 +11,64 @@ def calc_apply_additional_mask(results, pixel_mask_pf):
if detector_name == "JF06T08V07":
# edge pixels
pixel_mask_pf[0:1030, 1100] = 0
pixel_mask_pf[0:1030, 1613] = 0
pixel_mask_pf[0:1030, 1650] = 0
pixel_mask[0:1030, 1100] = 0
pixel_mask[0:1030, 1613] = 0
pixel_mask[0:1030, 1650] = 0
pixel_mask_pf[67, 0:1063] = 0
pixel_mask[67, 0:1063] = 0
pixel_mask_pf[67:1097, 513] = 0
pixel_mask_pf[67:1097, 550] = 0
pixel_mask_pf[67:1097, 1063] = 0
pixel_mask[67:1097, 513] = 0
pixel_mask[67:1097, 550] = 0
pixel_mask[67:1097, 1063] = 0
pixel_mask_pf[1029, 1100:1614] = 0
pixel_mask_pf[1029, 1650:2163] = 0
pixel_mask[1029, 1100:1614] = 0
pixel_mask[1029, 1650:2163] = 0
pixel_mask_pf[1039, 1168:1682] = 0
pixel_mask_pf[1039, 1718:2230] = 0
pixel_mask[1039, 1168:1682] = 0
pixel_mask[1039, 1718:2230] = 0
pixel_mask_pf[1039:2069, 1168] = 0
pixel_mask_pf[1039:2069, 1681] = 0
pixel_mask_pf[1039:2069, 1718] = 0
pixel_mask[1039:2069, 1168] = 0
pixel_mask[1039:2069, 1681] = 0
pixel_mask[1039:2069, 1718] = 0
pixel_mask_pf[1096, 0:513] = 0
pixel_mask_pf[1096, 550:1064] = 0
pixel_mask[1096, 0:513] = 0
pixel_mask[1096, 550:1064] = 0
pixel_mask_pf[1106, 68:582] = 0
pixel_mask_pf[1106, 618:1132] = 0
pixel_mask[1106, 68:582] = 0
pixel_mask[1106, 618:1132] = 0
pixel_mask_pf[1106:2136, 581] = 0
pixel_mask_pf[1106:2136, 618] = 0
pixel_mask_pf[1106:2136, 1131] = 0
pixel_mask[1106:2136, 581] = 0
pixel_mask[1106:2136, 618] = 0
pixel_mask[1106:2136, 1131] = 0
pixel_mask_pf[2068, 1168:2232] = 0
pixel_mask[2068, 1168:2232] = 0
# first bad region in left bottom inner module
pixel_mask_pf[842:1097, 669:671] = 0
pixel_mask[842:1097, 669:671] = 0
# second bad region in left bottom inner module
pixel_mask_pf[1094, 620:807] = 0
pixel_mask[1094, 620:807] = 0
# vertical line in upper left bottom module
pixel_mask_pf[842:1072, 87:90] = 0
pixel_mask[842:1072, 87:90] = 0
# horizontal line?
pixel_mask_pf[1794, 1503:1550] = 0
pixel_mask[1794, 1503:1550] = 0
# killed by CC
pixel_mask_pf[1499, 655:692] = 0
pixel_mask[1499, 655:692] = 0
# module 12 right column
pixel_mask_pf[68:1096, 1062] = 0
pixel_mask[68:1096, 1062] = 0
# module 16 left column
pixel_mask_pf[0:1028, 1101] = 0
pixel_mask[0:1028, 1101] = 0
elif detector_name == "JF17T16V01":
# mask module 11
pixel_mask_pf[2619:3333,1577:2607] = 0
pixel_mask[2619:3333,1577:2607] = 0

View File

@@ -5,7 +5,7 @@ import numpy as np
DEFAULT_MASK_DATASET = "mask_data"
def calc_apply_additional_mask_from_file(results, pixel_mask_pf):
def calc_apply_additional_mask_from_file(results, pixel_mask):
apply_additional_mask = results.get("apply_additional_mask_from_file", False)
if not apply_additional_mask:
return
@@ -31,6 +31,6 @@ def calc_apply_additional_mask_from_file(results, pixel_mask_pf):
return
try:
np.multiply(pixel_mask_pf, mask, out=pixel_mask_pf)
np.multiply(pixel_mask, mask, out=pixel_mask)
except Exception as error:
results["mask_error"] = f"Error applying additional mask from file {mask_file}:\n{error}"

View File

@@ -2,14 +2,14 @@ from .mask import calc_mask_pixels
from .thresh import threshold
def calc_apply_aggregation(results, data, pixel_mask_pf, aggregator):
def calc_apply_aggregation(results, data, pixel_mask, aggregator):
# last round was ready, restart
if aggregator.is_ready():
aggregator.reset()
calc_apply_threshold(results, data) # changes data in place
data = calc_aggregate(results, data, aggregator)
calc_mask_pixels(data, pixel_mask_pf) # changes data in place
calc_mask_pixels(data, pixel_mask) # changes data in place
aggregator.nmax = results.get("aggregation_max")
aggregation_is_ready = aggregator.is_ready()

View File

@@ -1,11 +1,11 @@
import numpy as np
def calc_mask_pixels(data, pixel_mask_pf):
if pixel_mask_pf is None:
def calc_mask_pixels(data, pixel_mask):
if pixel_mask is None:
return
data[~pixel_mask_pf] = np.nan
data[~pixel_mask] = np.nan

View File

@@ -5,12 +5,12 @@ import numpy as np
from peakfinder8_extension import peakfinder_8
def calc_peakfinder_analysis(results, data, pixel_mask_pf):
def calc_peakfinder_analysis(results, data, pixel_mask):
do_peakfinder_analysis = results.get("do_peakfinder_analysis", False)
if not do_peakfinder_analysis:
return
if pixel_mask_pf is None:
if pixel_mask is None:
return
for k in ("beam_center_x", "beam_center_y", "hitfinder_min_snr", "hitfinder_min_pix_count", "hitfinder_adc_thresh"):
@@ -39,7 +39,7 @@ def calc_peakfinder_analysis(results, data, pixel_mask_pf):
peak_list_x, peak_list_y, peak_list_value = peakfinder_8(
max_num_peaks,
data.astype(np.float32),
pixel_mask_pf.astype(np.int8),
pixel_mask.astype(np.int8),
pix_r.astype(np.float32),
asic_nx, asic_ny,
nasics_x, nasics_y,

View File

@@ -4,7 +4,7 @@ from .thresh import threshold
from .utils import npmemo
def calc_radial_integration(results, data, pixel_mask_pf):
def calc_radial_integration(results, data, pixel_mask):
do_radial_integration = results.get("do_radial_integration", False)
if not do_radial_integration:
return
@@ -12,14 +12,14 @@ def calc_radial_integration(results, data, pixel_mask_pf):
center_x = results["beam_center_x"]
center_y = results["beam_center_y"]
rad, norm = prepare_radial_profile(data.shape, center_x, center_y, pixel_mask_pf)
rad, norm = prepare_radial_profile(data.shape, center_x, center_y, pixel_mask)
r_min = min(rad)
r_max = max(rad) + 1
data = calc_apply_threshold(results, data)
rp = radial_profile(data, rad, norm, pixel_mask_pf)
rp = radial_profile(data, rad, norm, pixel_mask)
silent_min = results.get("radial_integration_silent_min", None)
silent_max = results.get("radial_integration_silent_max", None)

View File

@@ -105,32 +105,32 @@ def work(backend_addr, accumulator_addr, visualisation_addr, fn_config, skip_fra
if image is None:
continue
pixel_mask_pf = jfdata.get_pixel_mask(results, double_pixels)
pixel_mask = jfdata.get_pixel_mask(results, double_pixels)
if pixel_mask_pf is not None:
if pixel_mask is not None:
saturated_pixels_y, saturated_pixels_x = jfdata.get_saturated_pixels(raw_image, double_pixels)
results["saturated_pixels"] = len(saturated_pixels_x)
results["saturated_pixels_x"] = saturated_pixels_x.tolist()
results["saturated_pixels_y"] = saturated_pixels_y.tolist()
calc_radial_integration(results, image, pixel_mask_pf)
calc_radial_integration(results, image, pixel_mask)
pfimage = image.copy() #TODO: is this copy needed?
calc_mask_pixels(pfimage, pixel_mask_pf) # changes pfimage in place
calc_mask_pixels(pfimage, pixel_mask) # changes pfimage in place
calc_apply_threshold(results, pfimage) # changes pfimage in place
calc_roi(results, pfimage, pixel_mask_pf)
calc_roi(results, pfimage, pixel_mask)
calc_spi_analysis(results, pfimage)
calc_peakfinder_analysis(results, pfimage, pixel_mask_pf)
calc_peakfinder_analysis(results, pfimage, pixel_mask)
# ???
# Streak finder processing for convergent-beam diffraction experiments
# changes image and mask in place if do_snr=True in parameters file
image = calc_streakfinder_analysis(results, image, pixel_mask_pf)
image = calc_streakfinder_analysis(results, image, pixel_mask)
image, aggregation_is_ready = calc_apply_aggregation(results, image, pixel_mask_pf, aggregator)
image, aggregation_is_ready = calc_apply_aggregation(results, image, pixel_mask, aggregator)
results["type"] = str(image.dtype)
results["shape"] = image.shape