21–27 Sept 2026
EuXFEL Lighthouse
Europe/Berlin timezone

The h5cpp and pninexus libraries: an easy way to create NeXus files in C++ and Python

Not scheduled
20m
DESY

DESY

Notkestraße 85
Satellite Meeting NIAC NIAC

Speaker

Jan Kotanski (DESY)

Description

The h5cpp library developed by DESY and ESS is a C++ wrapper for the HDF5 library. Using modern C++ features it simplifies creation of HDF5 files via wrapping pointers in c++ class objects and mapping HDF5 datatypes and dataspaces to native C++ datatypes and containers.

The C++ libpninexus library adds a set of advance tools. In particular, it offers an file structure builder from XML configuration, along with helper utilities that simplify the creation and reading of NeXus files.

The python-pninexus package provides python bindings for both h5cpp and libpninexus. It adds support for numpy arrays via mapping them to HDF5 datatypes and dataspaces with use of C++ traits.

The libraries with their Python binding are widely used by the PETRA III experiment at DESY in our detector Tango servers and our NeXus metadata framework. They are supported on Linux, Windows, and macOS, and run on both x64 and ARM architectures.

Authors

Eugen Wintersberger (DESY) Martin Shetty (ESS) Jan Kotanski (DESY) Afonso Mukai (ESS) Jonas Nilsson (ESS) Matthew D Jones (Tessella) George O'Neill (ESS) FlyingSamson (tuxcad) Sebastian Koenig (NCSU) Shiv Upadhyay (UW) Andrew Marshall (algodynamic) Yuelong Yu (DESY) Matt Clarke (ESS) Dominik Werder (PSI) Gareth Murphy (ESS) apocelipes Jack Harper Milosz Nowak (ESS) Ralf Mayet FlorianBen Martin Lülf

Presentation materials

There are no materials yet.