aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src
AgeCommit message (Collapse)Author
2021-08-20write_to_xds: Add missing 'S' (!)Thomas White
2021-08-20Mosflm: Add -n option when probingThomas White
2021-08-13Increase threshold for integration warningThomas White
The warning about "XXX reflections couldn't be integrated" is tiresome - it appears for practically every indexed pattern because there are always some reflections that fall in bad regions or at panel edges. This suppresses the warning unless the number of integration failures is more than a quarter of the total number of reflections.
2021-07-23image_hdf5_write: Avoid weird pass-by-referenceThomas White
2021-07-23Add field widths to all sscanf("%s")Thomas White
2021-07-23TakeTwo: Remove unused variablesThomas White
2021-07-23TakeTwo: Avoid potential NULL dereference on error pathThomas White
2021-07-23rtnl_cmp: Don't use rational type for intermediate resultThomas White
See 4fbe2e349908a53032b3f23c2180a46e4f770c92.
2021-07-23FormattingThomas White
2021-07-23do_op/get_matrix_name: Rename shadow variablesThomas White
2021-07-23stream_make_index: Remove unused assignmentThomas White
2021-07-23read_crystal: Remove unused varibalesThomas White
2021-07-23spectrum_get_density_at_k: Switch order of checksThomas White
The old way could potentially read beyond the bounds of the array.
2021-07-23rtnl_add: Don't use rational type for intermediate resultThomas White
It's confusing and unnecessary.
2021-07-23asdf: Rename shadow variableThomas White
2021-07-22Clean up shadowed variablesThomas White
2021-07-21read_cbf_data: Fix typesThomas White
'buf' has to be char *, otherwise "buf+len" isn't portable. 'len_read' has to be int, because that's the return type of gzread. If the value is immediately put into a size_t, the sign information is lost and we can no longer tell if gzread() failed.
2021-07-21do_integral: Remove unnecessary assignmentsThomas White
These local variables were being assigned just before returning.
2021-07-21safe_khalf: Use NAN instead of 0.0/0.0Thomas White
2021-07-21image_hdf5_read_peaks_cxi: Fix error checksThomas White
2021-07-21asdf: Remove unnecessary checkThomas White
'changed' is initialised to zero, so there's no way this check can fail.
2021-07-21Fix random_partiality()Thomas White
2021-07-21Reduce variable scope where possibleThomas White
2021-07-21Make sure that memory gets freed on realloc failureThomas White
2021-07-21Add missing cleanup on error pathsThomas White
2021-07-16Rename DST_* to DATA_SOURCE_TYPE_*Thomas White
On some systems, this conflicts with DST_NONE in sys/time.h.
2021-07-15Fix an incorrect error messageThomas White
2021-07-14PinkIndexer: replace long formula with modulus()Thomas White
2021-07-14Make all the indexer-specific option structures non-opaqueThomas White
Making them opaque seemed like a nice idea, because all the indexers could take care of their own command-line arguments. However, it doesn't work at all when indexing is run via the API.
2021-07-08Revert "Bump stream version to 2.4"Thomas White
Rationale: Although the format has technically changed, CrystFEL 0.9.1 and older do not read the "hdf5/" lines anyway. The new "header" lines are just noise, as far as they are concerned. However, increasing the version number causes older CrystFEL versions to reject streams written by newer CrystFEL versions. This is inconvenient, but will be a particular problem since CrystFEL 0.10.0 will most likely be released without a working "geoptimiser". We therefore need to be able to use older CrystFEL versions for refining geometry. Older versions are perfectly capable of reading newer streams. In general, the semantics of stream version numbers are a bit messed up, and we need to work out what they really mean. This reverts commit fdce01adf9fc5950904b644ea755760cb32ec5b2.
2021-07-07Bump stream version to 2.4Thomas White
The format for storing headers has changed from hdf5/location to header/type/location.
2021-07-07Interpret old-style stream header records as floating pointThomas White
The old way of recording metadata in the stream unfortunately doesn't include any information about the data type. Most of the time, floating point is what's intended. Older CrystFEL doesn't know about integer headers at all, but there might be string values if --copy-hdf5-field was used. By interpreting "hdf5/something = val" as floating-point, most things will work, e.g. camera length from HDF5 header enabling stream to be loaded without access to the image data. Anything that can't be interpreted as floating-point will be noisily ignored when loading the stream.
2021-06-22Add string terminator for fixed-length HDF5 strings from arraysThomas White
2021-06-21Restore HDF5 string handlingThomas White
Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/36
2021-06-21image_cache_header_str: Reject strings containing newlinesThomas White
2021-06-16stream_read_chunk: Bail out if detgeom can't be createdThomas White
2021-06-16Add DST_NONE for 'no data source' (e.g. image came from stream)Thomas White
2021-05-28Pass errors back when retrieving values for wavelength etcThomas White
Big improvement on just sending NAN back. Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/37
2021-05-17Resolve FIXMEs and TODOsThomas White
Prompted by the article linked below, for each FIXME/TODO I've either referenced an issue in the tracker, or removed it if it's not worth fixing. https://schleiss.io/plotting-source-code-todos-for-open-source-projects
2021-05-17Mosflm: Remove dead codeThomas White
This removes some old stub code. There doesn't seem to be a big need for doing what the FIXME suggests.
2021-05-12Don't assume that headers to be copied are floatsThomas White
2021-05-12FussinessThomas White
2021-05-12Fix build without MsgPack (again)Thomas White
2021-05-12Fix build without MsgPackThomas White
2021-05-12Rework header caching layerThomas White
This clears up multiple layering violations which were starting to get in the way. It enables "string" headers to be stored directly, and it will make it much simpler to add new header types in the future. Along the way, this changes all the floating point header stuff to use double precision. This is needed for EuXFEL event IDs. Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/34
2021-05-12Fix convert_int and add convert_floatThomas White
convert_int was using strtod. Whoops!
2021-05-12MsgPack: Fix a silly copy/paste errorThomas White
2021-05-11Set panel for bad region when there is only one panelThomas White
When there is only one panel, we can safely assume that fs/ss bad regions refer to it without it being stated in the geometry file. This allows some older Pilatus geometry files to be used without complaints. A further improvement would be to determine the panel when all the data comes from one "slab" so the panel is still ambiguous. However, on further thought it seems like a lot of work to do this reliably in all cases. I'm not even sure that this case in particular is causing anyone problems. Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/32
2021-05-07Add has_unique_axis()Thomas White
2021-05-07MsgPack: Warn if dtempl->peak_list is NULLThomas White