yadg version history
yadg version next
Developed in the ConCat Lab at Technische Universität Berlin (Berlin, DE).
New features in yadg-next are:
Support for Battery Capacity Determination (BCD) technique in
yadg.extractors.eclab.mprandyadg.extractors.eclab.mpt. Note that theSet I/Cparameters in BCD are renamed toSet I/C 1andSet I/C 2in bothmprandmptfiles. Thank you to Joachim Laviolette for providing test files.
Breaking changes in yadg-next are:
For all extractors, the
source(positional) argument now must be specified instead offnorpath.In
yadg.extractors.agilent.csv, thesignaldata variable now haselution_timeas a proper coordinate. Previously, theelution_timewas expanded manually to the length of the largest trace present in the file, withnp.nanused as padding for shorter traces. An arbitrary coordinate_was also present. Now,elution_timeis expanded automatically byxarray.concat(), insertingnp.naninto thesignaldata variable as necessary forelution_timewhich are not present in each trace.
Bug fixes in yadg-next include:
The parameter
Set I/Cinyadg.extractors.eclab.mprfiles should beC / Nwhen set to 1, notC.The command line argument
--ignore-merge-errorswas not being passed to the individual extractors when using theyadg extractsyntax.Fixed passing of
yadg.extractors.fusion.jsonfiles where no species are present.
yadg version 6.2
Developed in the ConCat Lab at Technische Universität Berlin (Berlin, DE).
Breaking changes in yadg-6.2 are:
Some column names in
yadg.extractors.eclab.mprfiles might have changed, as EC-Lab 11.62 has a new naming convention for derived quantities. In particular:
Energy chargeis nowEnergy we charge,
Energy dischargeis nowEnergy we discharge,
Pis nowPwe,
Ris nowRwe.This will also unfortunately affect processing older
mprfiles. Depending on which version of EC-Lab was used to convert themprfile to themptfile, themptfile will contain the old (i.e.PorEnergy charge) or the new (i.e.PweorEnergy we charge) column names. For yadg internal test-suite, we still attempt an exact match betweenmprandmptcolumns; if themprcolumn is not present in themptfile, we look for an equivalent column without theweannotation.The
control/V/mAcolumn and themodecolumn inmpras well asmprfiles is now used to create thecontrol_V(unitsV) andcontrol_I(unitsmA) columns in both kinds of files:
The original
control/Vandcontrol/mAwhich are present inmptand may be present inmprfiles are now overwritten by values from thecontrol/V/mAcolumn, which is always present.In any given row, either
control_Vorcontrol_Iis set, with the other (non-controlling) column beingnp.nan.The currently known
modevalues correspond to:
1for constant current (control_I= limiting value)
2for constant voltage (control_V= limiting value)
3for open circuit (control_I= forced to zero)Thanks to Graham Kimbell from Empa for helping out with these changes.
Bug fixes in yadg-next include:
Fixed metadata extraction in
yadg.extractors.eclab.mptso that multipleComments:lines are concatenated instead of just the last line being kept.Added further
Set I/Cparameters. Thanks to @Locki3 for providing test files.Fixed
param formatanddata_columnin CV files generated with EC-Lab version 11.50 using theyadg.extractors.eclab.mprmodule. Thank you to J.N. Hausmann from Helmholtz-Zentrum Berlin für Materialien und Energie for providing the test files.Fixed parsing of various kinds of Modulo Bat files in
yadg.extractors.eclab.mpr. Thank you to Johannes Baller for providing test files.Fixed parsing of missing columns in GCPL files in
yadg.extractors.eclab.mpr. Thank you to Joachim Laviolette for providing test files.Columns in
yadg.extractors.eclab.mprfiles may have different meanings based on which other columns are also present in the files, see issue 225. Added a (hopefully extensible) way to tackle such conflicts and clarified the warnings.It looks like there are only 256 columns in
mprfiles, with higher IDs corresponding toid % 256in all cases. Thanks to Graham Kimbell for first pointing this out.
yadg version 6.1
Developed in the ConCat Lab at Technische Universität Berlin (Berlin, DE).
New features in yadg-6.1 are:
Added support for extraction from different sources rather than just files.
Extraction from a
bytesobject can be requested usingyadg.extractors.extract_from_bytes().Currently, this is only implemented for
yadg.extractors.eclab.mpr, which can now extract eitherPathorbytesobjects.Thanks to @carla-terboven <https://github.com/carla-terboven>.
Breaking changes in yadg-6.1 are:
The
extract()function of eachExtractormodule now expects a positionalsourceargument instead of a required keyword argumentfn. The internalExtractorAPI has changed in the following way:
Passing
fntoExtractorsis deprecated and will stop working in a future version ofyadg.If an extraction from a file is requested,
Pathmust now be passed assource.An extraction from another object type can be implemented by registering a dispatch function for that type in each
Extractor.Note that the
yadg.extractors.extract()function still requests the usual two arguments, i.e. anfilename: strandpath: Path | str. The new behaviour does not affect this high-level external API.
Bug fixes in yadg-6.1 include:
Fixed metadata extraction and added support for another version of the CVA technique in
yadg.extractors.eclab.mpr. Thanks to @acavell for providing test files.Fixed timestamp parsing for D/M/Y formats of PicoVNA files in
yadg.extractors.touchstone.snp.Fixed issue when the filename was passed to
yadg.extractors.touchstone.snpasPathinstead ofstr.
yadg version 6.0
Developed in the ConCat Lab at Technische Universität Berlin (Berlin, DE).
New features in yadg-6.0 are:
Implemented support for merged/appended files in
yadg.extractors.eclab.mpr. Test files taken from the data available at https://zenodo.org/doi/10.5281/zenodo.12165685. Thanks to Arnd Koeppe from KIT for bringing the issue up.Implemented support for the Modular Potentio technique in
yadg.extractors.eclab.mpr. Thanks to Graham Kimbell and Clea Burgel from Empa for providing test data.Implemented support for the Constant Current and Constant Voltage techniques in
yadg.extractors.eclab.mpr. Thanks to Carla Terboven from HZB for providing test data.
Breaking changes in yadg-6.0 are:
As
DataTreeis now merged into thexarraymodule,yadg-6.0no longer depends onxarray-datatree. For data storedNetCDFfiles, this shouldn’t be a problem, as they can be read usingxarray.open_datatree(). However, if you stored adatatree.DataTreeas apickle, and attempt to load it usingxarray.DataTree, this may not work!The parameter specification within the
original_metadataentries inmprshould now be consistent withmpt. This means renaming of most parameters inmprto matchmpt, and a much larger parameter map to map from theintvalues stored inmprfiles to theirstrcounterparts. Thanks to Carla Terboven from HZB for the contribution!Support for
python <= 3.9has been dropped. This is a consequence ofyadg-6.0requiringxarray >= 2024.10.0. However, support forpython == 3.13is now included.
Bug fixes in yadg-6.0 include:
Increased supported I-range values in
yadg.extractors.eclabup to 193.Implemented support for a 33-parameter GCPL file in
yadg.extractors.eclab.mpr.Fixed parsing of optional metadata in
yadg.extractors.fusion.json. Thanks to Emiliano Dal Molin for finding the bug and providing test data.
yadg version 5.1
Developed in the ConCat Lab at Technische Universität Berlin (Berlin, DE).
New features since yadg-5.0 are:
Support for Touchstone
.sNpfiles using theyadg.extractors.touchstone.snpextractor. Test files are truncated to first 100 lines, they were obtained from the following DOIs:
Device_r_*um.s1pfrom https://zenodo.org/doi/10.5281/zenodo.7850136
SCENARIO*_pulserside_30k_3G.s1pfrom https://zenodo.org/doi/10.5281/zenodo.10016477
CABLE_3_5MM_1N_TYPE_CONNECTORS.S2Pfrom https://zenodo.org/doi/10.5281/zenodo.10016477
Fig8_*cm.s1pfrom https://zenodo.org/doi/10.5281/zenodo.10222705
VNA_radial_middle.s*pfrom https://zenodo.org/doi/10.5281/zenodo.7339709Support for EZChrom
.datfiles using theyadg.extractors.ezchrom.datextractor. Test files were provided by Z. Asahi from FU Berlin, and J. Schumann from HU Berlin. The data extracted from the.datfiles is cross-checked against the data obtained from.ascfiles using theyadg.extractors.ezchrom.ascextractor.Support for PicoTech PicoLog
.picologfiles (such as those created by the TC-08 thermocouple monitor) using theyadg.extractors.picolog.tc08extractor. Test files were provided by F. Bernasconi from Empa.Support for the
CVA(Cyclic Voltammetry Advanced) technique in theyadg.extractors.eclabextractors. Test files were provided by S. B. Scott from University of Copenhagen.Support for files generated with EC-Lab 11.50 using the
yadg.extractors.eclabmodule. Test files were provided by@fg-personaland@tk-4767on GitHub, and E. Svaluto-Ferro from Empa.
Other changes in yadg-5.1 are:
The storage of original metadata present in the extracted files as well as yadg-related metadata has been standardised in all extractors.
The dataschema has been simplified, eliminating parsers in favour of extractors.
The code has been reorganised to highlight the extractor functionality in favour of parsers.
Locale-aware functionality now uses
babelinstead of the built-inlocalemodule. This means thelocaleargument should now be astrcontaining at least the 2-letter country code, ideally also a territory (e.g.en_USorde_CH). As ofyadg-5.1, nolocale.setlocale()is called, making locale procesing in yadg thread-safe.The processing of uncertainties in
yadg.extractors.eclabhas been changed, with derived quantities now having uncertainties based on the relative error in the measured voltage and / or current.The
yadg extractfunctionality now accepts--locale,--timezone, and--encodingas optional arguments.The
yadg.extractors.extract()function now always returns axarray.DataTree.The meta-only functionality of
yadg extractnow returns a dict with the node names of thexarray.DataTreeas keys and the metadata as values.
Bug fixes in yadg-5.1 include:
Fixed incorrect unit assignment when
/was substituted to_in column names.Fixed incorrect annotation of ancillary variables:
standard errorshould bestandard_error.Fixed incorrect parsing of units in the
yadg.extractors.ezchrom.ascparser. Now, the25 μVunit will be correctly replaced by justμV(without modifying data), which can be understood bypint.Fixed processing of duplicate column names in
yadg.extractors.eclab. Now, duplicate columns will haveduplicateprepended to their name and a warning will be raised.Added several new I-range values to
yadg.extractors.eclabparsers. Now, I-range values up to 130 are supported.Fixed incorrect column name (
Energyto|Energy|) inyadg.extractors.eclab.mpr.Removed column renaming for
Analog IN 1andAnalog IN 2to maintain consistency withinyadg.extractors.eclab.Reworked parsing of
.mptfile headers inyadg.extractors.eclab.mpt. The parser is now more stable, and the original labels are used without renaming.
yadg version 5.0
Developed at Technische Universität Berlin (Berlin, DE) and at Empa (Dübendorf, CH).
New features since yadg-4.2 are:
Support for
DataSchema-5.0.The output format of
yadgis now aNetCDFfile (.nc), as written by thexarray.DataTreeclass.The supplied dataschemas are now automatically updated, yielding the latest verison of dataschema prior to parsing.
Added
yadg extractusage, with optional--meta-onlyswitch, for a quick data or meta data extraction from individual files. This implements the MaRDA Metadata Extractors WG inteface.
Backwards-incompatible changes include:
Data post-processing within
yadghas been removed, following its deprecation inyadg-4.2. All previously included post-processing functionality should be available indgpost-2.0. If you find functionality that has been broken sinceyadg-4.2and which cannot be implemented in dgpost, please file an issue on GitHub with example files.The
yadg updatefunctionality is now only for updating dataschema; the ability to update datagrams has been removed.The parameter
transposefromelectrochemparser is no longer available; all electrochemistry data is returned as plain timesteps.The
valvenumber in thefusion-jsonextractor ofchromtraceis now stored asdatainstead ofmetadata.
Bug fixes include:
the
electrochemparser now properly parses files withWAITtechnique;the
electrochemparser understands more versions of theMBtechnique versions in thebiologic.mprfiletype;the
electrochemparser can handle localized versions of data in thebiologic.mptfiletype;the
chromtraceparser now properly unzips data when using theagilent.dxfiletype.
yadg version 4.2
Developed at Empa - Materials Science and Technology, in Dübendorf.
New features since v4.1 are:
a new
chromdataparser for parsing post-processed chromatography data,the
basiccsvparser has an additional parameterstrip, allowing the user to strip extra characters (such as"or') from column headers and data,
yadgwill now warn you if a newer version is available on PyPI.
Backwards-incompatible changes include:
the
chromtraceparser now focuses on parsing chromatography traces only, usechromdatafor parsing post-processed chromatographic data;the
flowdataparser now no longer creates a default"flow"entry in derived data;data post-processing within
yadg, including chromatographic trace integration, reflection coefficient processing, and calibration functionality is deprecated in favour ofdgpost.
Bug fixes include:
the
process_row()from thebasiccsvparser now handles empty cells by creating sparse datagrams;the
drycalfiletypes inflowdatashould now work for overnight experiments;the metadata in
chromdataandchromtracewas modified to only include true metadata as opposed to sample data;the
electrochemparser now allows for toggling the transposing of PEIS/GEIS traces.
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 957189. The project is part of BATTERY 2030+, the large-scale European research initiative for inventing the sustainable batteries of the future.
yadg version 4.1.0
Developed at Empa - Materials Science and Technology, in Dübendorf.
New features since v4.0.0 are:
ability to archive raw data and reference the archive from within the datagram, by using
yadg preset --process --archivemigrated dataschema validation from an in-house validation routine to a Pydantic-based model, see
dgbowl_schemas.yadgadded the
xpstraceparser with support for Panalytical filesadded support for
tomato.jsonfiletypes to theelectrochemanddummyparsersadded support for
fusion.zipfiletypes to thechromtraceparser
Bug fixes and other modifications include:
yadg.parsers.chromtraceformat modified:
if peak integration data is present in the raw data file, this is now included in the
"raw"key directly. The included quantities areheight,area,concentration, andxoutfor every detected species.if peak integration is to be carried out by yadg, the resulting data is now available in the
"derived"key directly. The included quantities areheight,area,concentration, in addition toxoutwhich was already part of the spec in v4.0.0.peak integration is now more reliable by applying a threshold around zero for inflection point detection
yadg.parsers.electrochemformat fixes:
the PEIS/GEIS data is split into timesteps, not cycles.
NaNandInfin the metadata of some input formats should now be handled properly, without producing a non-compliant json file.added partial support for
mprfiles including theExtDevmodule
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 957189. The project is part of BATTERY 2030+, the large-scale European research initiative for inventing the sustainable batteries of the future.
yadg version 4.0.1
A major rewrite of yadg. Developed at Empa - Materials Science and Technology, in Dübendorf. The code includes documentation, test suite, and is tested using CI. This version has been published in JOSS [Kraus2022b].
Major features are:
validation of schemas and datagrams
uncertainties and units for all measured quantities stored by default and enforced by the validators
raw data is now retained by default and separated from derived data
several new parsers, including:
electrochemistry: a parser for electrochemistry data, currently supporting BioLogic cyclers via binary.mprand text.mptfiles generated in EC-Lab. Supports standard methods as well as impedance spectroscopy traces (PEIS, GEIS) and complex methods (MB).
masstrace: a parser for mass spectroscopy data, supporting binary Quadstar.sacfiles.
basiccsv: a tabulated data parser, with row processing written for modular use in other parsers
xpstrace: a parser for x-ray photoelectron spectroscopy data, supporting ULVAC PHI Multipak XPS traces (.spe)large updates to older parsers:
chromtrace: an updated, unified chromatography trace parser. The trace integration routine has been completely re-written. The parser now supports multiple formats, including binary Agilent.chand.dx, and Fusion.jsonformat in addition to the formats previously supported bygctrace.
qftrace: updated with several bug fixes and performance improvements, no longer using(np.matrix).
Other, minor features include:
a consistent interface for supplying calibration data
versioning of datagrams as well as update pathways from older schema files
schema preset functionality, for routine applications of yadg to structured raw data archives
externaldate functionality for completing and/or replacing deduced timestamps using external sources in a unified fashion
validation of units present in the datagrams
New in version 4.0.1:
fixed accuracy of phase in electrochemistry files to 1°.
fixed splitting of GEIS/PEIS traces in a single file into multiple timesteps
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 957189. The project is part of BATTERY 2030+, the large-scale European research initiative for inventing the sustainable batteries of the future.
yadg version 3.1.0
First released version of yadg, containing functionality developed at the Fritz Haber Institute in Berlin. Design ideas, decisions, and workflow described in [Kraus2022a].
Major features are:
yadg is now a python package
gctrace: support for gas-phase chromatrography, including:
trace integration,
EZChrom ASCII export format,
CHROMTAB ASCII export format,
qftrace: support for reflection trace measurements, including:
fitting of quality factor using Lorentzian and naive methods
fitting of quality factor using Kajfez’s circle fitting method
meascsv: support for in-house MCPT logger for flow and temperature data