Ingestion
Drop in instrument files; Niobia parses and checks them.
Drop in a raw export from almost any cycler or instrument and Niobia turns it into a clean, unit-correct, analysis-ready table: columns resolved, sign conventions applied, units reconciled, outliers and truncated cycles flagged, with no templating.
What it measures
Ingestion is the step every analysis silently depends on, and the place most manual workflows lose hours. The work is to take a vendor export written for that vendor and normalize it without losing or corrupting anything:
- Column resolution: the same quantity is named differently by every instrument, sometimes with Unicode characters in the header. Voltage, current, capacity, time, frequency, and real/imaginary impedance all get identified regardless of how the export labels them.
- Sign and convention handling: charge-positive versus charge-negative, the impedance sign convention that differs between EIS instruments, time that resets per step versus runs continuously. Getting these wrong silently inverts a plot.
- Unit reconciliation: mA versus A, mAh versus Ah, seconds versus hours, Hz versus kHz. One mismatched unit moves a result by orders of magnitude.
- Quality checks: truncated or aborted cycles, formation cycles that should be handled separately, dropped rows, and outliers are detected and flagged rather than fed silently into the math.
How to read the output
A clean ingestion is one where the column mapping is explicit (you can see what was identified as what), the units are stated, and the flags are surfaced rather than buried: this many cycles, these N truncated and excluded, formation handled separately, these rows dropped as outliers with the reason. The failure signature to watch for is silent success: a file that "loaded fine" but mapped current to the wrong column, or kept a vendor sign convention that flips the Nyquist plot into the wrong quadrant. Good ingestion is auditable, every transformation visible, because the rest of the analysis inherits whatever happened here.
A real use case
A battery group runs three cyclers from different vendors and a potentiostat, because that is what the lab accumulated over a decade. Comparing capacity fade across them used to mean a half-day of re-typing each export into a common template, and a recurring class of bugs from someone pasting a milliamp column next to an amp column. Ingested instead, all four exports resolve to the same clean schema: per-cycle capacity in consistent units, formation cycles separated, the one cycler's known mid-test abort flagged and excluded. The cross-vendor comparison that took half a day and bred unit bugs becomes a single consistent table in minutes, and the analyst spends the time on the question instead of the formatting.
Common mistakes
- Trusting a silent load. If the column mapping and unit assumptions are not visible, a successful-looking import can still be quietly wrong.
- Ignoring sign conventions. The impedance and current sign differs by instrument; a kept-wrong convention inverts plots without throwing an error.
- Folding formation cycles into cycle-life statistics. Formation losses are not cycling fade and skew every fade fit if not separated.
- Letting truncated or aborted cycles through. A cycle that ended early reads as a capacity drop that never happened.
- Re-typing by hand. Manual transcription between vendor formats is both the slow step and the single largest source of unit errors.
Any major cycler or instrument, normalized automatically
Niobia ingests galvanostatic cycling data from the major cyclers: Arbin, Neware, Maccor, BioLogic, Gamry, Digatron, Novonix, Basytec, and LAND, and EIS data from PalmSense, Gamry, BioLogic, and generic instruments. It resolves instrument-specific column names (including Unicode characters), applies the correct sign convention per instrument, reconciles units, and routes the data to the right analysis pathway. The quality work is automatic: formation-cycle handling, truncated-cycle detection, and data-quality checks run on ingestion, with the flags surfaced rather than hidden. The result is that an analysis starts from a clean, unit-correct, auditable table no matter which vendor's export it came from, which is the precondition for everything in the plotting and reporting stages downstream.
Frequently asked
Which instruments and cyclers can Niobia read?
Cyclers: Arbin, Neware, Maccor, BioLogic, Gamry, Digatron, Novonix, Basytec, and LAND. EIS and voltammetry: PalmSense, Gamry, BioLogic, and generic exports. Column names, units, and sign conventions are resolved per instrument, including headers with Unicode characters.
What happens to formation cycles and aborted runs?
They are detected and handled explicitly: formation cycles are separated from cycle-life statistics, and truncated or aborted cycles are flagged and excluded rather than fed into fade fits as phantom capacity drops. The handling is surfaced, so you can see what was set aside and why.
Why is ingestion treated as its own step rather than a quick import?
Because every downstream result inherits it. A wrong column map or kept-wrong sign convention produces a clean-looking but wrong analysis, and those errors are expensive to catch later. Making ingestion explicit and auditable is what keeps the plots and reports trustworthy.
