Metadata-Version: 2.1
Name: cdl
Version: 0.9.0
Summary: DataLab (CDL) is a data processing and analysis software for scientific and industrial applications
Author-email: Codra <p.raybaut@codra.fr>
License: BSD 3-Clause License
        
        Copyright (c) 2023, Codra, Pierre Raybaut.
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
        
        2. 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.
        
        3. 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.
        
Project-URL: Homepage, https://codra-ingenierie-informatique.github.io/DataLab/
Project-URL: Documentation, https://cdlapp.readthedocs.io/en/latest/
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: <4,>=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: h5py >=3.0
Requires-Dist: NumPy >=1.21
Requires-Dist: SciPy >=1.7
Requires-Dist: scikit-image >=0.18
Requires-Dist: opencv-python >=4.5
Requires-Dist: PyWavelets >=1.1
Requires-Dist: psutil >=5.5
Requires-Dist: guidata >=3.2
Requires-Dist: PlotPy >=2.0
Requires-Dist: QtPy >=1.9
Provides-Extra: dev
Requires-Dist: black ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: Coverage ; extra == 'dev'
Requires-Dist: pyinstaller >=6.0 ; extra == 'dev'
Provides-Extra: doc
Requires-Dist: PyQt5 ; extra == 'doc'
Requires-Dist: sphinx ; extra == 'doc'
Requires-Dist: sphinx-intl ; extra == 'doc'
Requires-Dist: myst-parser ; extra == 'doc'
Requires-Dist: pydata-sphinx-theme ; extra == 'doc'

![DataLab](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/DataLab/main/doc/images/DataLab-banner.png)

[![license](https://img.shields.io/pypi/l/cdl.svg)](./LICENSE)
[![pypi version](https://img.shields.io/pypi/v/cdl.svg)](https://pypi.org/project/CDL/)
[![PyPI status](https://img.shields.io/pypi/status/cdl.svg)](https://github.com/Codra-Ingenierie-Informatique/DataLab)
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/cdl.svg)](https://pypi.python.org/pypi/CDL/)

ℹ️ Created by [Codra](https://codra.net/)/[Pierre Raybaut](https://github.com/PierreRaybaut) in 2023, developed and maintained by DataLab open-source project team.

![DataLab](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/DataLab/main/doc/images/DataLab-Screenshot.png)

ℹ️ DataLab is powered by [PlotPyStack](https://github.com/PlotPyStack) 🚀.

![PlotPyStack](https://raw.githubusercontent.com/PlotPyStack/.github/main/data/plotpy-stack-powered.png)

----

## Overview

DataLab is a generic signal and image processing software based on Python scientific
libraries (such as NumPy, SciPy or scikit-image) and Qt graphical user interfaces
(thanks to the powerful [PlotPyStack](https://github.com/PlotPyStack) - mostly the
[guidata](https://github.com/PlotPyStack/guidata) and
[PlotPy](https://github.com/PlotPyStack/PlotPy) libraries).

DataLab is available as a **stand-alone** application (see for example our all-in-one
Windows installer) or as an **addon to your Python-Qt application** thanks to advanced
automation and embedding features.

✨ DataLab may be remotely controlled from a third-party application (such as Jupyter,
Spyder or any IDE):

* Using the integrated [remote control](https://cdlapp.readthedocs.io/en/latest/features/general/remote.html)
feature (this requires to install on your environment DataLab as a Python package and all its dependencies)

* Using the lightweight [DataLab Simple Client](https://github.com/Codra-Ingenierie-Informatique/DataLabSimpleClient) (`pip install cdlclient`)

See [home page](https://codra-ingenierie-informatique.github.io/DataLab/) and
[documentation](https://cdlapp.readthedocs.io/en/latest/) for more details on
the library and [changelog](https://github.com/Codra-Ingenierie-Informatique/DataLab/blob/main/CHANGELOG.md)
for recent history of changes.

### New in DataLab 0.9

New key features in DataLab 0.9:

* New process isolation feature to run computations safely in a separate process
* New remote control features to interact with DataLab from Spyder, Jupyter or any IDE
* New remote control features to run computations with DataLab from a third-party application
* New data processing and visualization features (see details in [changelog](CHANGELOG.md))
* Fully automated high-level processing features for internal testing purpose, as well as embedding DataLab in a third-party software
* Extensive test suite (unit tests and application tests) with >80% feature coverage

### Credits

Copyrights and licensing:

* Copyright © 2023 [Codra](https://codra.net/), [Pierre Raybaut](https://github.com/PierreRaybaut).
* Licensed under the terms of the BSD 3-Clause (see [LICENSE](https://github.com/Codra-Ingenierie-Informatique/DataLab/blob/main/LICENSE)).

----

## Key features

### Data visualization

| Signal |  Image | Feature                        |
|:------:|:------:|--------------------------------|
|    •   |    •   | Screenshots (save, copy)       |
|    •   | Z-axis | Lin/log scales                 |
|    •   |    •   | Data table editing             |
|    •   |    •   | Statistics on user-defined ROI |
|    •   |    •   | Markers                        |
|        |    •   | Aspect ratio (1:1, custom)     |
|        |    •   | 50+ available colormaps        |
|        |    •   | X/Y raw/averaged profiles      |
|    •   |    •   | User-defined annotations       |

![1D-Peak detection](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/DataLab/main/doc/images/peak_detection.png)

![2D-Peak detection](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/DataLab/main/doc/images/2dpeak_detection.png)

### Data processing

| Signal | Image | Feature                                            |
|:------:|:-----:|----------------------------------------------------|
|    •   |   •   | Process isolation (for runnning computations)      |
|    •   |   •   | Remote control from Jupyter, Spyder or any IDE     |
|    •   |   •   | Remote control from a third-party application      |
|    •   |   •   | Multiple ROI support                               |
|    •   |   •   | Sum, average, difference, product, ...             |
|    •   |   •   | ROI extraction, Swap X/Y axes                      |
|    •   |       | Semi-automatic multi-peak detection                |
|        |   •   | Rotation (flip, rotate), resize, ...               |
|        |   •   | Flat-field correction                              |
|    •   |       | Normalize, derivative, integral                    |
|    •   |   •   | Linear calibration                                 |
|        |   •   | Thresholding, clipping                             |
|    •   |   •   | Gaussian filter, Wiener filter                     |
|    •   |   •   | Moving average, moving median                      |
|    •   |   •   | FFT, inverse FFT                                   |
|    •   |       | Interactive fit: Gauss, Lorenzt, Voigt, polynomial |
|    •   |       | Interactive multigaussian fit                      |
|    •   |   •   | Computing on custom ROI                            |
|    •   |       | FWHM, FW @ 1/e²                                    |
|        |   •   | Centroid (robust method w/r noise)                 |
|        |   •   | Minimum enclosing circle center                    |
|        |   •   | Automatic 2D-peak detection                        |
|        |   •   | Automatic contour extraction (circle/ellipse fit)  |

![Contour detection](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/DataLab/main/doc/images/contour_detection.png)

![Multi-gaussian fit](https://raw.githubusercontent.com/Codra-Ingenierie-Informatique/DataLab/main/doc/images/multi_gaussian_fit.png)

----

## Installation

### From the installer

DataLab is available as a stand-alone application, which does not require any Python
distribution to be installed. Just run the installer and you're good to go!

The installer package is available in the [Releases](https://github.com/Codra-Ingenierie-Informatique/DataLab/releases) section.

### Dependencies and other installation methods

See [Installation](https://cdlapp.readthedocs.io/en/latest/intro/installation.html)
section in the documentation for more details.
