NeXusCreator
Python CLI & API for converting heterogeneous experimental data into validated NeXus (HDF5) files using reusable mapping templates and extensible workflows.
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.
Participating organisations
Reference papers
- 1.Author(s): Hector Perez Ponce, Rolf Krahl, Daniel Tomecki, William Smith, Peter Wegmann, Heike GörzigPublished by Zenodo in 202510.5281/zenodo.17413948
- 2.Author(s): Katherine Rial, Heike Görzig, Rolf Krahl, Hector Perez Ponce, Marcus LewerenzPublished by Zenodo in 202510.5281/zenodo.17803992
- 3.Author(s): Hector Perez Ponce, Rolf Krahl, Daniel Tomecki, Will Smith, Peter Braun, Svetlana Grinman, Oliver Löhmann, Heike GörzigPublished by Zenodo in 202510.5281/zenodo.17815053
- 4.Author(s): Katherine Rial, Heike Görzig, Rolf Krahl, Hector Perez Ponce, Marcus LewerenzPublished by Zenodo in 202510.5281/zenodo.15095878
- 5.Author(s): Hector Perez Ponce, Heike Görzig, Rolf KrahlPublished by Zenodo in 202410.5281/zenodo.19817292
Contributors
Contact person
Hector Perez Ponce
Author/Developer/Maintainer
Helmholtz-Zentrum Berlin für Materialien und Energie
0009-0002-6192-9609
Mail HectorHelmholtz Program-oriented Funding IV
Related projects
DAPHNE4NFDI
Software developed or co-developed in the scope of the DAPHNE4NFDI consortium
HMC
Helmholtz Metadata Collaboration