aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
AgeCommit message (Collapse)Author
2023-02-17strip_extension: Handle short strings betterThomas White
2023-02-08indexamajig: Use static clen as --camera-length-estimate, if givenThomas White
This makes it work the same way as --wavelength-estimate.
2023-01-16asdf: Avoid integer overflow with number of tripletsThomas White
Co-authored-by: Alexandra Tolstikova <alexandra.tolstikova@desy.de> Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/76
2022-12-08Zaef peak search: set an upper limit on the number of peaksThomas White
This avoids an apparently infinite loop with some corner case input.
2022-12-08image_cbf_read: Abort if panel unpack failsThomas White
2022-11-08indexamajig: Remove warning when using --integration=noneThomas White
For cases where you need it (high performance online processing), it's very spammy.
2022-11-05Stream: increase maximum geometry file size to 1 megabyteThomas White
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.
2022-10-05data_template_get_2d_detgeom_if_possible: Avoid segfault with adu_per_eVThomas White
2022-10-05peakfinder8: Allocate big structures on heap instead of stackAlexandra Tolstikova
Fixes Valgrind errors and segfault with certain geometries
2022-10-05Merge branch 'pf8_faster'Thomas White
2022-09-22Add fast mode for peakfinder8Alexandra Tolstikova
2022-09-22all_panels_reference_same_clen: Handle missing unitsThomas White
2022-09-22Add missing prototypeThomas White
2022-09-22Implement data_template_get_2d_detgeom_if_possibleThomas White
It is horrible. But it's contained inside the DataTemplate module.
2022-09-21create_detgeom: Return detgeom structure rather than altering image argumentThomas White
2022-09-21Move create_detgeom to DataTemplate moduleThomas White
It seems to make more sense here, because it's all about interpreting the contents of the DataTemplate structure.
2022-09-21asdf: Add fast modeAlexandra Tolstikova
This adds an optional fast mode for asdf indexing, which is around 3 times faster with only a few percent lower success rate.
2022-09-21Avoid nan/inf check unless data was given in float formatThomas White
2022-09-20load_hdf5_hyperslab: Add missing cleanupThomas White
2022-09-08Stream: don't open stream if headers aren't understoodThomas White
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.
2022-09-02RefList: assert that a Reflection can only be on one listThomas White
2022-08-22image_create_dp_bad_sat: Initialise saturation array to infinityThomas White
2022-08-18Restructure image data array creationThomas White
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.
2022-07-12Zero-weight negative intensity peaks in prediction refinementThomas White
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.
2022-06-09pair_peaks: Use fabs instead of abs for floating point valuesThomas White
2022-06-09Remove some unused variablesThomas White
2022-06-02Add worker ID to profiling dataThomas White
2022-06-02Add profiling for bad region generationThomas White
2022-06-02Use isfinite() instead of isnan() || isinf()Thomas White
These FP calls seem to be slower than expected. Using only one doubles the speed.
2022-06-02Fix horrific Seedee memory leakThomas White
2022-06-02Seedee deserializationThomas White
2022-06-02indexamajig: Track metadata (e.g. for ASAP::O)Thomas White
2022-06-02Generate placeholder filename/event earlierThomas White
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.
2022-06-02Refuse to overwrite an existing streamThomas White
With online processing, we might end up with a very long stream. It should not be so easily deleted if indexamajig is restarted!
2022-06-02Profiling: Increase debugging informationThomas White
2022-06-02Profiling: Increase MAX_PROFILE_CHILDRENThomas White
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.
2022-05-04Write profile information in one call to write()Thomas White
Unfortunately, the complicated series of nested printf()s doesn't work well from multiple processes.
2022-05-04Add improved profilingThomas White
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
2022-05-03Strip out time-accountsThomas White
2022-04-20Recognise .nx5 as HDF5Thomas White
2022-04-05indexamajig: Fix profiling when using streamed dataThomas White
2022-04-05Time accounts: make sure that last account is loggedThomas White
2022-03-18FormattingThomas White
2022-03-09Meson: enable building without HDF5Thomas White
2022-03-08read_peaks: Simplify logicThomas White
2022-03-08Fix slabbiness assumptionsThomas White
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
2022-03-08stream_open_for_write: Fix documentationThomas White
2022-03-08Drop compatibility with old stream format versionsThomas White
CrystFEL hasn't written any version other than 2.3 since before 2015. Supporting the old versions is getting difficult because of slabbiness assumptions, so it's time to get rid of it.
2022-03-07time_accounts_init: Add a warning if timer is not availableThomas White
2022-03-07Add image_read_with_time_accounting for fine-grained data load profilingThomas White