aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
AgeCommit message (Collapse)Author
2023-07-26intcontext_free: Free the intcontext structure itselfThomas White
2023-07-26Fix memory leaks in header cachingThomas White
2023-06-06MsgPack: Fix incorrect array index for bad pixel mapThomas White
2023-06-06Remove limit on number of children in the profiling graphThomas White
2023-06-06MsgPack: Complain if geometry file has placeholder dimensions or stacked panelsThomas White
2023-06-03Support Seedee format f8<Thomas White
2023-06-02Seedee: Handle u4< data typeThomas White
2023-05-19Fix untrue commentThomas White
2023-05-11Remove warning 'Cannot use adu_per_eV without image'Thomas White
The warning isn't helpful for users, but commit c2574910 causes it to appear many times on almost every indexamajig run. The best option is just to remove it.
2023-05-05Formatting (fussiness)Thomas White
2023-05-05Move is_{hdf5,cbf,cbfgz}_file() to image.cThomas White
This also improves is_hdf5_file() to use the proper file signature, not just the extension. See 9040220452a9cc02706159c21c78e43b374446cf.
2023-05-05Move peak search parameters into separate structureThomas White
This change takes the peak parameters structure from gui_project.h, moves it to libcrystfel/peaks.h and uses it everywhere. It should slightly reduce the hassle involved with adding a new parameter. Four parameters (noisefilter, median_filter, check_hdf5_snr, use_saturated) were previously not part of the GUI project structure. Now they are, via the new structure. However, they are not yet exposed via the GUI and just take their default values.
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.