Age | Commit message (Collapse) | Author |
|
|
|
This also improves is_hdf5_file() to use the proper file signature, not
just the extension. See 9040220452a9cc02706159c21c78e43b374446cf.
|
|
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
|
|
|
|
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 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.
|
|
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
|
|
No other code path under image_expand_frames() actually opens the file,
because HDF5s are currently the only format supporting multiple frames.
The aim of the existence check is to give a better error message
(compared to the HDF5 backtrace splurge), but it doesn't need to be done
so early. In fact, checking so early had the side-effect of breaking
indexamajig --wait-for-file.
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/65
|
|
Closes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/27
|
|
|
|
|
|
|
|
|
|
On some systems, this conflicts with DST_NONE in sys/time.h.
|
|
|
|
|
|
Big improvement on just sending NAN back.
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/37
|
|
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
|
|
|
|
|
|
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
|
|
This removes the big potential for confusion, which has happened several
times (see e.g. 095cbebaf6). It also fixes in-tree builds with CMake
(but seriously, always use out-of-tree builds).
Fixes #2.
|
|
The unique filename is needed by the GUI for looking up results in a
stream. Otherwise, the filename is "(null)" for everything and the
lookup just returns the first chunk in the stream.
The filename is generated based on the unique serial number for each
chunk, and is therefore unique across one run of indexamajig regardless
of the number of worker processes (-j). This might have to change in future
to accommodate jobs run across multiple nodes, if there is any demand
for looking at results in one big concatenated stream.
This also changes the condition for deciding when to look for a 'real'
file, to take into account that there is always a non-NULL filename.
|
|
|
|
|
|
|
|
This moves the entry point for loading MsgPack data to a new function,
image_read_data_block. Inside image.c, the image structure can be
created using exactly the same functions as for data files.
|
|
|
|
|
|
This simultaneously implements --copy-header/--copy-hdf5-field and gives
access to metadata (e.g. detector position or wavelength) when loading
from a stream with header-specified values.
|
|
|
|
|
|
If the geometry file contains a literal wavelength, then let's use it.
That's better than nagging the user for a --wavelength-estimate.
|
|
|
|
This allows the refined detector position to be used in a lot of places.
|
|
|
|
|
|
|