Ctrl K

NeXusCreator

Python CLI & API for converting heterogeneous experimental data into validated NeXus (HDF5) files using reusable mapping templates and extensible workflows.

3
contributors
Get started
157 commitsLast commit ≈ 4 days ago0 stars0 forks

Cite this software

Description

Description

NeXusCreator

NeXusCreator is a Python-based software toolkit for converting heterogeneous experimental data into standards-compliant NeXus (HDF5) files — usable from the command line, a Python API, a REST API, or a local web GUI.

Experimental instruments produce data in many incompatible formats, making long-term storage, sharing, and reproducibility challenging. NeXusCreator addresses this by automating the transformation of raw data into structured, metadata-rich NeXus files, following community standards used in photon, neutron, and muon science.

Key Capabilities

Automated data conversion
Convert raw files (e.g. SPEC, Gamry DTA/DAT, HDF5 — including EVE and Roundrobin instrument variants —, TIFF, JSON, YAML, JSON-LD) into NeXus (.nxs) format — for single files or entire directories.

Template-based workflows
Generate reusable .nxd definition templates directly from input data. Templates support scan and multi-file expansion, prompt literals for missing metadata (placeholders flagging required manual input), and optional NXDL schema-guided field placement via SchemaPlacer — which ranks candidate NeXus locations for a variable using its name, schema context, units, and description, optionally sharpened further with an external metadata CSV — enabling consistent, repeatable, and FAIR data transformations.

Batch and large-scale processing
Process individual files or large datasets, including combined outputs for multi-file experiments (e.g. a whole operando run folder into one file). Per-scan outputs with HDF5 external links are supported for SPEC workflows.

Domain-specific workflows
Built-in support for XAS (IKFT/Diamond B18/operando via EVE HDF5), electrochemistry and operando EIS (batteries/DTA, including derived State-of-Charge/IV/EIS datasets), photoemission (PEAXIS), and MPES experiments, with dedicated parsers and generators. For Raman, XAS, and XPS, NeXusCreator also bridges directly to the real reader plugins from the pynxtools/NOMAD ecosystem, instead of reimplementing vendor-format parsing.

Extensible plugin architecture
A priority-based plugin system auto-discovers parsers and generators at runtime. Supporting new formats requires only a single plugin file — no core modifications.

Standards-compliant structuring and native validation
Supports schema-guided placement via NXDL application definitions (e.g. NXxas), correct use of NX_class, signals, axes, and @default chains, with a native, dependency-free structural validator (h5py-only — no external tool required) checking the written file against the same rules.

Multiple interfaces for pipeline integration
A public Python API (create_nexus, NeXusCreator) enables seamless integration into automated workflows and data processing pipelines. The same conversion engine is also exposed as a REST API for scripting from any language or tool, and as a local web GUI — with an embedded, syntax-highlighted .nxd editor and an embedded H5Web viewer for the resulting .nxs — for anyone who prefers a browser to the command line.

Why NeXusCreator?

NeXusCreator bridges the gap between instrument-specific raw data and FAIR, reusable scientific datasets. It enables:

  • Reproducible data pipelines
  • Consistent and standards-compliant metadata integration
  • Interoperable data for cross-facility use and analysis

By separating data extraction (parsers) from data structure definition (.nxd templates), NeXusCreator provides a scalable and flexible foundation for managing complex experimental data workflows. That same .nxd mapping format is also consumed independently by other tools, such as HZDR's nexus-design-studio.

Typical Use Cases

  • Converting beamline data (SPEC, XAS, MPES, EIS) into NeXus for archiving and analysis
  • Standardising electrochemical and operando experiment datasets
  • Bridging existing NOMAD/pynxtools readers (Raman, XAS, XPS) into NeXus without writing a new parser
  • Preparing data for facility data management systems and repositories (e.g. ICAT)
  • Automating data pipelines in large experimental campaigns, via the CLI, Python API, or REST API
  • Reviewing and converting data through a browser, without installing anything locally beyond the web GUI

One-Line Summary

Convert heterogeneous experimental data into standards-compliant NeXus (HDF5) files using reusable, NXDL-aware mapping templates — reproducibly and at scale, via CLI, Python API, REST API, or web GUI.

Logo of NeXusCreator
Keywords
No keywords available
Programming languages
  • Python 83%
  • Jupyter Notebook 9%
  • Svelte 4%
  • TypeScript 2%
  • Shell 1%
License
</>Source code
Packages
pypi.org

Participating organisations

Helmholtz-Zentrum Berlin für Materialien und Energie

Reference papers

Contributors

HPP
Hector Perez Ponce
Author/Developer/Maintainer
Helmholtz-Zentrum Berlin für Materialien und Energie
RK
Rolf Krahl
Supervisor
Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
HG
Heike Görzig
Project Leader
Helmholtz-Zentrum Berlin für Materialien und Energie

Helmholtz Program-oriented Funding IV

Research Field
Research Program
PoF Topic
Subtopic

Related projects

DAPHNE4NFDI

Software developed or co-developed in the scope of the DAPHNE4NFDI consortium

Updated 24 months ago

HMC

Helmholtz Metadata Collaboration

Updated 17 months ago