Age | Commit message (Collapse) | Author |
|
This was broken by 1b8abebf8bf37d5d57ed55816223d95557b7f844.
|
|
|
|
This changes all the peak search procedures into pure functions that
return a new ImageFeatureList. This takes the management of
image->features out of the hands of the peak search routines, and into
the calling code's responsibility.
In turn, this allows a load of stuff to become const.
|
|
This fixes the remaining programs.
|
|
|
|
We noticed that constant freeing and re-allocating the (potentially
quite large) arrays resulted in much lower performance. Since we know
that all images have the same data layout, we can safely re-use the
arrays. This gives a large speedup.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
This takes a non-negligible amount of time (40 ms per frame for 16M), so
should be skipped if not needed.
|
|
|
|
|
|
|
|
This doesn't do anything. The very next lines override all the
settings.
|
|
|
|
|
|
|
|
|
|
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
|
|
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.
|
|
Indexamajig uses only ZMQ, to receive streaming data, while libcrystfel
uses only msgpack to implement another type of image format.
The two of these are eventually tied together in process_image, which
does this: if ( have_zmq_data ) interpret_zmq_data_as_msgpack;
- however, they would be easy to split up if we wanted to do something
else (CBF data over ZMQ, anyone?).
This commit also switches the ZMQ connector to use a pub/sub socket
instead of a request/reply one. This matches changes in OnDA.
At the moment, the MessagePack image reader simply dumps the object to
disk.
|
|
|
|
It makes no sense for a different DataTemplate to be used for every
frame in a stream. And this way makes everything much easier for users
ot the API.
|
|
|
|
|
|
|
|
|
|
|
|
Note the nicer separation: ZMQ is in indexamajig only, whereas
MessagePack becomes something generally accessible through libcrystfel.
|
|
|
|
|
|
|
|
|
|
The only place this is used is in geoptimiser, to get the
average_camera_length, itself a very bad solution.
|
|
This also removes a large chunk of legacy code
|
|
|
|
|