Sep 19 – 22, 2022
Paul Scherer Institute, Villigen, Switzerland
Europe/Zurich timezone

pyStxm: A python application for STXM data collection using Qt, BlueSky and Epics

Sep 20, 2022, 6:44 PM
WHGA/Auditorium and online (Paul Scherer Institute, Villigen, Switzerland)

WHGA/Auditorium and online

Paul Scherer Institute, Villigen, Switzerland

Paul Scherrer Institute Forschungsstrasse 111 CH-5232-Villigen-PSI
Poster NOBUGS 2022


Mr Russ Berg (Canadian Light Source)


Traditionally, data collection software written by individuals whose primary responsibility is not software have prioritized the User Interface (UI) of their software somewhere near the bottom as this often can become very time consuming as well as the source of many software bugs. For software developers whose primary responsibility it is to deliver software the goal should be to produce reliable software that allows users of all experience levels the ability to collect data in a timely manner, automate monotonous and error prone tasks as well as to provide conveniences where possible that promote user efficiency while at the beamline. A fully featured user interface is key to this delivery. pyStxm is a data collection application that is developed with this motivation in mind, and is the user interface for STXM (Scanning Transmission X-ray Microscopy) data collection developed at the Canadian Light Source 10ID1 beamline. Not wanting to reinvent the wheel the user interface incorporates ideas inspired from successful existing commercial and open source software, primarily Adobe Photoshop [5] and the open source 3D animation software project, Blender[4]. These two software applications were used as inspiration because of their ability to provide a user interface that was able to organize complex data that would scale with time into panels and areas of the screen that facilitated work flow as well as user learning. Not only do these two particular applications do a great job at organizing complex data they also allow for that complex data to scale with future feature enhancements. Along with user efficiency the goal was also standardization of the data file format that produces NEXUS[6] files that conform to the NXstxm[7] NEXUS application definition. pyStxm is developed in python and uses several freely available frameworks. Qt [3] is a fully featured application development framework and is used as the basis for the user side of the application while the BlueSky [1] framework from Brookhaven National Lab is used to manage scanning and interface to the underlying distributed control system which is EPICS [2]. What is presented are some of the key features of pyStxm that were implemented to attempt to facilitate user efficiency during data collection.

  1. Daniel Allan, Thomas Caswell, Stuart Campbell & Maksim Rakitin. Bluesky's Ahead: A Multi-Facility Collaboration for an a la Carte Software Project for Data Acquisition and Management. Synchrotron Radiation News, Volume 32, 2019 – Issue 3.
  2. Dalesio, L.R., Kozubal, A.J., Kraimer, M.R. EPICS architecture (Conference: International conference on accelerator and large experimental physics control systems, Tsukuba (Japan), 11-15 Nov 1991)
  3. Qt application framework,
  4. Blender open source 3D animation creation suite,
  5. Adobe Photoshop,
  6. Mark Könnecke, Frederick A. Akeroyd, Herbert J. Bernstein, Aaron S. Brewster, Stuart I. Campbell, Björn Clausen, Stephen Cottrell, Jens Uwe Hoffmann, Pete R. Jemian, David Männicke, Raymond Osborn, Peter F. Peterson, Tobias Richter, Jiro Suzuki, Benjamin Watts, Eugen Wintersberger and Joachim Wuttke. The NeXus data format. Journal of Applied Crystallography. Volume 48, Part 1, February 2015, Pages 301-305
  7. Benjamin Watts and Jörg Raabe, A NeXus/HDF5 based file format for STXM, AIP Conference Proceedings 1696, 020042 (2016); Online: 28 January 2016
Email address of presenting author

Primary author

Mr Russ Berg (Canadian Light Source)


Dr A.F.G Leontowich (Canadian Light Source) Dr chithra karunakaran (Canadian Light Source) Dr Jian Wang (Canadian Light Source)

Presentation materials