From 1f655899396475e550c991c0d15a8342c730eec6 Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm <philipp@uvos.xyz> Date: Thu, 11 Jul 2024 16:42:44 +0200 Subject: [PATCH] scripts: createdataset: create a tar file instead of a directory of files --- scripts/createdataset.py | 17 +++++++++++++---- scripts/spectrafile.py | 15 +++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/scripts/createdataset.py b/scripts/createdataset.py index a7d126d..6315b97 100644 --- a/scripts/createdataset.py +++ b/scripts/createdataset.py @@ -1,6 +1,7 @@ import argparse import os from tqdm import tqdm +import tarfile from chargefile import ChargeFile from spectrafile import SpectraFile @@ -39,9 +40,17 @@ if __name__ == "__main__": step = int(tokens[0]) cellid = int(tokens[1]) substep = int(tokens[2]) - celldir = os.path.join(args.out, str(cellid)) - if not os.path.exists(celldir): - os.makedirs(celldir) sf = SpectraFile(os.path.join(args.data, filename), cellid, step, substep, charge_files, len(cells)) - sf.write(celldir) + sf.write(args.out) + + try: + os.remove(f"{args.out}.tar") + except FileNotFoundError: + pass + tar = tarfile.open(f"{args.out}.tar", mode="x") + for filename in tqdm(os.listdir(args.out)): + path = os.path.join(args.out, filename) + tar.add(path, arcname=os.path.split(path)[-1]) + os.remove(path) + os.rmdir(args.out) diff --git a/scripts/spectrafile.py b/scripts/spectrafile.py index 3475e1e..d1f4c1d 100644 --- a/scripts/spectrafile.py +++ b/scripts/spectrafile.py @@ -26,11 +26,14 @@ class SpectraFile: raise ParseError(f"file name and file content of SpectraFile {filename} do not match") def write(self, directory: str): - meta_dsc_string = "step, substep, cellid, temparature, ocv, charge_cycles, thermal_cycles, last_avg_cap, last_avg_step, last_cap, last_cap_step, soc" - metastring = f"{self.step}, {self.substep}, {self.cellid}, {self.temperature}, {self.ocv}, {self.meta.charge_cycles}, {self.meta.thermal_cycles}, " - metastring += f"{self.meta.last_avg_cap}, {self.meta.last_avg_cap_step}, {self.meta.last_cap}, {self.meta.last_cap_step}, {self.meta.soc}" - - self.spectra.headerDescription = meta_dsc_string - self.spectra.header = metastring + metaList = [float(self.step), float(self.substep), float(self.cellid), float(self.temperature), float(self.ocv), + float(self.meta.charge_cycles), float(self.meta.thermal_cycles), float(self.meta.last_avg_cap), float(self.meta.last_avg_cap_step), + float(self.meta.last_cap), float(self.meta.last_cap_step), float(self.meta.soc)] + self.spectra.setLabels(metaList) + meta_dsc_strings = ["step", "substep", "cellid", "temparature", "ocv", "charge_cycles", "thermal_cycles", + "last_avg_cap", "last_avg_step", "last_cap", "last_cap_step", "soc"] + self.spectra.headerDescription = "File origin" + self.spectra.header = "CoinCellHell mesurement file" + self.spectra.labelNames = meta_dsc_strings self.spectra.saveToDisk(os.path.join(directory, self.filename)) -- GitLab