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
76 commitsLast commit ≈ 1 week ago0 stars0 forks

Description

NeXusCreator

NeXusCreator is a Python-based command-line tool for converting heterogeneous experimental data into standards-compliant NeXus (HDF5) files.

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, DTA/DAT, HDF5, TIFF) 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 expansion, prompt literals for missing metadata (placeholders flagging required manual input), and optional NXDL schema-guided field placement — 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. Per-scan outputs with HDF5 external links are supported for SPEC workflows.

  • Domain-specific workflows
    Built-in support for XAS (IKFT/Diamond B18), electrochemistry and operando EIS (batteries/DTA), photoemission (PEAXIS), and MPES experiments, with dedicated parsers and generators.

  • 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 optional validation
    Supports schema-guided placement via NXDL application definitions (e.g. NXxas), correct use of NX_class, signals, axes, and @default chains, with optional validation via punx.

  • Python API and pipeline integration
    A public API (create_nexus, NeXusCreator) enables seamless integration into automated workflows and data processing pipelines.


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.


Typical Use Cases

  • Converting beamline data (SPEC, XAS, MPES, EIS) into NeXus for archiving and analysis
  • Standardising electrochemical and operando experiment datasets
  • Preparing data for facility data management systems and repositories (e.g. ICAT)
  • Automating data pipelines in large experimental campaigns

One-Line Summary

Convert heterogeneous experimental data into standards-compliant NeXus (HDF5) files using reusable mapping templates — reproducibly and at scale.

Logo of NeXusCreator
Keywords
No keywords available
Programming languages
  • Python 100%
  • Shell 0%
  • Makefile 0%
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

Related projects

DAPHNE4NFDI

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

Updated 20 months ago

HMC

Helmholtz Metadata Collaboration

Updated 12 months ago