aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
AgeCommit message (Collapse)Author
2023-05-02Remove image_write() and image_hdf5_write()Thomas White
This code isn't needed any more, now that we don't simulate images. It never worked very well - although we can read almost any sensible format, writing images that match an arbitrary schema is very difficult. See 41ed47a931e4c162c9a501981b6f19cd725f6e43 and https://gitlab.desy.de/thomas.white/crystfel/-/issues/81
2023-05-02Remove CMake build filesThomas White
It's already far behind parity with Meson, and getting worse.
2023-04-20Revert "Refuse to overwrite an existing stream"Thomas White
This was intended to help users avoid accidents. However, it seems to trip people up a lot, and creates problems such as breaking Slurm job pre-emption (re-scheduled job fails because output already exists). This reverts commit 6db9619ba5172b9e416a5939d375f5119aa652ff.
2023-03-31Reject mask if good/bad bits are specified without locationThomas White
This should avoid surprises if the location is accidentally missed out.
2023-03-31Factorise p->masks[j]Thomas White
Just to avoid repetition
2023-03-31Reject unrecognised mask directivesThomas White
2023-03-03libcrystfel: don't use fmemopen on aarch64-darwinPhilipp Middendorf
2023-02-17asdf: Restrict domain for search for peaks in frequency graphAlexandra Tolstikova
Previously, it was possible for the search to run over the part of the array initialised by FFTW.
2023-02-17image_read_peaks: Fix a typoThomas White
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