Source code for tristan
"""
Utilities for processing data from the Large Area Time-Resolved Detector
This module provides tools to interpret NeXus-like data in HDF5 format from the
experimental Timepix-based event-mode detector, codenamed Tristan, at Diamond Light
Source.
"""
from __future__ import annotations
__author__ = "Diamond Light Source — Data Analysis Group"
__email__ = "dataanalysis@diamond.ac.uk"
__version__ = "0.2.3"
__version_tuple__ = tuple(int(x) for x in __version__.split("."))
import dask
import pint
from dask.distributed import progress, wait
ureg = pint.UnitRegistry()
clock_frequency = ureg.Quantity(6.4e8, "Hz").to_compact()
[docs]def compute_with_progress(collection):
"""
Compute a Dask collection, showing the progress of the top layer of the task graph.
Args:
collection: A single Dask collection.
"""
(collection,) = dask.persist(collection)
# View progress only of the top layer of the task graph, which consists
# of the rate limiting make_images tasks, to avoid giving a false sense
# of rapid progress from the quick execution of the large number of
# other, cheaper tasks.
*_, top_layer = collection.dask.layers.values()
futures = list(top_layer.values())
print(progress(futures) or "")
wait(collection)