cellpy.parameters package#
Subpackages#
- cellpy.parameters.legacy package
- Submodules
- cellpy.parameters.legacy.update_headers module
HeadersJournalV5HeadersJournalV7HeadersJournalV7.argumentHeadersJournalV7.cell_typeHeadersJournalV7.cellpy_file_nameHeadersJournalV7.commentHeadersJournalV7.experimentHeadersJournalV7.filenameHeadersJournalV7.fixedHeadersJournalV7.groupHeadersJournalV7.instrumentHeadersJournalV7.labelHeadersJournalV7.loadingHeadersJournalV7.massHeadersJournalV7.nom_capHeadersJournalV7.raw_file_namesHeadersJournalV7.sub_groupHeadersJournalV7.total_mass
HeadersRawV4HeadersRawV4.ac_impedance_txtHeadersRawV4.aci_phase_angle_txtHeadersRawV4.amplitude_txtHeadersRawV4.charge_capacity_txtHeadersRawV4.charge_energy_txtHeadersRawV4.current_txtHeadersRawV4.cycle_index_txtHeadersRawV4.data_point_txtHeadersRawV4.datetime_txtHeadersRawV4.discharge_capacity_txtHeadersRawV4.discharge_energy_txtHeadersRawV4.dv_dt_txtHeadersRawV4.frequency_txtHeadersRawV4.internal_resistance_txtHeadersRawV4.is_fc_data_txtHeadersRawV4.ref_ac_impedance_txtHeadersRawV4.ref_aci_phase_angle_txtHeadersRawV4.ref_voltage_txtHeadersRawV4.step_index_txtHeadersRawV4.step_time_txtHeadersRawV4.sub_step_index_txtHeadersRawV4.sub_step_time_txtHeadersRawV4.test_id_txtHeadersRawV4.test_time_txtHeadersRawV4.voltage_txt
HeadersRawV5HeadersRawV5.ac_impedance_txtHeadersRawV5.aci_phase_angle_txtHeadersRawV5.amplitude_txtHeadersRawV5.charge_capacity_txtHeadersRawV5.charge_energy_txtHeadersRawV5.current_txtHeadersRawV5.cycle_index_txtHeadersRawV5.data_point_txtHeadersRawV5.datetime_txtHeadersRawV5.discharge_capacity_txtHeadersRawV5.discharge_energy_txtHeadersRawV5.dv_dt_txtHeadersRawV5.frequency_txtHeadersRawV5.internal_resistance_txtHeadersRawV5.is_fc_data_txtHeadersRawV5.ref_ac_impedance_txtHeadersRawV5.ref_aci_phase_angle_txtHeadersRawV5.ref_voltage_txtHeadersRawV5.step_index_txtHeadersRawV5.step_time_txtHeadersRawV5.sub_step_index_txtHeadersRawV5.sub_step_time_txtHeadersRawV5.test_id_txtHeadersRawV5.test_time_txtHeadersRawV5.voltage_txt
HeadersRawV6HeadersRawV6.ac_impedance_txtHeadersRawV6.aci_phase_angle_txtHeadersRawV6.amplitude_txtHeadersRawV6.charge_capacity_txtHeadersRawV6.charge_energy_txtHeadersRawV6.current_txtHeadersRawV6.cycle_index_txtHeadersRawV6.data_point_txtHeadersRawV6.datetime_txtHeadersRawV6.discharge_capacity_txtHeadersRawV6.discharge_energy_txtHeadersRawV6.dv_dt_txtHeadersRawV6.frequency_txtHeadersRawV6.internal_resistance_txtHeadersRawV6.is_fc_data_txtHeadersRawV6.ref_ac_impedance_txtHeadersRawV6.ref_aci_phase_angle_txtHeadersRawV6.ref_voltage_txtHeadersRawV6.step_index_txtHeadersRawV6.step_time_txtHeadersRawV6.sub_step_index_txtHeadersRawV6.sub_step_time_txtHeadersRawV6.test_id_txtHeadersRawV6.test_time_txtHeadersRawV6.voltage_txt
HeadersRawV7HeadersRawV7.ac_impedance_txtHeadersRawV7.aci_phase_angle_txtHeadersRawV7.amplitude_txtHeadersRawV7.channel_id_txtHeadersRawV7.charge_capacity_txtHeadersRawV7.charge_energy_txtHeadersRawV7.current_txtHeadersRawV7.cycle_index_txtHeadersRawV7.data_flag_txtHeadersRawV7.data_point_txtHeadersRawV7.datetime_txtHeadersRawV7.discharge_capacity_txtHeadersRawV7.discharge_energy_txtHeadersRawV7.dv_dt_txtHeadersRawV7.frequency_txtHeadersRawV7.internal_resistance_txtHeadersRawV7.is_fc_data_txtHeadersRawV7.power_txtHeadersRawV7.ref_ac_impedance_txtHeadersRawV7.ref_aci_phase_angle_txtHeadersRawV7.ref_voltage_txtHeadersRawV7.step_index_txtHeadersRawV7.step_time_txtHeadersRawV7.sub_step_index_txtHeadersRawV7.sub_step_time_txtHeadersRawV7.test_id_txtHeadersRawV7.test_name_txtHeadersRawV7.test_time_txtHeadersRawV7.voltage_txt
HeadersStepTableV7HeadersStepTableV7.chargeHeadersStepTableV7.currentHeadersStepTableV7.cycleHeadersStepTableV7.dischargeHeadersStepTableV7.infoHeadersStepTableV7.internal_resistanceHeadersStepTableV7.internal_resistance_changeHeadersStepTableV7.pointHeadersStepTableV7.rate_avrHeadersStepTableV7.stepHeadersStepTableV7.step_timeHeadersStepTableV7.sub_stepHeadersStepTableV7.sub_typeHeadersStepTableV7.testHeadersStepTableV7.test_timeHeadersStepTableV7.typeHeadersStepTableV7.ustepHeadersStepTableV7.voltage
HeadersSummaryV5HeadersSummaryV5.areal_charge_capacityHeadersSummaryV5.areal_discharge_capacityHeadersSummaryV5.charge_c_rateHeadersSummaryV5.charge_capacityHeadersSummaryV5.charge_capacity_lossHeadersSummaryV5.charge_capacity_rawHeadersSummaryV5.coulombic_differenceHeadersSummaryV5.coulombic_efficiencyHeadersSummaryV5.cumulated_charge_capacityHeadersSummaryV5.cumulated_charge_capacity_lossHeadersSummaryV5.cumulated_coulombic_differenceHeadersSummaryV5.cumulated_coulombic_efficiencyHeadersSummaryV5.cumulated_discharge_capacityHeadersSummaryV5.cumulated_discharge_capacity_lossHeadersSummaryV5.cumulated_ricHeadersSummaryV5.cumulated_ric_disconnectHeadersSummaryV5.cumulated_ric_seiHeadersSummaryV5.cycle_indexHeadersSummaryV5.data_pointHeadersSummaryV5.datetimeHeadersSummaryV5.discharge_c_rateHeadersSummaryV5.discharge_capacityHeadersSummaryV5.discharge_capacity_lossHeadersSummaryV5.discharge_capacity_rawHeadersSummaryV5.end_voltage_chargeHeadersSummaryV5.end_voltage_dischargeHeadersSummaryV5.high_levelHeadersSummaryV5.ir_chargeHeadersSummaryV5.ir_dischargeHeadersSummaryV5.low_levelHeadersSummaryV5.normalized_charge_capacityHeadersSummaryV5.normalized_cycle_indexHeadersSummaryV5.normalized_discharge_capacityHeadersSummaryV5.ocv_first_maxHeadersSummaryV5.ocv_first_minHeadersSummaryV5.ocv_second_maxHeadersSummaryV5.ocv_second_minHeadersSummaryV5.shifted_charge_capacityHeadersSummaryV5.shifted_discharge_capacityHeadersSummaryV5.temperature_lastHeadersSummaryV5.temperature_meanHeadersSummaryV5.test_time
HeadersSummaryV6HeadersSummaryV6.areal_charge_capacityHeadersSummaryV6.areal_discharge_capacityHeadersSummaryV6.channel_idHeadersSummaryV6.charge_c_rateHeadersSummaryV6.charge_capacityHeadersSummaryV6.charge_capacity_lossHeadersSummaryV6.charge_capacity_rawHeadersSummaryV6.coulombic_differenceHeadersSummaryV6.coulombic_efficiencyHeadersSummaryV6.cumulated_charge_capacityHeadersSummaryV6.cumulated_charge_capacity_lossHeadersSummaryV6.cumulated_coulombic_differenceHeadersSummaryV6.cumulated_coulombic_efficiencyHeadersSummaryV6.cumulated_discharge_capacityHeadersSummaryV6.cumulated_discharge_capacity_lossHeadersSummaryV6.cumulated_ricHeadersSummaryV6.cumulated_ric_disconnectHeadersSummaryV6.cumulated_ric_seiHeadersSummaryV6.cycle_indexHeadersSummaryV6.data_flagHeadersSummaryV6.data_pointHeadersSummaryV6.datetimeHeadersSummaryV6.discharge_c_rateHeadersSummaryV6.discharge_capacityHeadersSummaryV6.discharge_capacity_lossHeadersSummaryV6.discharge_capacity_rawHeadersSummaryV6.end_voltage_chargeHeadersSummaryV6.end_voltage_dischargeHeadersSummaryV6.high_levelHeadersSummaryV6.ir_chargeHeadersSummaryV6.ir_dischargeHeadersSummaryV6.low_levelHeadersSummaryV6.normalized_charge_capacityHeadersSummaryV6.normalized_cycle_indexHeadersSummaryV6.normalized_discharge_capacityHeadersSummaryV6.ocv_first_maxHeadersSummaryV6.ocv_first_minHeadersSummaryV6.ocv_second_maxHeadersSummaryV6.ocv_second_minHeadersSummaryV6.shifted_charge_capacityHeadersSummaryV6.shifted_discharge_capacityHeadersSummaryV6.temperature_lastHeadersSummaryV6.temperature_meanHeadersSummaryV6.test_nameHeadersSummaryV6.test_time
HeadersSummaryV7HeadersSummaryV7.areal_charge_capacityHeadersSummaryV7.areal_discharge_capacityHeadersSummaryV7.channel_idHeadersSummaryV7.charge_c_rateHeadersSummaryV7.charge_capacityHeadersSummaryV7.charge_capacity_lossHeadersSummaryV7.charge_capacity_rawHeadersSummaryV7.coulombic_differenceHeadersSummaryV7.coulombic_efficiencyHeadersSummaryV7.cumulated_charge_capacityHeadersSummaryV7.cumulated_charge_capacity_lossHeadersSummaryV7.cumulated_coulombic_differenceHeadersSummaryV7.cumulated_coulombic_efficiencyHeadersSummaryV7.cumulated_discharge_capacityHeadersSummaryV7.cumulated_discharge_capacity_lossHeadersSummaryV7.cumulated_ricHeadersSummaryV7.cumulated_ric_disconnectHeadersSummaryV7.cumulated_ric_seiHeadersSummaryV7.cycle_indexHeadersSummaryV7.data_flagHeadersSummaryV7.data_pointHeadersSummaryV7.datetimeHeadersSummaryV7.discharge_c_rateHeadersSummaryV7.discharge_capacityHeadersSummaryV7.discharge_capacity_lossHeadersSummaryV7.discharge_capacity_rawHeadersSummaryV7.end_voltage_chargeHeadersSummaryV7.end_voltage_dischargeHeadersSummaryV7.high_levelHeadersSummaryV7.ir_chargeHeadersSummaryV7.ir_dischargeHeadersSummaryV7.low_levelHeadersSummaryV7.normalized_charge_capacityHeadersSummaryV7.normalized_cycle_indexHeadersSummaryV7.normalized_discharge_capacityHeadersSummaryV7.ocv_first_maxHeadersSummaryV7.ocv_first_minHeadersSummaryV7.ocv_second_maxHeadersSummaryV7.ocv_second_minHeadersSummaryV7.shifted_charge_capacityHeadersSummaryV7.shifted_discharge_capacityHeadersSummaryV7.temperature_lastHeadersSummaryV7.temperature_meanHeadersSummaryV7.test_nameHeadersSummaryV7.test_time
get_column_name_mapper()rename_columns()rename_fid_columns()rename_raw_columns()rename_step_columns()rename_summary_columns()
- Module contents
Submodules#
cellpy.parameters.internal_settings module#
Internal settings and definitions and functions for getting them.
- class BaseHeaders[source]#
Bases:
BaseSettingsSubclass of BaseSetting including option to add postfixes.
Example
>>> header["key_postfix"] # returns "value_postfix"
- postfixes = []#
- class BaseSettings[source]#
Bases:
DictLikeClassBase class for internal cellpy settings.
Usage:
@dataclass class MyCoolCellpySetting(BaseSetting): var1: str = "first var" var2: int = 12
- class CellpyLimits(current_hard: float = 1e-13, current_soft: float = 1e-05, stable_current_hard: float = 2.0, stable_current_soft: float = 4.0, stable_voltage_hard: float = 2.0, stable_voltage_soft: float = 4.0, stable_charge_hard: float = 0.9, stable_charge_soft: float = 5.0, ir_change: float = 1e-05)[source]#
Bases:
BaseSettingsThese are the limits used inside
cellpyfor finding step types.Since all instruments have an inherent inaccuracy, it is naive to assume that for example the voltage within a constant voltage step does not change at all. Therefore, we need to define some limits for what we consider to be a constant and what we assume to be zero.
- current_hard: float = 1e-13#
- current_soft: float = 1e-05#
- ir_change: float = 1e-05#
- stable_charge_hard: float = 0.9#
- stable_charge_soft: float = 5.0#
- stable_current_hard: float = 2.0#
- stable_current_soft: float = 4.0#
- stable_voltage_hard: float = 2.0#
- stable_voltage_soft: float = 4.0#
- class CellpyMeta[source]#
Bases:
objectBase class for meta-data in cellpy.
- class CellpyMetaCommon(cell_name: str | None = None, start_datetime: str | None = None, time_zone: str | None = None, comment: CellPyDataConfig | None = '', file_errors: str | None = None, raw_id: str | None = None, cellpy_file_version: int = 8, tester_ID: CellPyDataConfig | None = None, tester_server_software_version: CellPyDataConfig | None = None, tester_client_software_version: CellPyDataConfig | None = None, tester_calibration_date: CellPyDataConfig | None = None, material: CellPyDataConfig | None = 'silicon', mass: CellPyDataConfig | None = 1.0, tot_mass: CellPyDataConfig | None = 1.0, nom_cap: CellPyDataConfig | None = 1.0, nom_cap_specifics: CellPyDataConfig | None = 'gravimetric', active_electrode_area: CellPyDataConfig | None = 1.0, active_electrode_thickness: CellPyDataConfig | None = 1.0, active_electrode_loading: CellPyDataConfig | None = 1.0, electrolyte_volume: CellPyDataConfig | None = 1.0, electrolyte_type: CellPyDataConfig | None = 'standard', active_electrode_type: CellPyDataConfig | None = 'standard', counter_electrode_type: CellPyDataConfig | None = 'standard', reference_electrode_type: CellPyDataConfig | None = 'standard', experiment_type: CellPyDataConfig | None = 'cycling', cell_type: CellPyDataConfig | None = 'standard', separator_type: CellPyDataConfig | None = 'standard', active_electrode_current_collector: CellPyDataConfig | None = 'standard', reference_electrode_current_collector: CellPyDataConfig | None = 'standard')[source]#
Bases:
CellpyMetaCommon (not test-dependent) meta-data for cellpy.
- active_electrode_area: CellPyDataConfig | None = 1.0#
- active_electrode_current_collector: CellPyDataConfig | None = 'standard'#
- active_electrode_loading: CellPyDataConfig | None = 1.0#
- active_electrode_thickness: CellPyDataConfig | None = 1.0#
- active_electrode_type: CellPyDataConfig | None = 'standard'#
- cell_name: str | None = None#
- cell_type: CellPyDataConfig | None = 'standard'#
- cellpy_file_version: int = 8#
- comment: CellPyDataConfig | None = ''#
- counter_electrode_type: CellPyDataConfig | None = 'standard'#
- electrolyte_type: CellPyDataConfig | None = 'standard'#
- electrolyte_volume: CellPyDataConfig | None = 1.0#
- experiment_type: CellPyDataConfig | None = 'cycling'#
- file_errors: str | None = None#
- mass: CellPyDataConfig | None = 1.0#
- material: CellPyDataConfig | None = 'silicon'#
- nom_cap: CellPyDataConfig | None = 1.0#
- nom_cap_specifics: CellPyDataConfig | None = 'gravimetric'#
- raw_id: str | None = None#
- reference_electrode_current_collector: CellPyDataConfig | None = 'standard'#
- reference_electrode_type: CellPyDataConfig | None = 'standard'#
- separator_type: CellPyDataConfig | None = 'standard'#
- start_datetime: str | None = None#
- tester_ID: CellPyDataConfig | None = None#
- tester_calibration_date: CellPyDataConfig | None = None#
- tester_client_software_version: CellPyDataConfig | None = None#
- tester_server_software_version: CellPyDataConfig | None = None#
- time_zone: str | None = None#
- tot_mass: CellPyDataConfig | None = 1.0#
- class CellpyMetaIndividualTest(channel_index: CellPyDataConfig | None = None, creator: str | None = None, test_type: CellPyDataConfig | None = None, voltage_lim_low: CellPyDataConfig | None = 0.0, voltage_lim_high: CellPyDataConfig | None = 1.0, cycle_mode: CellPyDataConfig | None = 'anode', test_ID: CellPyDataConfig | None = None)[source]#
Bases:
CellpyMetaTest-dependent meta-data for cellpy.
- channel_index: CellPyDataConfig | None = None#
- creator: str | None = None#
- cycle_mode: CellPyDataConfig | None = 'anode'#
- schedule_file_name = None#
- test_ID: CellPyDataConfig | None = None#
- test_type: CellPyDataConfig | None = None#
- voltage_lim_high: CellPyDataConfig | None = 1.0#
- voltage_lim_low: CellPyDataConfig | None = 0.0#
- class CellpyUnits(current: str = 'A', charge: str = 'mAh', voltage: str = 'V', time: str = 'sec', resistance: str = 'ohm', power: str = 'W', energy: str = 'Wh', frequency: str = 'hz', mass: str = 'mg', nominal_capacity: str = 'mAh/g', specific_gravimetric: str = 'g', specific_areal: str = 'cm**2', specific_volumetric: str = 'cm**3', length: str = 'cm', area: str = 'cm**2', volume: str = 'cm**3', temperature: str = 'C', pressure: str = 'bar')[source]#
Bases:
BaseSettingsThese are the units used inside Cellpy.
At least two sets of units needs to be defined; cellpy_units and raw_units. The data.raw dataframe is given in raw_units where the units are defined inside the instrument loader used. Since the data.steps dataframe is a summary of the step statistics from the data.raw dataframe, this also uses the raw_units. The data.summary dataframe contains columns with values directly from the data.raw dataframe given in raw_units as well as calculated columns given in cellpy_units.
Remark that all input to cellpy through user interaction (or utils) should be in cellpy_units. This is also true for meta-data collected from the raw files. The instrument loader needs to take care of the translation from its raw units to cellpy_units during loading the raw data file for the meta-data (remark that this is not necessary and not recommended for the actual “raw” data that is going to be stored in the data.raw dataframe).
As of 2022.09.29, cellpy does not automatically ensure unit conversion for input of meta-data, but has an internal method (CellPyData.to_cellpy_units) that can be used.
These are the different attributes currently supported for data in the dataframes:
current: str = "A" charge: str = "mAh" voltage: str = "V" time: str = "sec" resistance: str = "Ohms" power: str = "W" energy: str = "Wh" frequency: str = "hz"
And here are the different attributes currently supported for meta-data:
# output-units for specific capacity etc. specific_gravimetric: str = "g" specific_areal: str = "cm**2" # used for calculating specific capacity etc. specific_volumetric: str = "cm**3" # used for calculating specific capacity etc. # other meta-data nominal_capacity: str = "mAh/g" # used for calculating rates etc. mass: str = "mg" length: str = "cm" area: str = "cm**2" volume: str = "cm**3" temperature: str = "C"
- area: str = 'cm**2'#
- charge: str = 'mAh'#
- current: str = 'A'#
- energy: str = 'Wh'#
- frequency: str = 'hz'#
- length: str = 'cm'#
- mass: str = 'mg'#
- nominal_capacity: str = 'mAh/g'#
- power: str = 'W'#
- pressure: str = 'bar'#
- resistance: str = 'ohm'#
- specific_areal: str = 'cm**2'#
- specific_gravimetric: str = 'g'#
- specific_volumetric: str = 'cm**3'#
- temperature: str = 'C'#
- time: str = 'sec'#
- voltage: str = 'V'#
- volume: str = 'cm**3'#
- class DictLikeClass[source]#
Bases:
objectAdd some dunder-methods so that it does not break old code that used dictionaries for storing settings
Remarks: it is not a complete dictionary experience - for example, setting new attributes (new keys) is not supported (raises
KeyErrorif using the typical dict setting method) since it uses thedataclasses.fieldsmethod to find its members.
- class HeaderDict(dict=None, /, **kwargs)[source]#
Bases:
UserDictA Sub-class of dict to allow for tab-completion.
- class HeadersJournal(filename: str = 'filename', file_name_indicator: str = 'file_name_indicator', mass: str = 'mass', total_mass: str = 'total_mass', loading: str = 'loading', area: str = 'area', nom_cap: str = 'nom_cap', experiment: str = 'experiment', fixed: str = 'fixed', label: str = 'label', cell_type: str = 'cell_type', instrument: str = 'instrument', model: str = 'model', raw_file_names: str = 'raw_file_names', cellpy_file_name: str = 'cellpy_file_name', group: str = 'group', sub_group: str = 'sub_group', group_label: str = 'group_label', comment: str = 'comment', argument: str = 'argument', id_key: str = 'id_key', nom_cap_specifics: str = 'nom_cap_specifics', selected: str = 'selected')[source]#
Bases:
BaseHeadersHeaders used for the journal (batch) (used as column headers for the journal pandas DataFrames)
- area: str = 'area'#
- argument: str = 'argument'#
- cell_type: str = 'cell_type'#
- cellpy_file_name: str = 'cellpy_file_name'#
- comment: str = 'comment'#
- experiment: str = 'experiment'#
- file_name_indicator: str = 'file_name_indicator'#
- filename: str = 'filename'#
- fixed: str = 'fixed'#
- group: str = 'group'#
- group_label: str = 'group_label'#
- id_key: str = 'id_key'#
- instrument: str = 'instrument'#
- label: str = 'label'#
- loading: str = 'loading'#
- mass: str = 'mass'#
- model: str = 'model'#
- nom_cap: str = 'nom_cap'#
- nom_cap_specifics: str = 'nom_cap_specifics'#
- raw_file_names: str = 'raw_file_names'#
- selected: str = 'selected'#
- sub_group: str = 'sub_group'#
- total_mass: str = 'total_mass'#
- class HeadersNormal(aci_phase_angle_txt: str = 'aci_phase_angle', ref_aci_phase_angle_txt: str = 'ref_aci_phase_angle', ac_impedance_txt: str = 'ac_impedance', ref_ac_impedance_txt: str = 'ref_ac_impedance', charge_capacity_txt: str = 'charge_capacity', charge_energy_txt: str = 'charge_energy', current_txt: str = 'current', cycle_index_txt: str = 'cycle_index', data_point_txt: str = 'data_point', datetime_txt: str = 'date_time', discharge_capacity_txt: str = 'discharge_capacity', discharge_energy_txt: str = 'discharge_energy', internal_resistance_txt: str = 'internal_resistance', power_txt: str = 'power', is_fc_data_txt: str = 'is_fc_data', step_index_txt: str = 'step_index', sub_step_index_txt: str = 'sub_step_index', step_time_txt: str = 'step_time', sub_step_time_txt: str = 'sub_step_time', test_id_txt: str = 'test_id', test_time_txt: str = 'test_time', voltage_txt: str = 'voltage', ref_voltage_txt: str = 'reference_voltage', dv_dt_txt: str = 'dv_dt', frequency_txt: str = 'frequency', amplitude_txt: str = 'amplitude', channel_id_txt: str = 'channel_id', data_flag_txt: str = 'data_flag', test_name_txt: str = 'test_name')[source]#
Bases:
BaseHeadersHeaders used for the normal (raw) data (used as column headers for the main data pandas DataFrames)
- ac_impedance_txt: str = 'ac_impedance'#
- aci_phase_angle_txt: str = 'aci_phase_angle'#
- amplitude_txt: str = 'amplitude'#
- channel_id_txt: str = 'channel_id'#
- charge_capacity_txt: str = 'charge_capacity'#
- charge_energy_txt: str = 'charge_energy'#
- current_txt: str = 'current'#
- cycle_index_txt: str = 'cycle_index'#
- data_flag_txt: str = 'data_flag'#
- data_point_txt: str = 'data_point'#
- datetime_txt: str = 'date_time'#
- discharge_capacity_txt: str = 'discharge_capacity'#
- discharge_energy_txt: str = 'discharge_energy'#
- dv_dt_txt: str = 'dv_dt'#
- frequency_txt: str = 'frequency'#
- internal_resistance_txt: str = 'internal_resistance'#
- is_fc_data_txt: str = 'is_fc_data'#
- power_txt: str = 'power'#
- ref_ac_impedance_txt: str = 'ref_ac_impedance'#
- ref_aci_phase_angle_txt: str = 'ref_aci_phase_angle'#
- ref_voltage_txt: str = 'reference_voltage'#
- step_index_txt: str = 'step_index'#
- step_time_txt: str = 'step_time'#
- sub_step_index_txt: str = 'sub_step_index'#
- sub_step_time_txt: str = 'sub_step_time'#
- test_id_txt: str = 'test_id'#
- test_name_txt: str = 'test_name'#
- test_time_txt: str = 'test_time'#
- voltage_txt: str = 'voltage'#
- class HeadersStepTable(test: str = 'test', ustep: str = 'ustep', cycle: str = 'cycle', step: str = 'step', test_time: str = 'test_time', step_time: str = 'step_time', sub_step: str = 'sub_step', type: str = 'type', sub_type: str = 'sub_type', info: str = 'info', voltage: str = 'voltage', current: str = 'current', charge: str = 'charge', discharge: str = 'discharge', point: str = 'point', internal_resistance: str = 'ir', internal_resistance_change: str = 'ir_pct_change', rate_avr: str = 'rate_avr')[source]#
Bases:
BaseHeadersHeaders used for the steps table (used as column headers for the steps pandas DataFrames)
- charge: str = 'charge'#
- current: str = 'current'#
- cycle: str = 'cycle'#
- discharge: str = 'discharge'#
- info: str = 'info'#
- internal_resistance: str = 'ir'#
- internal_resistance_change: str = 'ir_pct_change'#
- point: str = 'point'#
- rate_avr: str = 'rate_avr'#
- step: str = 'step'#
- step_time: str = 'step_time'#
- sub_step: str = 'sub_step'#
- sub_type: str = 'sub_type'#
- test: str = 'test'#
- test_time: str = 'test_time'#
- type: str = 'type'#
- ustep: str = 'ustep'#
- voltage: str = 'voltage'#
- class HeadersSummary(cycle_index: str = 'cycle_index', data_point: str = 'data_point', test_time: str = 'test_time', datetime: str = 'date_time', discharge_capacity_raw: str = 'discharge_capacity', charge_capacity_raw: str = 'charge_capacity', test_name: str = 'test_name', data_flag: str = 'data_flag', channel_id: str = 'channel_id', coulombic_efficiency: str = 'coulombic_efficiency', cumulated_coulombic_efficiency: str = 'cumulated_coulombic_efficiency', discharge_capacity: str = 'discharge_capacity', charge_capacity: str = 'charge_capacity', cumulated_charge_capacity: str = 'cumulated_charge_capacity', cumulated_discharge_capacity: str = 'cumulated_discharge_capacity', coulombic_difference: str = 'coulombic_difference', cumulated_coulombic_difference: str = 'cumulated_coulombic_difference', discharge_capacity_loss: str = 'discharge_capacity_loss', charge_capacity_loss: str = 'charge_capacity_loss', cumulated_discharge_capacity_loss: str = 'cumulated_discharge_capacity_loss', cumulated_charge_capacity_loss: str = 'cumulated_charge_capacity_loss', normalized_charge_capacity: str = 'normalized_charge_capacity', normalized_discharge_capacity: str = 'normalized_discharge_capacity', shifted_charge_capacity: str = 'shifted_charge_capacity', shifted_discharge_capacity: str = 'shifted_discharge_capacity', ir_discharge: str = 'ir_discharge', ir_charge: str = 'ir_charge', ocv_first_min: str = 'ocv_first_min', ocv_second_min: str = 'ocv_second_min', ocv_first_max: str = 'ocv_first_max', ocv_second_max: str = 'ocv_second_max', end_voltage_discharge: str = 'end_voltage_discharge', end_voltage_charge: str = 'end_voltage_charge', cumulated_ric_disconnect: str = 'cumulated_ric_disconnect', cumulated_ric_sei: str = 'cumulated_ric_sei', cumulated_ric: str = 'cumulated_ric', normalized_cycle_index: str = 'normalized_cycle_index', low_level: str = 'low_level', high_level: str = 'high_level', temperature_last: str = 'temperature_last', temperature_mean: str = 'temperature_mean', charge_c_rate: str = 'charge_c_rate', discharge_c_rate: str = 'discharge_c_rate', pre_aux: str = 'aux_')[source]#
Bases:
BaseHeadersHeaders used for the summary data (used as column headers for the main data pandas DataFrames)
In addition to the headers defined here, the summary might also contain specific headers (ending in _gravimetric or _areal).
- property areal_charge_capacity: str#
- property areal_discharge_capacity: str#
- channel_id: str = 'channel_id'#
- charge_c_rate: str = 'charge_c_rate'#
- charge_capacity: str = 'charge_capacity'#
- charge_capacity_loss: str = 'charge_capacity_loss'#
- charge_capacity_raw: str = 'charge_capacity'#
- coulombic_difference: str = 'coulombic_difference'#
- coulombic_efficiency: str = 'coulombic_efficiency'#
- cumulated_charge_capacity: str = 'cumulated_charge_capacity'#
- cumulated_charge_capacity_loss: str = 'cumulated_charge_capacity_loss'#
- cumulated_coulombic_difference: str = 'cumulated_coulombic_difference'#
- cumulated_coulombic_efficiency: str = 'cumulated_coulombic_efficiency'#
- cumulated_discharge_capacity: str = 'cumulated_discharge_capacity'#
- cumulated_discharge_capacity_loss: str = 'cumulated_discharge_capacity_loss'#
- cumulated_ric: str = 'cumulated_ric'#
- cumulated_ric_disconnect: str = 'cumulated_ric_disconnect'#
- cumulated_ric_sei: str = 'cumulated_ric_sei'#
- cycle_index: str = 'cycle_index'#
- data_flag: str = 'data_flag'#
- data_point: str = 'data_point'#
- datetime: str = 'date_time'#
- discharge_c_rate: str = 'discharge_c_rate'#
- discharge_capacity: str = 'discharge_capacity'#
- discharge_capacity_loss: str = 'discharge_capacity_loss'#
- discharge_capacity_raw: str = 'discharge_capacity'#
- end_voltage_charge: str = 'end_voltage_charge'#
- end_voltage_discharge: str = 'end_voltage_discharge'#
- high_level: str = 'high_level'#
- ir_charge: str = 'ir_charge'#
- ir_discharge: str = 'ir_discharge'#
- low_level: str = 'low_level'#
- normalized_charge_capacity: str = 'normalized_charge_capacity'#
- normalized_cycle_index: str = 'normalized_cycle_index'#
- normalized_discharge_capacity: str = 'normalized_discharge_capacity'#
- ocv_first_max: str = 'ocv_first_max'#
- ocv_first_min: str = 'ocv_first_min'#
- ocv_second_max: str = 'ocv_second_max'#
- ocv_second_min: str = 'ocv_second_min'#
- postfixes = ['gravimetric', 'areal', 'absolute']#
- pre_aux: str = 'aux_'#
- shifted_charge_capacity: str = 'shifted_charge_capacity'#
- shifted_discharge_capacity: str = 'shifted_discharge_capacity'#
- property specific_columns: List[str]#
Returns a list of the columns that can be “specific” (e.g. pr. mass or pr. area) for the summary table.
- temperature_last: str = 'temperature_last'#
- temperature_mean: str = 'temperature_mean'#
- test_name: str = 'test_name'#
- test_time: str = 'test_time'#
- class InstrumentSettings[source]#
Bases:
DictLikeClassBase class for instrument settings.
Usage:
@dataclass class MyCoolInstrumentSetting(InstrumentSettings): var1: str = "first var" var2: int = 12
Remark! Try to use it as you would use a normal dataclass.
- get_cellpy_units(*args, **kwargs) CellpyUnits[source]#
Returns an augmented global dictionary with units
- get_default_cellpy_file_raw_units(*args, **kwargs) CellpyUnits[source]#
Returns a dictionary with units to use as default for old versions of cellpy files
- get_default_custom_headers_summary() HeadersSummary[source]#
Returns an augmented dictionary that can be used to create custom header-strings for the summary (used as column headers for the summary pandas DataFrames)
This function is mainly implemented to provide an example.
- get_default_output_units(*args, **kwargs) CellpyUnits[source]#
Returns an augmented dictionary with units to use as default.
- get_default_raw_limits() CellpyLimits[source]#
Returns an augmented dictionary with units as default for raw data
- get_default_raw_units(*args, **kwargs) CellpyUnits[source]#
Returns a dictionary with units as default for raw data
- get_headers_journal() HeadersJournal[source]#
Returns an augmented global dictionary containing the header-strings for the journal (batch) (used as column headers for the journal pandas DataFrames)
- get_headers_normal() HeadersNormal[source]#
Returns an augmented global dictionary containing the header-strings for the normal data (used as column headers for the main data pandas DataFrames)
- get_headers_step_table() HeadersStepTable[source]#
Returns an augmented global dictionary containing the header-strings for the steps table (used as column headers for the steps pandas DataFrames)
- get_headers_summary() HeadersSummary[source]#
Returns an augmented global dictionary containing the header-strings for the summary (used as column headers for the summary pandas DataFrames)
cellpy.parameters.prmreader module#
- get_user_dir_and_dst(init_filename=None)[source]#
Gets the name of the user directory and full prm filepath
cellpy.parameters.prms module#
cellpy parameters
- class BatchClass(auto_use_file_list: bool = False, template: str = 'standard', fig_extension: str = 'png', backend: str = 'plotly', notebook: bool = True, dpi: int = 300, markersize: int = 4, symbol_label: str = 'simple', color_style_label: str = 'seaborn-deep', figure_type: str = 'unlimited', summary_plot_width: int = 900, summary_plot_height: int = 800, summary_plot_height_fractions: List[float] = <factory>)[source]#
Bases:
CellPyConfigSettings for batch processing.
- auto_use_file_list: bool = False#
- backend: str = 'plotly'#
- color_style_label: str = 'seaborn-deep'#
- dpi: int = 300#
- fig_extension: str = 'png'#
- figure_type: str = 'unlimited'#
- markersize: int = 4#
- notebook: bool = True#
- summary_plot_height: int = 800#
- summary_plot_height_fractions: List[float]#
- summary_plot_width: int = 900#
- symbol_label: str = 'simple'#
- template: str = 'standard'#
- class CellInfoClass(voltage_lim_low: float = 0.0, voltage_lim_high: float = 1.0, active_electrode_area: float = 1.0, active_electrode_thickness: float = 1.0, active_electrode_loading: float = 1.0, electrolyte_volume: float = 1.0, electrolyte_type: str = 'standard', active_electrode_type: str = 'standard', counter_electrode_type: str = 'standard', reference_electrode_type: str = 'standard', experiment_type: str = 'cycling', cell_type: str = 'standard', separator_type: str = 'standard', active_electrode_current_collector: str = 'standard', reference_electrode_current_collector: str = 'standard', comment: str = '')[source]#
Bases:
CellPyDataConfigValues used for setting the parameters related to the cell and the cycling
- active_electrode_area: float = 1.0#
- active_electrode_current_collector: str = 'standard'#
- active_electrode_loading: float = 1.0#
- active_electrode_thickness: float = 1.0#
- active_electrode_type: str = 'standard'#
- cell_type: str = 'standard'#
- comment: str = ''#
- counter_electrode_type: str = 'standard'#
- electrolyte_type: str = 'standard'#
- electrolyte_volume: float = 1.0#
- experiment_type: str = 'cycling'#
- reference_electrode_current_collector: str = 'standard'#
- reference_electrode_type: str = 'standard'#
- separator_type: str = 'standard'#
- voltage_lim_high: float = 1.0#
- voltage_lim_low: float = 0.0#
- class CellPyDataConfig[source]#
Bases:
objectSettings that can be unique for each CellpyCell instance.
- class DbClass(db_type: str = 'simple_excel_reader', db_table_name: str = 'db_table', db_header_row: int = 0, db_unit_row: int = 1, db_data_start_row: int = 2, db_search_start_row: int = 2, db_search_end_row: int = -1, db_file_sqlite: str = 'excel.db', db_connection: str | None = None)[source]#
Bases:
CellPyConfigSettings for the handling the simple database.
- db_connection: str | None = None#
- db_data_start_row: int = 2#
- db_file_sqlite: str = 'excel.db'#
- db_header_row: int = 0#
- db_search_end_row: int = -1#
- db_search_start_row: int = 2#
- db_table_name: str = 'db_table'#
- db_type: str = 'simple_excel_reader'#
- db_unit_row: int = 1#
- class DbColsClass(id: str = 'id', exists: str = 'exists', project: str = 'project', label: str = 'label', group: str = 'group', selected: str = 'selected', cell_name: str = 'cell', cell_type: str = 'cell_type', experiment_type: str = 'experiment_type', mass_active: str = 'mass_active_material', area: str = 'area', mass_total: str = 'mass_total', loading: str = 'loading_active_material', nom_cap: str = 'nominal_capacity', nom_cap_specifics: str = 'nominal_capacity_specifics', file_name_indicator: str = 'file_name_indicator', instrument: str = 'instrument', raw_file_names: str = 'raw_file_names', cellpy_file_name: str = 'cellpy_file_name', comment_slurry: str = 'comment_slurry', comment_cell: str = 'comment_cell', comment_general: str = 'comment_general', freeze: str = 'freeze', argument: str = 'argument', batch: str = 'batch', sub_batch_01: str = 'b01', sub_batch_02: str = 'b02', sub_batch_03: str = 'b03', sub_batch_04: str = 'b04', sub_batch_05: str = 'b05', sub_batch_06: str = 'b06', sub_batch_07: str = 'b07')[source]#
Bases:
CellPyConfigNames of the columns in the simple database.
- area: str = 'area'#
- argument: str = 'argument'#
- batch: str = 'batch'#
- cell_name: str = 'cell'#
- cell_type: str = 'cell_type'#
- cellpy_file_name: str = 'cellpy_file_name'#
- comment_cell: str = 'comment_cell'#
- comment_general: str = 'comment_general'#
- comment_slurry: str = 'comment_slurry'#
- exists: str = 'exists'#
- experiment_type: str = 'experiment_type'#
- file_name_indicator: str = 'file_name_indicator'#
- freeze: str = 'freeze'#
- group: str = 'group'#
- id: str = 'id'#
- instrument: str = 'instrument'#
- label: str = 'label'#
- loading: str = 'loading_active_material'#
- mass_active: str = 'mass_active_material'#
- mass_total: str = 'mass_total'#
- nom_cap: str = 'nominal_capacity'#
- nom_cap_specifics: str = 'nominal_capacity_specifics'#
- project: str = 'project'#
- raw_file_names: str = 'raw_file_names'#
- selected: str = 'selected'#
- sub_batch_01: str = 'b01'#
- sub_batch_02: str = 'b02'#
- sub_batch_03: str = 'b03'#
- sub_batch_04: str = 'b04'#
- sub_batch_05: str = 'b05'#
- sub_batch_06: str = 'b06'#
- sub_batch_07: str = 'b07'#
- class DbColsUnitClass(id: str = 'str', exists: str = 'int', project: str = 'str', label: str = 'str', group: str = 'str', selected: str = 'int', cell_name: str = 'str', cell_type: str = 'str', experiment_type: str = 'str', mass_active: str = 'float', area: str = 'float', mass_total: str = 'float', loading: str = 'float', nom_cap: str = 'float', file_name_indicator: str = 'str', instrument: str = 'str', raw_file_names: str = 'str', cellpy_file_name: str = 'str', comment_slurry: str = 'str', comment_cell: str = 'str', comment_general: str = 'str', freeze: str = 'int', argument: str = 'str', batch: str = 'str', sub_batch_01: str = 'str', sub_batch_02: str = 'str', sub_batch_03: str = 'str', sub_batch_04: str = 'str', sub_batch_05: str = 'str', sub_batch_06: str = 'str', sub_batch_07: str = 'str')[source]#
Bases:
CellPyConfigUnit of the columns in the simple database.
- area: str = 'float'#
- argument: str = 'str'#
- batch: str = 'str'#
- cell_name: str = 'str'#
- cell_type: str = 'str'#
- cellpy_file_name: str = 'str'#
- comment_cell: str = 'str'#
- comment_general: str = 'str'#
- comment_slurry: str = 'str'#
- exists: str = 'int'#
- experiment_type: str = 'str'#
- file_name_indicator: str = 'str'#
- freeze: str = 'int'#
- group: str = 'str'#
- id: str = 'str'#
- instrument: str = 'str'#
- label: str = 'str'#
- loading: str = 'float'#
- mass_active: str = 'float'#
- mass_total: str = 'float'#
- nom_cap: str = 'float'#
- project: str = 'str'#
- raw_file_names: str = 'str'#
- selected: str = 'int'#
- sub_batch_01: str = 'str'#
- sub_batch_02: str = 'str'#
- sub_batch_03: str = 'str'#
- sub_batch_04: str = 'str'#
- sub_batch_05: str = 'str'#
- sub_batch_06: str = 'str'#
- sub_batch_07: str = 'str'#
- class FileNamesClass(file_name_format: str = 'YYYYMMDD_[NAME]EEE_CC_TT_RR', raw_extension: str = 'res', reg_exp: str = None, sub_folders: bool = True, file_list_location: str = None, file_list_type: str = None, file_list_name: str = None, cellpy_file_extension: str = 'h5')[source]#
Bases:
CellPyConfigSettings for file names and file handling.
- cellpy_file_extension: str = 'h5'#
- file_list_location: str = None#
- file_list_name: str = None#
- file_list_type: str = None#
- file_name_format: str = 'YYYYMMDD_[NAME]EEE_CC_TT_RR'#
- raw_extension: str = 'res'#
- reg_exp: str = None#
- sub_folders: bool = True#
- class InstrumentsClass(tester: str | None, custom_instrument_definitions_file: str | None, Arbin: Box, Maccor: Box, Neware: Box, Batmo: Box)[source]#
Bases:
CellPyConfigSettings for the instruments.
- Arbin: Box#
- Batmo: Box#
- Maccor: Box#
- Neware: Box#
- custom_instrument_definitions_file: str | None#
- tester: str | None#
- class MaterialsClass(cell_class: str = 'Li-Ion', default_material: str = 'silicon', default_mass: float = 1.0, default_nom_cap: float = 1.0, default_nom_cap_specifics: str = 'gravimetric')[source]#
Bases:
CellPyDataConfigDefault material-specific values used in processing the data.
- cell_class: str = 'Li-Ion'#
- default_mass: float = 1.0#
- default_material: str = 'silicon'#
- default_nom_cap: float = 1.0#
- default_nom_cap_specifics: str = 'gravimetric'#
- class PathsClass(outdatadir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), _rawdatadir: OtherPathNew | str = '/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx', _cellpydatadir: OtherPathNew | str = '/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx', db_path: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), filelogdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), examplesdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), notebookdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), templatedir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), batchfiledir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), instrumentdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx'), db_filename: str = 'cellpy_db.xlsx', env_file: Path | str = PosixPath('/home/docs/.env_cellpy'))[source]#
Bases:
CellPyConfigPaths used in cellpy.
- batchfiledir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- property cellpydatadir: OtherPathNew#
- db_filename: str = 'cellpy_db.xlsx'#
- db_path: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- env_file: Path | str = PosixPath('/home/docs/.env_cellpy')#
- examplesdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- filelogdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- instrumentdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- notebookdir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- outdatadir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- property rawdatadir: OtherPathNew#
- templatedir: Path | str = PosixPath('/home/docs/checkouts/readthedocs.org/user_builds/cellpy/envs/latest/lib/python3.12/site-packages/sphinx')#
- class ReaderClass(diagnostics: bool = False, filestatuschecker: str = 'size', force_step_table_creation: bool = True, force_all: bool = False, sep: str = ';', cycle_mode: str = 'anode', sorted_data: bool = True, select_minimal: bool = False, limit_loaded_cycles: int | None = None, ensure_step_table: bool = False, ensure_summary_table: bool = False, voltage_interpolation_step: float = 0.01, time_interpolation_step: float = 10.0, capacity_interpolation_step: float = 2.0, use_cellpy_stat_file: bool = False, auto_dirs: bool = True, jupyter_executable: str = 'jupyter')[source]#
Bases:
CellPyConfigSettings for reading data.
- auto_dirs: bool = True#
- capacity_interpolation_step: float = 2.0#
- cycle_mode: str = 'anode'#
- diagnostics: bool = False#
- ensure_step_table: bool = False#
- ensure_summary_table: bool = False#
- filestatuschecker: str = 'size'#
- force_all: bool = False#
- force_step_table_creation: bool = True#
- jupyter_executable: str = 'jupyter'#
- limit_loaded_cycles: int | None = None#
- select_minimal: bool = False#
- sep: str = ';'#
- sorted_data: bool = True#
- time_interpolation_step: float = 10.0#
- use_cellpy_stat_file: bool = False#
- voltage_interpolation_step: float = 0.01#