A modular open source software for working with scientific devices and combining them into spectrometer.
The general idea is close to FSC2 software developed by Jens Thomas Törring.
Remote control of spectrometers is usually carried out using home-written programs, which are often restricted to doing a certain experiment with a specific set of devices. In contrast, the programs like FSC2 and Atomize are much more flexible, since they are based on a modular approach for communication with device and scripting language (EDL in FSC2; Python in Atomize) for data measuring.
Atomize uses liveplot library based on pyqtgraph as a main graphics library. Liveplot was originally developed by Phil Reinhold. Since several minor improvements have been made to use it in Atomize.
Python Programming Language is used inside experimental scripts, which opens up almost unlimited possibilities for raw experimental data treatment. In addition, with PyQt, one can create experimental scripts with a simple graphical interface, allowing users not familiar with Python to use it. Several examples of scripts (with dummy data) are provided in /atomize/tests/ directory, including a GUI script with extended comments inside. Also a variant of the Atomize with GUI Control Window extension can be found here.
Currently there are more than 200 device specific and general functions available for over 27 different devices, including 6 series of devices. If you would like to write a module for the device that is not currently available, please, read this short instruction.
Detailed documentation can be found here.
At the moment, Atomize has been tested and is currently used for controlling several EPR spectrometers using a broad range of different devices. Examples of experimental scripts for standard pulsed EPR methods can be found in /atomize/tests/pulse_epr directory. The program has been tested on Ubuntu 18.04 LTS, 20.04 LTS, and 22.04 LTS.
Install from the source directory:
run from the source directory:
or using bash option to open specified script:
python3 atomize /path/to/experimental/script
To communicate with Liveplot inside a script the general function module should be imported.
import atomize.general_modules.general_functions as general general.plot_1d(arguments)
The text editor used for editing can be specified in atomize/config.ini. The Telegram bot token and message chat ID can be specified in the same file.
The /atomize directory contains a general configuration file with the name config.ini. It should be changed at will according to the description below:
[DEFAULT] # configure the text editor that will opened when Edit is pressed: editor = subl # Linux editorW = /path/to/text_editor/on/Windows/ # Windows # configure the directory that will opened when Open 1D Data or Open 2D Data # feature is used in Liveplot: open_dir = /path/to/experimental/data/to/open/ # configure the directory that will be opened when Open Script is pressed: script_dir = /Atomize/atomize/tests # configure Telegram bot telegram_bot_token = message_id =
To communicate with a device one should:
import atomize.device_modules.Keysight_3000_Xseries as keys import atomize.device_modules.Lakeshore331 as tc dsox3034t = keys.Keysight_3000_Xseries() lakeshore331 = tc.Lakeshore331() name_oscilloscope = dsox3034t.oscilloscope_name() temperature = lakeshore331.tc_temperature('CH A')
The same idea is valid for plotting and file handling modules. The description of available functions is given below.
import atomize.general_modules.general_functions as general import atomize.general_modules.csv_opener_saver_tk_kinter as openfile file_handler = openfile.Saver_Opener() head, data = file_handler.open_1D_dialog(header = 0) general.plot_1d('1D Plot', data[0], data[1], label = 'test_data', yname = 'Y axis', yscale = 'V')
Python is used to write an experimental script. Examples (with dummy data) can be found in /atomize/tests/ directory.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4