move data formating scripts into this repo

This commit is contained in:
Carl Philipp Klemm
2024-08-13 16:27:41 +02:00
parent a1cfee1955
commit 31444f919e
7 changed files with 490 additions and 0 deletions

32
scripts/soc_estimation.py Normal file
View File

@ -0,0 +1,32 @@
from scipy.optimize import curve_fit
from scipy.interpolate import splrep, splev
import csv
import argparse
import numpy
import matplotlib.pyplot as plt
from eisgenerator import EisSpectra
import io
import tarfile
from tqdm import tqdm
from spectrafile import SpectraFile
def add_soc_estimate(spectras: list[SpectraFile]):
data = [list(), list()]
for spectra in spectras:
if not spectra.meta.soc <= 0:
data[0].append(spectra.ocv)
data[1].append(spectra.meta.soc)
ndata = numpy.asarray(data)
ndata.sort(1)
knots = 9
qs = numpy.linspace(0, 1, knots)[1:-1]
knots = numpy.quantile(ndata[0], qs)
tck = splrep(ndata[0], ndata[1], t=knots, k=3)
estimates = splev(ndata[0], tck)
for spectra in spectras:
spectra.meta.soc_estimate = splev(spectra.ocv, tck)