PYDAQ
PYDAQ: Data Acquisition and Experimental Analysis with Python - Published in JOSS (2023)
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
Scientific Fields
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
Metadata Files
README.md
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
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
- Website: www.samirmartins.com.br
- Twitter: MartinsSMilani
- Repositories: 2
- Profile: https://github.com/samirmartins
PhD in Electrical Engineering. Professor. Working with mathematical models since 2007.
JOSS Publication
PYDAQ: Data Acquisition and Experimental Analysis with Python
Authors
Tags
Data Acquisition Arduino NIDAQ System Identification Mathematical ModelingCitation (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
Top Committers
| Name | 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
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
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
- PyQt5 *
- PySimpleGUI *
- matplotlib *
- nidaqmx *
- numpy *
- pyserial *
