def check_silicon_2(): log.setup_logging(default_level=logging.INFO) my_data = cellreader.CellpyData() filename = "../../../testdata/hdf5/20160805_test001_45_cc.h5" assert os.path.isfile(filename) my_data.load(filename) my_data.set_mass(0.1) cha, volt = my_data.get_ccap(2) v, dq = ica.dqdv(volt, cha) # log.setup_logging(default_level=logging.DEBUG) print("* creating a silicon peak ensemble:") silicon = Silicon(shift=-0.1, max_point=dq.max(), sigma_p1=0.06) print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("Setting crystalline") silicon.crystalline = True print("Is jitter?", end=" ") print(silicon.jitter) print(silicon) res1 = silicon.fit(-dq, x=v) print(silicon) print(res1.fit_report())
def _extract_dqdv(cell_data, extract_func, last_cycle): """Simple wrapper around the cellpy.utils.ica.dqdv function.""" from cellpy.utils.ica import dqdv list_of_cycles = cell_data.get_cycle_numbers() if last_cycle is not None: list_of_cycles = [c for c in list_of_cycles if c <= int(last_cycle)] logger.debug(f"only processing up to cycle {last_cycle}") logger.debug(f"you have {len(list_of_cycles)} cycles to process") out_data = [] for cycle in list_of_cycles: try: c, v = extract_func(cycle) v, dq = dqdv(v, c) v = v.tolist() dq = dq.tolist() except NullData as e: v = list() dq = list() logger.info(" Ups! Could not process this (cycle %i)" % cycle) logger.info(" %s" % e) header_x = "dQ cycle_no %i" % cycle header_y = "voltage cycle_no %i" % cycle dq.insert(0, header_x) v.insert(0, header_y) out_data.append(v) out_data.append(dq) return out_data
def check_backprop(): print("Checking back prop") log.setup_logging(default_level=logging.INFO) my_data = cellreader.CellpyData() filename = "../../../testdata/hdf5/20160805_test001_45_cc.h5" assert os.path.isfile(filename) my_data.load(filename) my_data.set_mass(0.1) cha, volt = my_data.get_ccap(2) v, dq = ica.dqdv(volt, cha) # log.setup_logging(default_level=logging.DEBUG) print("* creating a silicon peak ensemble:") silicon = Silicon(shift=-0.1, max_point=dq.max(), sigma_p1=0.06) print(silicon) print("- peak values -") print(f"val: {silicon.params['Si01sigma']}") # sigma_p1 print(f"val: {silicon.params['Si01center']}") # center - b print("- setting some new values -") silicon.set_param("Si01center", value=0.18) print(f"val: {silicon.params['Si01sigma']}") print(f"val: {silicon.params['Si01center']}") silicon._back_propagation_from_params() new_shift = silicon.shift new_max_point = silicon.max_point new_sigma_p1 = silicon.sigma_p1 print("- calculated back prop gives the following updated values") print(silicon) print("- setting the values to a new object") another_silicon = Silicon( shift=new_shift, max_point=new_max_point, sigma_p1=new_sigma_p1, compress=1.0, expand=1.0, ) print(another_silicon) print(f"val: {another_silicon.params['Si01sigma']}") print(f"val: {another_silicon.params['Si01center']}")
def check_graphite(): log.setup_logging(default_level=logging.INFO) my_data = cellreader.CellpyData() filename = "../../../testdata/hdf5/20160805_test001_45_cc.h5" assert os.path.isfile(filename) my_data.load(filename) my_data.set_mass(0.1) cha, volt = my_data.get_ccap(2) v, dq = ica.dqdv(volt, cha) # log.setup_logging(default_level=logging.DEBUG) print("* creating a silicon peak ensemble:") graphite = Graphite(shift=-0.1) print("Is jitter?", end=" ") print(graphite.jitter) print(graphite) res1 = graphite.fit(-dq, x=v) print(graphite) print(res1.fit_report())
def check_silicon(): log.setup_logging(default_level=logging.INFO) my_data = cellreader.CellpyData() filename = "../../../testdata/hdf5/20160805_test001_45_cc.h5" assert os.path.isfile(filename) my_data.load(filename) my_data.set_mass(0.1) cha, volt = my_data.get_ccap(2) v, dq = ica.dqdv(volt, cha) # log.setup_logging(default_level=logging.DEBUG) print("* creating a silicon peak ensemble:") silicon = Silicon(shift=-0.1, max_point=dq.max(), sigma_p1=0.06) print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("* syncing hints:") silicon.create_hints_from_parameters() print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("* updating the Si02sigma parameter:") silicon.set_param("Si02sigma", minimum=0.02, vary=False) print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("* reset peaks:") silicon.reset_peaks() print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("WITH AUTO SYNC") print("* creating a silicon peak ensemble:") silicon = Silicon(shift=-0.1, max_point=dq.max(), sigma_p1=0.06, sync_model_hints=True) print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("* syncing hints:") silicon.create_hints_from_parameters() print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("* updating the Si02sigma parameter:") silicon.set_param("Si02sigma", minimum=0.02, vary=False) print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print("* reset peaks:") silicon.reset_peaks() print(f"hint: {silicon.peaks.param_hints['Si02sigma']}\n" f"val: {silicon.params['Si02sigma']}") print() print(" Fitting ".center(80, "-")) silicon = Silicon(shift=-0.1, max_point=dq.max(), sigma_p1=0.06) print(silicon) res1 = silicon.fit(-dq, x=v) print(res1.fit_report()) print() print("New meta params") print(silicon) print("Setting crystalline") silicon.crystalline = True
def check_backprop_composite(): print("Checking back prop for composite ensamble") log.setup_logging(default_level=logging.INFO) my_data = cellreader.CellpyData() filename = "../../../testdata/hdf5/20160805_test001_45_cc.h5" assert os.path.isfile(filename) my_data.load(filename) my_data.set_mass(0.1) cha, volt = my_data.get_ccap(2) v, dq = ica.dqdv(volt, cha) # log.setup_logging(default_level=logging.DEBUG) print("* creating a silicon peak ensemble:") si_g_composite = CompositeEnsemble( Silicon(shift=-0.1, max_point=dq.max(), sigma_p1=0.06), Graphite(shift=-0.03)) print(si_g_composite) print("peak values:") print(f"val: {si_g_composite.params['Si01sigma']}") # sigma_p1 print(f"val: {si_g_composite.params['Si01center']}") # center - b print(f"val: {si_g_composite.params['G01center']}") # center - graphite print("\nsetting some new values:") si_g_composite.set_param("Si01center", value=0.18) si_g_composite.set_param("G01center", value=0.14) print(f"val: {si_g_composite.params['Si01sigma']}") print(f"val: {si_g_composite.params['Si01center']}") print(f"val: {si_g_composite.params['G01center']}") # center - graphite print("BACK PROPAGATION") si_g_composite.back_propagation() # select by order si_ensemble = si_g_composite.ensemble[0] g_ensemble = si_g_composite.ensemble[1] # select by name si_ensemble = si_g_composite.selector["Si"] g_ensemble = si_g_composite.selector["G"] si_new_shift = si_ensemble.shift si_new_max_point = si_ensemble.max_point si_new_sigma_p1 = si_ensemble.sigma_p1 g_new_shift = g_ensemble.shift print("- calculated back prop gives the following updated values") print(si_g_composite) print("- setting the values to a new object") another_si_g_composite = CompositeEnsemble( Silicon( shift=si_new_shift, max_point=si_new_max_point, sigma_p1=si_new_sigma_p1, compress=1.0, expand=1.0, ), Graphite(shift=g_new_shift), ) print(another_si_g_composite) print(f"val: {another_si_g_composite.params['Si01sigma']}") print(f"val: {another_si_g_composite.params['Si01center']}") print(f"val: {another_si_g_composite.params['G01center']}") print(another_si_g_composite.prefixes) print("PARAM NAMES") print(another_si_g_composite.param_names) print("NAMES") print(another_si_g_composite.names) print("SELECTED Si") print(another_si_g_composite.selector["Si"])
def test_ica_dqdv(dataset, cycle): capacity, voltage = dataset.get_ccap(cycle) ica.dqdv(voltage, capacity)
def test_short_data(): ica.dqdv(pd.Series(), pd.Series())
def test_none_data(): ica.dqdv(None, None)