Skip to main content
Turn a raw cycler export (Arbin, Maccor, Neware, Basytec, BioLogic, …) into the Ionworks standardized format and upload it as a measurement — all from Python.
Install and authenticate first: pip install ionworks-api and set IONWORKS_API_KEY (and IONWORKS_PROJECT_ID). See the Python API client page.
What’s happening
  • time_series vs steps. time_series is the raw signal trace — one row per logged time point. steps is a compact per-step summary — one row per protocol step — carrying step/cycle indices and derived quantities (capacity, energy, voltage extremes) that read.time_series_and_steps computes as it parses. Steps are what most analyses group and filter on.
  • ionworksdata.read has readers for the common cyclers; read.detect(path) auto-picks one. Prefer read.time_series_and_steps — it returns both frames and runs the full processing pipeline in one call.
  • Current sign convention: Ionworks treats positive current as discharge. Different cyclers use different conventions, so check your source and flip the sign if needed (ionworksdata provides set_positive_current_for_discharge) before uploading.
  • create_or_get is idempotent — re-running returns the existing spec/instance/measurement instead of duplicating it. A returned object (not the call merely completing) is the proof of success.

Learn more