Skip to main content

Python-based data acquisition

Project description

PyAcquisition

![PyAcquisition](logo.png){ width="500" }

pyacquisition is a powerful Python package designed to simplify the process of recording scientific data and controlling laboratory instruments. It abstracts away the complexities of instrument communication, task scheduling (both concurrent and sequential), data recording, and logging, allowing you to focus on the science. Whether you're managing a single instrument or orchestrating a complex experimental workflow, pyacquisition provides a framework that simplifies the process dramatically.

Check out the installation and getting started pages to get going.

Objectives

Be an 'all-python' solution for interfacing with instruments and automating experimental procedures. Python has become the first choice of many for data analysis and scripting. We don't want to have to learn a second language just for interfacing with hardware or generating a GUI. You need only use python (and possibly a .toml config file).

Be up and running in minutes, not hours. pyacquisition is designed to be simple and 'batteries-included'. We want to absolutely minimize your development time in all major use-cases.

Be 'one-size-fits-most'. There will inevitably be cases that are not well suited to the workflow offered by pyacquisition, but it is hoped that we can help in the majority of instances. We've tried to design for maximum flexibility whilst keeping the API reasonably simple.

Forget the GUI. User interfaces are difficult and time consuming. Writing a robust GUI in Qt may well take longer than writing the rest of your experiment and analysis code combined. pyacquisition generates the entire UI programmatically.

Offer minimal barrier to entry for those who are not advanced python users. Whilst it will be helpful to understand the basics of object oriented and asynchronous programming, getting going with pyacquisition is as simple as composing a .toml configuration file and running a two-line script. Adding custom functionality can mostly be accomplished by following some worked examples in most cases.

A Short Example

A short configuration file interfacing with a Stanford Research Instruments SR 830 lock-in amplifier:

[experiment]
root_path = "C://data"

[data]
path = "my_data_folder"

[instruments]
clock = {instrument = "Clock"}
lockin = {instrument = "SR_830", adapter = "pyvisa", resource = "GPIB0:7:INSTR"}

[measurements]
time = {instrument = "clock", method = "timestamp_ms"}
voltage = {instrument = "lockin", method = "get_x"}

A short script running the experiment from the configuration file:

from pyacquisition import Experiment

my_experiment = Experiment.from_config('my_configuration_file.toml')
my_experiment.run()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyacquisition-0.1.2.tar.gz (274.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyacquisition-0.1.2-py3-none-any.whl (60.4 kB view details)

Uploaded Python 3

File details

Details for the file pyacquisition-0.1.2.tar.gz.

File metadata

  • Download URL: pyacquisition-0.1.2.tar.gz
  • Upload date:
  • Size: 274.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for pyacquisition-0.1.2.tar.gz
Algorithm Hash digest
SHA256 20ea46840b4c7ebf5f0362bd8181dd4edd2d0687fe7ae0c6d53fbc5970b74bba
MD5 0307c16f690aa6fb7dd88794e81ada09
BLAKE2b-256 09cd8a56785a30deccd5b317cba55fd2c2187c905517830b142b8587d09db660

See more details on using hashes here.

File details

Details for the file pyacquisition-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pyacquisition-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f1f34f181cd90f7d886b4e6ce2fc5ec7985dc82166f5429bb761c82e0db899eb
MD5 b3e755a026544636cfc1025dde20e4b7
BLAKE2b-256 40247ba81a4ed93ccad5af0b9a6cd8aaa5fa69509759acf685f8739373807a45

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page