HomeGuidesClean battery cycler data

Guide

How to clean battery cycler data (Arbin, Neware, Maccor, BioLogic)

Cycler exports differ in format, units and time conventions. Preserve the original record and the test protocol before processing capacity, efficiency or dQ/dV. Abrupt current changes can be genuine test events, not noise.

Why cycler data is messy

  • Current transients at step transitions. Changes near CC/CV, charge or rest transitions may be commanded response, physical dynamics or recording artifacts. Their shape alone does not decide which.
  • Frozen or dropped channels. A thermocouple that stops updating reads a flat line; a logger hiccup drops rows and leaves gaps in an otherwise regular series.
  • Format differences. The cyclers disagree on column names, units, encodings, and where step index and cumulative time live.

Format gotchas per cycler

CyclerWatch out for
Arbinseparate Global/Step time columns; current sign convention; large multi-sheet exports
Newareunits differ by export template (mA vs A); step/cycle indices you must keep
Maccorfixed-width / tab quirks; time may reset per step
BioLogicnative .mpr must be converted to text first; locale decimal commas

Before processing, confirm time and units; retain step, cycle, run and cell identifiers. Split at actual continuity boundaries. Repeated step numbers do not identify one continuous interval across a campaign.

Flag first; review before changing a measurement

These are limited offline examples, not the NLSYS engine. Download the tested example functions

import pandas as pd
from engineering_examples import hampel_flags

# First export one verified, contiguous step with current in amperes.
df = pd.read_csv("one_contiguous_step.csv")
current = pd.to_numeric(df["Current_A"], errors="raise").to_numpy()
flags, local_median, local_mad = hampel_flags(current, window=7)
review = df.copy()
review["current_review_flag"] = flags
review.to_csv("one_step_review.csv", index=False)
# No current value is replaced. Review flags against the protocol.
# Incomplete windows have no estimate; an unflagged row is not validated.

The dQ/dV caution

Abrupt changes are not automatically noise. Check the test schedule, timestamps and neighboring measurements before treating a transient as a recording artifact. Keep the raw export and record any changes. Evaluate their effect on capacity, efficiency and dQ/dV features before accepting the result; correcting a real recording error may legitimately change those metrics.

Doing it across a whole campaign

A campaign needs repeatable mappings, explicit continuity boundaries and a record of each accepted change. Battery-specific processing should keep those records with the outputs so another engineer can inspect the result; a cleaner-looking curve is not itself proof of preserved features.

FAQ

How do I remove current spikes from cycler data?

First flag and investigate candidates within verified contiguous steps. Compare against the applied protocol and neighboring measurements. Replace only confirmed artifacts, retain the original values and record the method.

Will cleaning change my capacity or dQ/dV curve?

Processing can change calculated metrics. Compare raw and candidate results with defined acceptance criteria and uncertainties; do not infer peak, capacity or efficiency preservation from a filter name.

Can I clean Arbin, Neware, Maccor and BioLogic the same way?

Use the same integrity questions, but verify each export version, units, identifiers and time format separately. Convert supported binary exports to the required text format before using the browser check.

Use the battery workflow. Battery Clean & Convert adds battery-specific mapping, cycle boundaries, source-row identity and peak-aware evidence that a generic per-column cleaner does not provide. See Battery products →

Cleaning is step one. On the same platform, the Filtration + Analytics tier builds a System Passport of your experiment — per-channel model diagnostics, validation results, channel health, and explicit limits and unsupported conclusions — and NDC compiles your trajectories into an executable nonlinear model with free-run validation and a Nonlinearity Passport. Full battery workflow — on the battery page.