Skip to main content

Extend NeXus for experiments and characterization in Materials Science and Materials Engineering and serve as a NOMAD parser implementation for NeXus.

Project description

Ruff

pynxtools is a tool designed for making your experimental data FAIR. It allows to develop ontologies and to create ontological instances based on the NeXus format.

Installation

It is recommended to use python 3.10 with a dedicated virtual environment for this package. Learn how to manage python versions and virtual environments.

Install the latest stable version of this package from PyPI with

pip install pynxtools

You can also install the latest development version with

pip install git+https://github.com/FAIRmat-NFDI/pynxtools.git

Scope

pynxtools (previously called nexusutils) is intended as a parser for combining various instrument output formats and electronic lab notebook (ELN) formats to an hdf5 file according to NeXus application definitions.

Additionally, the software is used in the research data management system NOMAD for making experimental data searchable and publishable. NOMAD is developed by the FAIRMAT consortium, as a part of the German National Research Data Infrastructure (NFDI).

The software tools are located inside pynxtools and they are shipped with unit tests located in tests. Some examples with real datasets are provided in examples. It guides you through the process of converting instrument raw data into the NeXus standard and visualising the files content.

Command line tools

Documentation

Documentation for the different tools can be found here.

Contributing

Development install

Install the package with its dependencies:

git clone https://github.com/FAIRmat-NFDI/pynxtools.git \\
    --branch master \\
    --recursive pynxtools
cd pynxtools
git submodule sync --recursive
git submodule update --init --recursive --jobs=4
python -m pip install --upgrade pip
python -m pip install -e .
python -m pip install -e ".[dev]"

There is also a pre-commit hook available which formats the code and checks the linting before actually commiting. It can be installed with

pre-commit install

from the root of this repository.

Test this software

Especially relevant for developers, there exists a basic test framework written in pytest which can be used as follows:

python -m pytest -sv tests

Run examples

A number of examples exist which document how the tools can be used. For a standalone usage convenient jupyter notebooks are available for each tool. To use them jupyter and related tools have to be installed in the development environment as follows:

python -m pip install jupyter
python -m pip install jupyterlab
python -m pip install jupyterlab_h5web

Questions, suggestions?

To ask further questions, to make suggestions how we can improve these tools, to get advice on how to build on this work, or to get your parser included into NOMAD, you can:

Does this software require NOMAD or NOMAD OASIS ?

No. The data files produced here can be uploaded to Nomad. Therefore, this acts like the framework to design schemas and instances of data within the NeXus universe.

Troubleshooting

Please check this guide for any issues you face with the tool. If you don't find a solution there, please make a new Github Issue.

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

pynxtools-0.3.0.tar.gz (565.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynxtools-0.3.0-py3-none-any.whl (994.5 kB view details)

Uploaded Python 3

File details

Details for the file pynxtools-0.3.0.tar.gz.

File metadata

  • Download URL: pynxtools-0.3.0.tar.gz
  • Upload date:
  • Size: 565.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for pynxtools-0.3.0.tar.gz
Algorithm Hash digest
SHA256 39021640a0ff0ab877dfa940848d6387ad67fb9a0a099ac0bf28532b54bbf48b
MD5 251dee4c38a92a43ec43c6c1bf3067bc
BLAKE2b-256 8e712279115055f9bfb0a6639554710bef2b6f46815728c46f083ed5649f6515

See more details on using hashes here.

File details

Details for the file pynxtools-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pynxtools-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 994.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for pynxtools-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4188e6e027a41c8ed41ed4b639750da44de908c53d46afce5f863f11d1fb226c
MD5 782c897d1e2ef3c493052533c69d8e78
BLAKE2b-256 4e033f41e7ff847201531f6add100e93c4acbbe411822c38ed5456b9b0ed8c35

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page