Metadata-Version: 2.1
Name: yadg
Version: 5.0.1
Summary: yet another datagram
Home-page: https://github.com/dgbowl/yadg
Author: Peter Kraus
Author-email: peter@tondon.de
Project-URL: Bug Tracker, https://github.com/dgbowl/yadg/issues
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pint>=0.22
Requires-Dist: pyyaml
Requires-Dist: uncertainties
Requires-Dist: striprtf
Requires-Dist: tzlocal
Requires-Dist: packaging
Requires-Dist: python-dateutil
Requires-Dist: openpyxl>=3.0.0
Requires-Dist: h5netcdf~=1.0
Requires-Dist: xarray-datatree==0.0.12
Requires-Dist: dgbowl-schemas>=116
Requires-Dist: requests
Provides-Extra: testing
Requires-Dist: pytest; extra == "testing"
Provides-Extra: docs
Requires-Dist: sphinx~=7.2; extra == "docs"
Requires-Dist: sphinx-rtd-theme~=1.3.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints<1.20.0; extra == "docs"
Requires-Dist: autodoc-pydantic>=2.0.0; extra == "docs"

[![DOI](https://joss.theoj.org/papers/10.21105/joss.04166/status.svg)](https://doi.org/10.21105/joss.04166)
[![Documentation](https://badgen.net/badge/docs/dgbowl.github.io/grey?icon=firefox)](https://dgbowl.github.io/yadg)
[![PyPi version](https://badgen.net/pypi/v/yadg/?icon=pypi)](https://pypi.org/project/yadg)
[![Github link](https://badgen.net/github/tag/dgbowl/yadg/?icon=github)](https://github.com/dgbowl/yadg/)
[![Github status](https://badgen.net/github/checks/dgbowl/yadg/?icon=github)](https://github.com/dgbowl/yadg/actions/workflows/push-master.yml)


# ![yet another datagram](./docs/source/images/yadg_banner.png)

Set of tools to process raw instrument data according to a *dataschema* into a standardised form called *datagram*, annotated with metadata, provenance information, timestamps, units, and uncertainties. Developed by the [Materials for Energy Conversion](https://www.empa.ch/web/s501) lab at Empa (Dübendorf, CH) and by the [ConCat lab](https://www.tu.berlin/en/concat) at Technische Universität Berlin (Berlin, DE).

![schema to datagram with yadg](./docs/source/images/schema_yadg_datagram.png)

### Capabilities:
- Parsing **tabulated data** using CSV parsing functionality, including Bronkhorst and DryCal output formats.
- Parsing **chromatography data** from gas and liquid chromatography, including several Agilent, Masshunter, and Fusion formats.
- Parsing **reflection coefficient** traces from network analysers.
- Parsing **potentiostat files** for electrochemistry applications. Supports BioLogic file formats.
- Parsing **spectroscopy files** including common XPS, XRD and MS formats.

### Features:
- timezone-aware timestamping using Unix timestamps
- automatic uncertainty determination using data contained in the raw files, instrument specification, or last significant digit
- uncertainty propagation to derived quantities
- tagging of data with units
- extensive *dataschema* and *datagram* validation using provided specifications
- mandatory metadata (such as provenance) is enforced

The full list of capabilities and features is listed in the [project documentation](http://dgbowl.github.io/yadg).

### Installation:
The released versions of `yadg` are available on the Python Package Index (PyPI) under [yadg](https://pypi.org/project/yadg). Those can be installed using:

```bash
    pip install yadg
```

If you wish to install the current development version as an editable installation, check out the `master` branch using git, and install `yadg` as an editable package using pip:

```bash
   git clone git@github.com:dgbowl/yadg.git
   cd yadg
   pip install -e .
```

Additional targets `yadg[testing]` and `yadg[docs]` are available and can be specified in the above commands, if testing and/or documentation capabilities are required.

### Contributors:
- [Peter Kraus](http://github.com/PeterKraus)
- [Nicolas Vetsch](http://github.com/vetschn)

### Acknowledgements

This project has received funding from the following sources:

- European Union’s Horizon 2020 programme under grant agreement No 957189.
- DFG's Emmy Noether Programme under grant number 490703766.

The project is also part of BATTERY 2030+, the large-scale European research initiative for inventing the sustainable batteries of the future.
