autodidaqt: Simplifying Scientific Data Acquisition with Nuts and Bolts Framework
Scientific research often involves complex data acquisition processes that can be time-consuming and cumbersome for researchers. Meet autodidaqt, a nuts and bolts included framework designed specifically for scientific data acquisition (DAQ). Whether you are working on angle-resolved photoemission spectroscopy or any other experiment, autodidaqt can help streamline the entire process, allowing you to focus more on designing and running experiments rather than spending time on DAQ software.
What is autodidaqt?
autodidaqt combines the power of data acquisition (DAQ), user interface (UI) generation, reactivity, and instrument management into a comprehensive framework. With autodidaqt, researchers can specify the sequence of motions and data collection, and the framework takes care of managing the user interface, talking to and managing instruments, plotting interim data, data collation, and input/output operations.
In addition to its core features, autodidaqt also offers logging and notification support. Researchers can receive notifications via email or Slack when an experiment finishes, whether it was successful or not. This level of automation and communication ensures that researchers are always informed about the progress of their experiments, even when they are not physically present.
Key Features of autodidaqt
Automated DAQ
autodidaqt provides a uniform interface to wrap instruments and data sources. By specifying the sequence of motion and acquisition, autodidaqt handles async collection, input/output operations, and real-time visualization of acquired data. This automation helps researchers save time and focus on the actual research instead of dealing with low-level data acquisition processes.
UI Generation
autodidaqt leverages the power of PyQt and Qt5 to generate user interfaces for experiments. The framework also provides simple bindings (autodidaqt.ui) that simplify working with PyQt and UI scripting. With autodidaqt’s window manager, researchers can register their own windows, making it seamless to add extra functionality to experiments.
The UI bindings in autodidaqt are wrapped as RxPY observables, enabling seamless integration of PyQt UI into asynchronous applications. This level of integration simplifies the development of coherent and responsive experiments.
Installation and Usage
To get started with autodidaqt, follow these steps:
Requirements:
- Python 3.7 or later
- NoArch
Installation via pip:
bash
$ pip install autodidaqt
Installation from Source:
- Clone the autodidaqt repository.
- Install
make
if you are on a Windows system. - Install
poetry
(the alternative Python package manager). - Run
make install
from the directory containing the README file.
Once installed, explore the examples folder to find usage examples. Simply run the desired script using the following command:
bash
$ python -m autodidaqt.examples.[example_name]
Replace [example_name]
with one of the available examples, such as:
– minimal_app
– plot_data
– simple_actors
– ui_panels
– wrapping_instruments
– scanning_experiment
– scanning_experiment_revisited
– scanning_interlocks
– scanning_custom_plots
– scanning_setup_and_teardown
– scanning_properties_and_profiles
– manuscript_fig4
For a complete list of available examples, run the following command:
bash
$ python -m autodidaqt.examples
Conclusion
autodidaqt revolutionizes scientific data acquisition by providing a comprehensive framework that simplifies the entire process. With its automation, UI generation, and instrument management capabilities, autodidaqt allows researchers to focus on the core aspects of their experiments. Its logging and notification support further enhance the research workflow, ensuring researchers stay informed about the progress of their experiments. Whether you are a researcher in the field of photoemission spectroscopy or any other scientific domain, autodidaqt can be your indispensable tool for efficient and automated data acquisition.
Source: GitHub – autodidaqt
References:
– AutodiDAQt receiver in its companion repository: GitHub – autodidaqt companion repository
Leave a Reply