Read HDF5 data conforming to the NXmx application definition of the NeXus format
Project description
Read NXmx-flavour NeXus HDF5 data in Python
This package provides a neat and tidy Python interface for reading data from HDF5 files that are structured according to the NXmx application definition of the NeXus standard.
Installation
python-nxmx
is available as nxmx
on PyPI, so you just need Pip.
$ pip install nxmx
Getting started
If you have an HDF5 file in NXmx format, inspecting it with h5ls
will look something like this:
$ h5ls -r my-nxmx-file.h5
/ Group
/entry Group
/entry/data Group
/entry/definition Dataset {SCALAR}
/entry/end_time Dataset {SCALAR}
/entry/end_time_estimated Dataset {SCALAR}
/entry/instrument Group
/entry/instrument/beam Group
/entry/instrument/beam/incident_beam_size Dataset {2}
/entry/instrument/beam/incident_wavelength Dataset {SCALAR}
/entry/instrument/beam/total_flux Dataset {SCALAR}
/entry/instrument/detector Group
... etc. ...
With nxmx
, you can access the NXmx data in Python like this:
import h5py
import nxmx
with h5py.File("my-nxmx-file.h5") as f:
nxmx_data = nxmx.NXmx(f)
A slightly more detailed example
import h5py
import nxmx
with h5py.File("my-nxmx-file.h5") as f:
nxmx_data = nxmx.NXmx(f)
# Explore the NXmx data structure.
entry, *_ = nxmx_data.entries
print(entry.definition) # Prints "NXmx".
instrument, *_ = entry.instruments
detector, *_ = instrument.detectors
# Get the h5py object underlying an instance of a NX class.
entry_group = entry._handle # entry_group == f["entry"]
# Find instances of a given NX class in a h5py.Group.
beams = nxmx.find_class(instrument._handle, "NXbeam")
# The equivalent for more than one NX class.
beams, detectors = nxmx.find_classes(instrument._handle, "NXbeam", "NXdetector")
# Query attributes of an object in the normal h5py way.
# Suppose out detector has a transformation called "det_z".
transformations, *_ = nxmx.find_class(detector._handle, "NXtransformations")
attrs = transformations["det_z"].attrs # Get the attributes of the "det_z" dataset.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
nxmx-0.0.4.tar.gz
(22.9 kB
view details)
Built Distribution
nxmx-0.0.4-py3-none-any.whl
(15.9 kB
view details)
File details
Details for the file nxmx-0.0.4.tar.gz
.
File metadata
- Download URL: nxmx-0.0.4.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | baf205d803412675bb613b01217985347704940a774170dfe7114fe1bb5ca7d5 |
|
MD5 | 8aef8aec78db6b02c71c9708cee2ffd8 |
|
BLAKE2b-256 | 32b76cd51f43dd453fd3084dc631ac83ae3642b3a82b644f871a45f849060f27 |
File details
Details for the file nxmx-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: nxmx-0.0.4-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9860916cc25926be46ffa8a122f49ec1156ac5cc924633f37995064e208b04d |
|
MD5 | 6d544f3e642e4facb147be4b78f21f78 |
|
BLAKE2b-256 | 3d32f1b43d771f1f6d4772f9fa1bcce7da76f73438b6511d08d1324e64d24e8f |