Skip to content

Definition of Cellpy Core Functionality

Cellpy Core Functionality

  • Receive data object (Cellpy Core Input)
    • Harmonized_Raw (see below)
  • Augment data object with Cellpy Core Output:
  • StepTable
    • See separate definition
  • CycleTable
    • See separate definition
  • Update Harmonized_Raw
  • If necessary: update Harmonized_Raw with calculated steps (from StepTable)

Metadata

Metadata will be kept out of the core. Important to keep metadata in mind when setting up Cellpy Core, so that metadata can easily follow and be aligned with the data.

  • Only keep metadata that is strictly necessary for use within core (to be defined as part of Harmonized_Raw)
    • cell-specifics
    • test information
    • tester, channel etc
    • raw data
    • where does the file come from?
    • when loaded, when changed etc.
    • Units, resolution

Cellpy Core Input (Harmonized_Raw)

Summarized in Harmonized raw format

Cellpy Core Output

To be summarized in a separate file

SPEED-17: "Define the object that comes out of cellpy core"

Updated Harmonized_Raw

Additional calculations when necessary: - Calculate step type and step mode (for steptable and then update) - Decide on how to handle cycler-specific measurement points that don't follow the time series (e.g. internal resistances at start/end of a cycle) - option 1: forward fill values (ethical concerns!!!) - could add prefix to indicate what was done in the processing

StepTable

  • Use unique step numbers
  • one row for each individual sequential step
  • do things to speed up calculations (e.g. for pulsing)

Headers

  • Min, Max, delta, time-average, capacity-average, arithmetic-mean, stdv, medians, first, last
  • First, last, delta
  • Cycle number
  • Step number, substep number and type and mode
  • Original datapoint number and index
  • Mask (Boolean)

Core CycleTable

Headers

  • Min, Max, delta, time-average, capacity-average, arithmetic-mean
  • for every raw value
  • also for auxillaries
  • capacity, energy and time per mode
  • charge and discharge difference
  • Coulombic/Energy/Power efficiency
  • Voltage efficiency: energy efficiency/CE
  • Cumulated values
  • Splits per mode:
  • CV share: amount of capacity in CV/full capacity in cycle etc
  • Internal resistance estimations based on potential drops
  • resistances at different time scales
  • Mask (Boolean)

Other questions

  • Header structure & versioning on headers and filestructure (separate Task: SPEED-30)

  • Units and unit conversion

  • locking units might limit resolution

  • How to deal with different types of experiments

  • pulsing protocols, such as GITT, ICI
  • EIS
  • 3-electrode data

Add on's

Pre-processing Modules

  • Convert time series data from any tester to common cellpy-core-input format

Post-processing/Analysis Modules

Meta-data Module(s)

Current code structure:

  • cell_core: the cellpy core class
  • selectors: module containing functions;
    • input: data object;
    • not allowed to modify the data object
  • summarizers: (should also not modify the data object)
  • units (optional)