While visiting NSLS-II in March 2024, Linus Pithan (DESY) presented a proof-of-concept prototype that enabled PyMca to import data from a Tiled server that was collected during a beamtime at SMI.
This sparked conversations in the Bluesky community at BESSY II, DESY, ESRF, and NSLS-II that led to a set of common goals being defined. At NSLS-II the Complex Scattering (CS) program ralied support for encouraging adoption at CS beamlines, and the Scientific Data Analysis & Visualization group initiated resourcing for the project.
During the summer of 2024 Josh Lohmolder joined Abby Giles in the Scientific Data Analysis & Visualization group at NSLS-II for a 10-week internship to explore the practical aspects of integrating Tiled into PyMca. This included a "crash course" in learning the architecture and workflows of PyMca for customizing data sources and making selected data available to plotting routines.
During this time a Tiled browser "widget" was adapted from Abby's previous work on a Napari plugin. This enabled graphical exploration of Tiled data catalogs and a preview of each data collection before importing it into PyMca. Selecting a Bluesky run lets the user choose which data channels to plot as a function of scan parameters with optional normalization to a monitor signal (I0).
Building upon the success of the exploratory summer project, Abby Giles and Padraic Shafer designed a preliminary plan for implementing the Tiled integration of Bluesky datasets. Important considerations were: Sufficient flexibility for importing data from multiple beamlines and techniques; architectural choices that promote testability and separation of responsibilties; and minimizing initial complexity to reduce time needed to reach a working state.
After implementing the Bluesky catalog selection dialog and the subsequent data selection panel, PyMca with Tiled will be deployed on Complex Scattering beamlines for evaluation and feedback. This feedback will help us refine the user interfaces and functionality.
When sufficient stability is reached in the usability of the new features, we anticipate rolling out the Tiled-enabled version of PyMca to all NSLS-II beamlines. The published code is expected to enable similar functionality for any scientific user facility that utilizes Bluesky for data acquisition and access (RunEngine, Tiled), with minimal local configuration.