Age | Commit message (Collapse) | Author |
|
This makes it work the same way as --wavelength-estimate.
|
|
Co-authored-by: Alexandra Tolstikova <alexandra.tolstikova@desy.de>
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/76
|
|
This avoids an apparently infinite loop with some corner case input.
|
|
|
|
For cases where you need it (high performance online processing), it's
very spammy.
|
|
The old maximum was 64 kilobytes, and a 68k geometry file has now been
seen in the wild. The limit is only needed to prevent runaway memory
allocation in the case of a corrupted stream. So it's safe to increase
it quite a lot.
|
|
|
|
Fixes Valgrind errors and segfault with certain geometries
|
|
|
|
|
|
|
|
|
|
It is horrible. But it's contained inside the DataTemplate module.
|
|
|
|
It seems to make more sense here, because it's all about interpreting
the contents of the DataTemplate structure.
|
|
This adds an optional fast mode for asdf indexing, which is around 3
times faster with only a few percent lower success rate.
|
|
|
|
|
|
This avoids e.g. crashing later if the geometry is bad.
This commit also removes a problematic stanza from the geometry in
test.stream, since the stream reading functions are now more fussy about
this.
|
|
|
|
|
|
This adds a central procedure (image_create_dp_bad_sat) to create all
the arrays. Then it's up to the loading procedure to put the values
into the arrays.
This also makes the loading procedures responsible for marking NaN/inf
pixels in the bad pixel map. This avoids an additional sweep through
the image data, and makes it possible to skip the NaN/inf check
altogether if the image data comes, as it often does, in format which
can't represent NaN/inf anyway.
Finally, it removes quite a lot of duplicated code.
|
|
Strongly negative peaks can occur if there are unmasked bad pixels.
These cause the refinement to diverge badly. This change stabilises the
refinement such that it works even in these cases. But of course, the
real solution is to mask out those pixels.
Negative intensity peaks are unlikely to show up "for real" in the peak
search results (because we look for strong peaks!). However, if the
intensity is negative, we aren't even sure that the peak exists at all
and have no reason to assume it should be close to the Bragg condition.
|
|
|
|
|
|
|
|
|
|
|
|
These FP calls seem to be slower than expected. Using only one doubles
the speed.
|
|
|
|
|
|
|
|
Previously, a placeholder was put in the queue ("ZMQdata //" or
"ASAPOdata //"), and replaced by image_read_data_block. Instead, the
"final" placeholder can be put in the queue already.
Note that ASAP::O, at least, will replace this placeholder with a
filename delivered by the data transport.
|
|
With online processing, we might end up with a very long stream. It
should not be so easily deleted if indexamajig is restarted!
|
|
|
|
This number has to be at least 2x as high as the number of detector
panels because, when using HDF5 and a bad pixel map, each panel will
have an H5Dopen2 and H5Dread block inside create-badmap.
|
|
|
|
Use of numbers (rather than booleans) in this routine is deprecated in
recent meson versions.
|
|
Unfortunately, the complicated series of nested printf()s doesn't work
well from multiple processes.
|
|
Improvements:
- Recursive, so we can see how things are working at different levels
- Everything is profiled, even if not explicitly labelled
- No possibility of losing time
- Detects mistakes if routines aren't wrapped correctly
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This adds a new routine, data_template_slabby_file_to_panel_coords, to
be used (only!) in places where external forces require assumptions of
slabbiness: pixel maps and MsgPack/HDF5 peak lists (including
CXI-style).
This also fixes the prototype of data_template_file_to_panel_coords to
make the panel number strictly an input parameter. This was an
oversight in the implementation of DataTemplate, and caused problems
when reading non-slabby streams.
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/66
|
|
|