csemx

An open, vendor-neutral exchange format for modeling-ready frequency-domain controlled-source electromagnetic (CSEM) data.

Status: pre-circulation draft (1.0), open for technical review. Not yet frozen.

A csemx bundle carries calibrated, current-normalized complex response functions together with the explicit transmitter and receiver geometry, coordinate reference system, units, and sign/phase conventions needed to model them. A producer exports once and any code that implements the format can read the delivery, replacing a matrix of bespoke per-vendor converters.

A bundle is a self-describing ZIP archive of CSV or Parquet tables with a human-readable manifest, so the data remains inspectable long after delivery and is suitable for archival of final, processed CSEM datasets.

What it carries

  • Calibrated, current-normalized complex response functions
  • Explicit 3D transmitter and receiver geometry
  • Coordinate reference system, units, and orientation
  • Mandatory, documented sign and phase conventions
  • A producer data-quality recommendation per datum

Out of scope

  • Raw acquisition / instrument output
  • Magnetotelluric (MT) data
  • Inversion or modeling settings
  • Calibration internals

Bundle structure

A delivered bundle is a .csemx.zip archive containing one top-level directory. Each required table is supplied exactly once, as CSV or Parquet; the specification defines the columns, geometry conventions, units, normalization, and validation rules.

<bundle-name>/
├── manifest.yaml
├── tx.csv | tx.parquet
├── tx_vertices.csv | tx_vertices.parquet
├── rx.csv | rx.parquet
├── rx_vertices.csv | rx_vertices.parquet
├── data.csv | data.parquet
└── notes.md          # optional

Validating a bundle

python3 -m pip install -e "./python[full]"
csemx validate --full examples/example.csemx.zip
csemx inspect examples/example.csemx

MATLAB helpers under matlab/+csemx provide csemx.read, csemx.write, and csemx.validate. See the repository for full instructions.

Feedback

The conventions are not frozen, and technical review from people who acquire, process, and model CSEM data is what this stage is for. Draft comments are welcome through July 31, 2026; later comments are still tracked.

No GitHub account is needed; emailed comments reach the same backlog.