Skip to main content

LDAQ - Streamlined Data Acquisition and Generation

What is LDAQ?

LDAQ stands for Lightweight Data AcQuisition, a Python-based toolkit designed to make data collection seamless and efficient. Whether you’re a researcher, engineer, or hobbyist, LDAQ offers a powerful yet user-friendly platform to gather data from a wide range of hardware sources.

frf_visualization

Key Features:

  • 🐍 Python-Powered: Built on the robust and versatile Python language, LDAQ harnesses its power to offer a streamlined data collection process. It’s compatible with all Python environments, ensuring ease of integration into your existing workflows.

  • 📟 Diverse Hardware Compatibility: LDAQ supports a variety of hardware sources, including:

    • National Instruments

    • Digilent

    • Serial communication devices (i.e. Arduino, ESP)

    • FLIR Cameras

    • Telops Cameras

    • Simulated hardware

  • 📊 Advanced Data Visualization & Analysis: LDAQ doesn’t just collect data; it helps you understand it. With built-in features like real-time signal visualization and Fast Fourier Transform (FFT) analysis, you can dive deep into your data for more insightful discoveries.

  • ⚙️ Customization & Flexibility: Tailor LDAQ to your specific needs. Whether you’re dealing with high-speed data streams or complex signal processing, LDAQ’s customizable framework allows you to optimize and accelerate your data acquisition processes.

Getting started

Dive into the world of efficient data acquisition with LDAQ. Our documentation will guide you through installation, setup, and basic usage to get you up and running in no time.

demo_gif

Installation

The package can be installed from PyPI using pip:

pip install LDAQ

Create the acquisition object

The first step to starting the measurement is to create an acquisition object. Depending on your measurement hardware, you can select the appropriate acquisition class.

In this example, we use the LDAQ.national_instruments.NIAcquisition class, which is a wrapper for the National Instruments DAQmx driver. The class accepts the name of the input task as an argument:

acq = LDAQ.national_instruments.NIAcquisition(input_task_name, acquisition_name='DataSource')

If the acquisition_name argument is not specified, the name of the acquisition object will be set to the value of input_task_name.

The acquisition_name argument is important when using multiple acquisition objects in the same measurement, and when specifying the layout of the live visualization.

Create the Core object

The acq object can now be added to the LDAQ.Core class:

ldaq = LDAQ.Core(acq)

Set the trigger

Often the measurement is started when one of the signal excedes a certain level. This can be achieved by setting the trigger on one of the data sources by calling the set_trigger method:

ldaq.set_trigger(
    source='DataSource',
    level=100,
    channel=0,
    duration=11,
    presamples=10
)

Where:

  • source: the name of the acquisition object on which the trigger is set.

  • level: the trigger level.

  • channel: the channel on which the trigger is set.

  • duration: the duration of the trigger in seconds.

  • presamples: the number of samples to be acquired before the trigger is detected.

Run the measurement

The measurement can now be started by calling the run method:

ldaq.run()

Save the measurement

After the measurement is completed, the data can be saved by calling:

ldaq.save_measurement(
    name='my_measurement',
    root=path_to_save_folder,
    timestamp=True,
    comment='my comment'
)

Where:

  • name: required, the name of the measurement, without extension (.pkl is added automatically).

  • root: optional, the path to the folder where the measurement will be saved. If it is not given, the measurement will be saved in the current working directory.

  • timestamp: optional, add a timestamp at the beginning of the file name.

  • comment: optional, a comment to be saved with the measurement.

What else can I do with LDAQ?

  • Add generation to the LDAQ.Core object (see generation).

  • Apply virtual channels to acquisition objects, to perform calculations on the acquired data (see virtual channels).

  • Add visualization to the LDAQ.Core object (see visualization).

  • Apply functions to measured data in real-time visualization (see visualization).

  • Add multiple acquisition and signal generation objects to LDAQ.Core (see multiple sources).

  • Define a NI Task in your program and use it with LDAQ (see NI Task).

  • Currently the package supports a limited set of devices from National Instruments, Digilent, FLIR, Basler, Telops and devices using serial communication (see supported devices).

  • Create your own acquisition class by overriding just few methods (see custom acquisition).

Download files

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

Source Distribution

ldaq-1.3.2.tar.gz (13.4 MB view details)

Uploaded Source

Built Distribution

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

ldaq-1.3.2-py3-none-any.whl (117.0 kB view details)

Uploaded Python 3

File details

Details for the file ldaq-1.3.2.tar.gz.

File metadata

  • Download URL: ldaq-1.3.2.tar.gz
  • Upload date:
  • Size: 13.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ldaq-1.3.2.tar.gz
Algorithm Hash digest
SHA256 79cb324cbae720f2a4e298661f3db39758f73cac4a1ee20c565fe19c477418b7
MD5 17530cffa256f768ecfb23e43b3d5364
BLAKE2b-256 a466be94794efaf091ab88c1ca4cf89b5da7f38012dc8f74ea88c48e4c46ab50

See more details on using hashes here.

File details

Details for the file ldaq-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: ldaq-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 117.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ldaq-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1fe47d2f47a222d14c1ac3d00465331bced0b6b24c6ec3f1f6d173fc3c98598
MD5 b67abaf8e3f5ca46d69c6596abe9efb0
BLAKE2b-256 7b3f9e4b5b3ca620c49b639fcd5a25a074debb8cf445111bb47903254a76b501

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.3.2 This release

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.4

2 files

1.0.3

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page