rugnux: Bruker SFRM frames are planned as sweeps too
With the SFRM reader and the sweep planner on one branch, an .sfrm frame names its sweep as any other frame file does: several runs of SFRM frames are several sweeps (one per file-name template), read with the SFRM reader for their rotation and wavelength, and their unlisted neighbours named. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HVeDQqN9qRD57vnShzTC37
This commit is contained in:
1 parent
e19eb9942f
commit
e839cd08c7
3 files changed
+10
-4
No files matched your search
+1
-1
@@ -99,7 +99,7 @@ indexing rate reported per master as well. Such masters must share the detector,
|
||||
distance and beam centre. Several inputs must be one format; any `--mode` other than `mx`, and
|
||||
following a broker, take one.
|
||||
|
||||
Several rotation sweeps are told apart from the files: one sweep per CBF/marCCD/SMV file-name
|
||||
Several rotation sweeps are told apart from the files: one sweep per CBF/marCCD/SMV/SFRM file-name
|
||||
template (the name with its frame number taken out - any frame of a sweep names the whole sweep, so
|
||||
`rugnux a_*.cbf` is the one sweep `a`), one per rotation master. Only the inputs given are processed;
|
||||
other sweeps beside them are named in the log. A mix of rotation and stills masters is refused, and
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <vector>
|
||||
|
||||
// The rotation sweeps a rugnux command line names, decided from the files in the order given:
|
||||
// - frame files (CBF, marCCD, SMV): one sweep per file-name template - the name with its last run of
|
||||
// - frame files (CBF, marCCD, SMV, Bruker SFRM): one sweep per file-name template - the name with its last run of
|
||||
// digits, the frame number, taken out. Any frame of a sweep names the whole sweep, so several frames
|
||||
// of one template are one sweep;
|
||||
// - masters: one sweep per rotation master. Several stills masters stay one stills run, as before, and
|
||||
|
||||
@@ -3844,7 +3844,8 @@ int RugnuxCli::Run() {
|
||||
RugnuxInputDescription d;
|
||||
if (!crystfel_geometry.empty())
|
||||
d.foreign = true;
|
||||
else if (JFJochCBFReader::CanRead(f) || JFJochMarCCDReader::CanRead(f) || JFJochSMVReader::CanRead(f))
|
||||
else if (JFJochCBFReader::CanRead(f) || JFJochMarCCDReader::CanRead(f) || JFJochSMVReader::CanRead(f)
|
||||
|| JFJochSFRMReader::CanRead(f))
|
||||
d.frame_template = RugnuxFrameTemplate(f);
|
||||
else
|
||||
d.foreign = JFJochXFELReader::CanReadPanelTable(f) || JFJochXFELReader::CanReadCXI(f)
|
||||
@@ -3868,6 +3869,11 @@ int RugnuxCli::Run() {
|
||||
r.ReadFiles(f);
|
||||
return r.GetDataset();
|
||||
}
|
||||
if (JFJochSFRMReader::CanRead(f)) {
|
||||
JFJochSFRMReader r;
|
||||
r.ReadFiles(f);
|
||||
return r.GetDataset();
|
||||
}
|
||||
JFJochHDF5Reader r;
|
||||
r.ReadFile(f);
|
||||
return r.GetDataset();
|
||||
@@ -3908,7 +3914,7 @@ int RugnuxCli::Run() {
|
||||
|
||||
for (size_t k = 0; k < plan.sweeps.size(); k++)
|
||||
logger.Info("Sweep {}: {}", k + 1, plan.sweeps[k].label);
|
||||
for (const auto &s: RugnuxSiblingSweeps(plan, {".cbf", ".img", ".mccd", ".osc"}))
|
||||
for (const auto &s: RugnuxSiblingSweeps(plan, {".cbf", ".img", ".mccd", ".osc", ".sfrm"}))
|
||||
logger.Info("Also beside these inputs, not given and so not processed: {}", s);
|
||||
if (start_image != 0 || end_image >= 0) {
|
||||
logger.Error("-s / -e select images of one sweep; with several sweeps give each sweep's frames instead");
|
||||
|
||||
Reference in new issue
Block a user