ID22: lima events should reflect what goes in the lima HDF5 file
With this custom scan
https://gitlab.esrf.fr/bcu-vercors/id22/id22/-/blob/master/id22/scripts/tscan.py?ref_type=heads#L19
The NeXus writer creates a virtual dataset linking the lima
data
/data/visitor/ch6690/id22/20240220/RAW_DATA/empty_PDF/empty_PDF_RT/empty_PDF_RT.h5::/1.1/instrument/perkinelmer/data
which cannot be read by blissdata
pip install ewoks ewoksxrpd
rm -rf /tmp/testresults
ewoks execute workflow.json --log=info # this hangs forever
The reason is that the virtual dataset links to files that do not and never will exist for the tscan
, which is saving lima images in MANUAL mode (only saving half of them, the others are used for background subtraction) and not adapting the Redis events accordingly. So the NeXus writer (and Flint as well I assume) does not know about the missing images.
This fixes the issue but will break other online data processing:
@@ -53,10 +53,14 @@ class BlissDynamicHDF5Handler(hdf5.DynamicHDF5Handler):
"""Check that the last source of a virtual dataset is released by the writer."""
if not hasattr(item, "is_virtual"):
return
if not item.is_virtual:
return
+ print(f"PERKIN PATCH FOR BLISSDATA: ASSUME VDS {item.name} IS ACCESSIBLE")
+ # WDN: fix for perkin with half of the images saved
+ return
Edited by Wout De Nolf