PYDAQ

PYDAQ: Data Acquisition and Experimental Analysis with Python - Published in JOSS (2023)

https://github.com/samirmartins/pydaq

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

arduino arduino-library graphical-user-interface national-instruments nidaq nidaqmx pyside6 python real-datasets step-response

Scientific Fields

Earth and Environmental Sciences Physical Sciences - 40% confidence
Neuroscience Life Sciences - 40% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Data Acquisition and Experimental Analysis with Python and Graphical User Interface

Basic Info
  • Host: GitHub
  • Owner: samirmartins
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Homepage: https://pydaq.org
  • Size: 99 MB
Statistics
  • Stars: 19
  • Watchers: 2
  • Forks: 8
  • Open Issues: 12
  • Releases: 5
Topics
arduino arduino-library graphical-user-interface national-instruments nidaq nidaqmx pyside6 python real-datasets step-response
Created almost 3 years ago · Last pushed 4 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

“PYDAQ”

PyPI version License python status contributors downloads openissues issuesclosed forks stars

PYDAQ - Data Acquisition and Experimental Analysis with Python

www.pydaq.org


Using Python for applications with experimental data (Arduino and NIDAQ boards)

This package was initially designed to use an experimental device for data acquisition and signal generation when performing different experiments, such as a step-response test. However, from version v0.0.5 onwards, PYDAQ introduces different functionalities, including real-time system identification using experimental data.

One can use PYDAQ using different boards (check jupyter notebook examples folder), through a Graphical User Interface or via command line.

It is noteworthy that this application makes data acquisition, system identification and empirical experiments simpler, faster and easier. This is relevant when the user needs empirical data to construct black box linear and nonlinear models, commomly used in research projects in forecasting and model-based control schemes.

The code provided here allows user to save acquired data in .dat files in a path specified by the user (or at Desktop, if no path is provided), as well as send a user-defined data, which can be any nonlinear input signal (you are strongly advised to check the docs)

In what follows you will find

  • Installation and Requirements
  • Quick view and Main features
  • Using Graphical User Interface
  • Screenshots

Installation and Requirements

The fastest way to install PYDAQ is using pip:

console pip install pydaq

PYDAQ requires:

  • Driver of the board used (Arduino or National Instruments NIDAQ)
  • nidaqmx (>=0.6.5) for data acquisition from National Instruments Boards
  • matplotlib (>=3.5.3) as a visualization tool
  • numpy (>=1.22.3) to process data
  • PySide6 (>=6.7.1), PySide6Addons, PySide6Essentials and shiboken6 as a Graphical User Interface framework
  • pyserial (>=3.5) to manage data to/from Arduino
  • sysidentpy (==0.3.4) and bitarray (>=3.0.0) for model acquisition/signal generation
  • packaging (>=24.1).

NOTE 1: In this version of pydaq (0.0.5), (NI-DAQmx drivers) must be installed, even if the user is only using Arduino Boards. This issue will be addressed in future versions, allowing Arduino users to use PYDAQ without having to install NI-DAQmx drivers.

NOTE 2: PYDAQ is fully tested up to Python 3.10. It may run on versions above this, but without guarantees.


Quick view and Main features

| Feature | Description | |-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | Send Data (Arduino/NIDAQ) | This feature allows the user to send data through any Arduino/NIDAQ board using a graphical user interface | | Get Data (Arduino/NIDAQ) | Here the user is able to get data from a(n) Arduino/NIDAQ board (using any terminal configuration - Diff, RSE, NRSE - in NIDAQ case), sample time and other parameters. Acquired data can also be saved and plot for further applications | | Step Response (Arduino/NIDAQ) | In this feature one can perform an automatic step response experiment using a(n) Arduino/NIDAQ board. Data genereted by the experiment can also be saved to be used in further applications, such as obtaining linear and nonlinear models from acquired data | | Get Model (Arduino/NIDAQ) | The user can obtain mathematical models experimentally using Arduino/NIDAQ boards, with various customization options available. The input signal is a PRBS, which can be customized to meet specific needs, and both the input and output signals obtained can be saved for future applications. PYDAQ uses SysIdentPy as a backend for obtaining the models. |


Using GUI (more details in documentation and jupyter notebook examples):

All functionalities for all boards are incorporated in one single window.

Launching the GUI:

```python from pydaq.pydaq_global import PydaqGui

PydaqGui() ```

Further details can be found in documentation.


Screnshots (v0.0.5)

“”


Contributing

You are more than welcome to make your contribution and submit a pull request. To contribute, read this guide.


CITATION

DOI

If you are using PYDAQ on your project, you can cite us as following:

  • Martins, S. A. M. (2023). PYDAQ: Data Acquisition and Experimental Analysis with Python. Journal of Open Source Software, 8(92), 5662. https://doi.org/10.21105/joss.05662

bibtex @article{Martins_PYDAQ_Data_Acquisition_2023, author = {Martins, Samir Angelo Milani}, doi = {10.21105/joss.05662}, journal = {Journal of Open Source Software}, month = dec, number = {92}, pages = {5662}, title = {{PYDAQ: Data Acquisition and Experimental Analysis with Python}}, url = {https://joss.theoj.org/papers/10.21105/joss.05662}, volume = {8}, year = {2023} }

Owner

  • Name: Samir A. M. Martins
  • Login: samirmartins
  • Kind: user
  • Location: São João del-Rei
  • Company: Federal University of São João del-Rei

PhD in Electrical Engineering. Professor. Working with mathematical models since 2007.

JOSS Publication

PYDAQ: Data Acquisition and Experimental Analysis with Python
Published
December 14, 2023
Volume 8, Issue 92, Page 5662
Authors
Samir Angelo Milani Martins ORCID
Department of Electrical Engineering at Federal University of São João del-Rei, Brazil., GCoM - Modeling and Control Group at Federal University of São João del-Rei, Brazil.
Editor
Kyle Niemeyer ORCID
Tags
Data Acquisition Arduino NIDAQ System Identification Mathematical Modeling

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Martins
  given-names: Samir Angelo Milani
  orcid: "https://orcid.org/0000-0003-1702-8504"
contact:
- family-names: Martins
  given-names: Samir Angelo Milani
  orcid: "https://orcid.org/0000-0003-1702-8504"
doi: 10.5281/zenodo.10377251
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Martins
    given-names: Samir Angelo Milani
    orcid: "https://orcid.org/0000-0003-1702-8504"
  date-published: 2023-12-14
  doi: 10.21105/joss.05662
  issn: 2475-9066
  issue: 92
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5662
  title: "PYDAQ: Data Acquisition and Experimental Analysis with Python"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05662"
  volume: 8
title: "PYDAQ: Data Acquisition and Experimental Analysis with Python"

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 6
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 20
  • Pull request review event: 1
  • Pull request event: 14
  • Fork event: 1
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 6
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 20
  • Pull request review event: 1
  • Pull request event: 14
  • Fork event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 272
  • Total Committers: 4
  • Avg Commits per committer: 68.0
  • Development Distribution Score (DDS): 0.213
Past Year
  • Commits: 62
  • Committers: 2
  • Avg Commits per committer: 31.0
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
Samir Martins m****s@g****m 214
rafafariac r****5@g****m 31
jceneziojr j****o@g****m 24
Kyle Niemeyer k****r@f****m 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 14
  • Total pull requests: 22
  • Average time to close issues: almost 2 years
  • Average time to close pull requests: about 16 hours
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 0.29
  • Average comments per pull request: 0.09
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 16
  • Average time to close issues: N/A
  • Average time to close pull requests: about 23 hours
  • Issue authors: 3
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • samirmartins (11)
  • masbah-uddin02 (1)
  • MajesticSquire20 (1)
  • Aaronyap2002 (1)
Pull Request Authors
  • samirmartins (14)
  • rafafariac (6)
  • kyleniemeyer (2)
  • jceneziojr (2)
Top Labels
Issue Labels
enhancement (6) good first issue (4)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 249 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 8
  • Total maintainers: 1
pypi.org: pydaq

Data Acquisition and Experimental Analysis with Python

  • Documentation: https://pydaq.readthedocs.io/
  • License: BSD 3-Clause License Copyright (c) 2023, Samir Angelo Milani Martins All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 0.0.5
    published 12 months ago
  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 249 Last month
Rankings
Dependent packages count: 6.6%
Downloads: 9.6%
Average: 15.6%
Dependent repos count: 30.6%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/draft-pdf.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
pyproject.toml pypi
  • PyQt5 *
  • PySimpleGUI *
  • matplotlib *
  • nidaqmx *
  • numpy *
  • pyserial *