Пример #1
0
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())
Пример #2
0
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
Пример #3
0
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']}")
Пример #4
0
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())
Пример #5
0
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
Пример #6
0
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"])
Пример #7
0
def test_ica_dqdv(dataset, cycle):
    capacity, voltage = dataset.get_ccap(cycle)
    ica.dqdv(voltage, capacity)
Пример #8
0
def test_short_data():
    ica.dqdv(pd.Series(), pd.Series())
Пример #9
0
def test_none_data():
    ica.dqdv(None, None)