Step 1 of publishing your data →
Convert your cycler data
Every instrument speaks its own format, the first wall between your data and anyone else’s tools. ws.convert() turns what your cycler wrote into BDF: one tidy, documented table format that every later step (and every colleague) can read.
import battinfo
ws = battinfo.workspace(".")
ws.convert() # NEWARE / Biologic / Excel / MATLAB auto-detected
ws.convert("*.csv") # Digatron / Landt / Novonix / generic CSV exports
# -> bdf/*.bdf.csv one tidy, documented table format for all of themWhat converts
What the converter can do today.
This table is checked against the library’s own guidance in CI, so it cannot overpromise.
Auto-detected, just run ws.convert()
| Extension | Instrument |
|---|---|
| .ndax | NEWARE |
| .nda | NEWARE (legacy) |
| .mpt | Biologic (EC-Lab text export) |
| .xlsx | Excel |
| .mat | MATLAB |
With a pattern, ws.convert("*.csv")
| Extension | Instrument |
|---|---|
| .csv | Digatron / Landt / Novonix / generic CSV |
| .txt | Basytec / Landt text |
Export a CSV first
| Extension | Instrument |
|---|---|
| .res | Arbin |
| .mpr | Biologic binary |
| raw | Maccor |
Proprietary binaries: export CSV from the vendor software, then ws.convert("*.csv").
What you get back
bdf/*.bdf.csv, cycle, step, time, voltage, current, and capacity columns under one documented schema (run ws.bdf_columns() for the full list). From there, the publishing journey attaches the converted file to a linked test record with provenance intact.
The semantic layer
Want JSON-LD? See what the real transform emits.
Records become EMMO-aligned JSON-LD at publish time. The examples gallery shows genuine before/after pairs, generated by the actual Python transform, drift-checked in CI, never mocked in the browser.