From 85e752cac99ac93b6b72da390439975625686d3d Mon Sep 17 00:00:00 2001 From: Egor Sobolev <egor.sobolev@xfel.eu> Date: Tue, 23 Jul 2024 20:42:34 +0200 Subject: [PATCH] Write detector resolution in crystfel geometry file, fix type issue for binary mask bitwise operations --- src/geomtools/__init__.py | 5 +++-- src/geomtools/detector/crystfel_frm.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/geomtools/__init__.py b/src/geomtools/__init__.py index 3f182b0..7dbf429 100644 --- a/src/geomtools/__init__.py +++ b/src/geomtools/__init__.py @@ -1,6 +1,7 @@ from .detector import ( # noqa E401 - assemble_data, get_pixel_positions, pixels_to_image, plot_data_on_detector, - plot_detector_layout, read_crystfel_geom, write_crystfel_geom) + assemble_data, get_detector_shape, get_pixel_positions, pixels_to_image, + plot_data_on_detector, plot_detector_layout, read_crystfel_geom, + write_crystfel_geom) from .sfx import ( # noqa E401 avg_pixel_displacement, badpixels_mask, cell_volume, ellipse, extract_cell, extract_geometry, gauss2d_fit, get_min_bragg_dist, get_peak_position, diff --git a/src/geomtools/detector/crystfel_frm.py b/src/geomtools/detector/crystfel_frm.py index 0319151..008ea5f 100644 --- a/src/geomtools/detector/crystfel_frm.py +++ b/src/geomtools/detector/crystfel_frm.py @@ -6,7 +6,6 @@ from natsort import natsorted from .geom import get_detector_shape - HEADER_TEMPLATE = """\ ; {detector} geometry file written by geomtools ; You may need to edit this file to add: @@ -45,6 +44,7 @@ def write_crystfel_geom(file, panels, beam, rigid_groups, mask=None): """Writes geometry in CrystFEL format in file.""" # header clen = panels.clen[0] + res = panels.res[0] paths = {} paths['data'] = ( panels.data[0] if panels.data[0] @@ -65,7 +65,7 @@ def write_crystfel_geom(file, panels, beam, rigid_groups, mask=None): path_str = '\n'.join('{} = {} ;'.format(i, j) for i, j in paths.items()) header = HEADER_TEMPLATE.format( - detector="AGIPD1M", resolution=1/200e-6, frame_dim=0, + detector="AGIPD1M", resolution=res, frame_dim=0, clen=clen, photon_energy=beam["photon_energy"], adu_per_ev=1, paths=path_str, ) @@ -162,6 +162,7 @@ def read_crystfel_geom(filename, indexes=dict()): if mask_file: with h5py.File(mask_file, "r") as f: mask = f[mask_path][:] + mask = mask.astype(int) mask = ( (np.bitwise_and(mask, mask_goodbits) != mask_goodbits) | (np.bitwise_and(mask, mask_badbits) != 0) -- GitLab