Skip to content
Snippets Groups Projects
Commit ffe7d8fe authored by Egor Sobolev's avatar Egor Sobolev
Browse files

Add minimal number of peaks which is needed to refine a panel

parent 5dc3cbdd
No related branches found
No related tags found
No related merge requests found
......@@ -2,9 +2,9 @@ import argparse
import pathlib
import tempfile
from .refine import refine_geometry
from .crystfelio import extract_geometry, read_crystfel_streamfile
from ..detector import read_crystfel_geom, write_crystfel_geom
from .crystfelio import extract_geometry, read_crystfel_streamfile
from .refine import refine_geometry
def refine():
......@@ -14,6 +14,8 @@ def refine():
help="Crystfel stream file")
parser.add_argument('-c', '--connected', default="modules",
help="Collection of rigid groups to pose")
parser.add_argument('-m', '--min-counts', type=int, default=50,
help="Minimum counts per group")
parser.add_argument('-o', '--output', type=pathlib.Path,
default=pathlib.Path("refined.geom"),
help="File to store refined geometry")
......@@ -35,7 +37,8 @@ def refine():
fr, pe, la, re, ma = read_crystfel_streamfile(
stream_filename, panels, args.connected, disp=True)
panels_new, transform, clen = refine_geometry(ma, panels, 1.0)
panels_new, transform, clen = refine_geometry(
ma, panels, 1.0, args.min_counts)
with open(args.output.absolute(), "w") as f:
write_crystfel_geom(f, panels_new, beam, ["modules", "quads"])
......
import time
import numpy as np
import pandas as pd
from natsort import natsorted
def refine_geometry(matches, panels, clen_scale=1.,
def refine_geometry(matches, panels, clen_scale=1., min_counts=50,
rigid_group="modules", disp=True):
transform = {}
clen = panels.clen[0]
......@@ -21,6 +21,8 @@ def refine_geometry(matches, panels, clen_scale=1.,
groups = matches[columns].groupby(rigid_group)
for modname, mp in natsorted(groups):
count = len(mp)
if count < min_counts:
continue
# AGIPD1M layout
ss_p = mp.ss_p + (np.round(mp.ss_p) // 64) * 2
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment