Skip to main content
2025 Python Packaging Survey is now live!  Take the survey now

Python client to ICAT+

Project description

PyIcat-Plus

A python client for ICAT+.

Getting started

Register raw datasets with ICAT

icat-store-raw --beamline id00 \
    --proposal id002207 \
    --path /data/visitor/path/to/dataset1 \
    --dataset test1 \
    --sample mysample

icat-store-raw --beamline id00 \
    --proposal id002207 \
    --path /data/visitor/path/to/dataset2 \
    --dataset test2 \
    --sample mysample

Register processed data with ICAT

icat-store-processed --beamline id00 \
    --proposal id002207 \
    --path /data/visitor/path/to/processed \
    --dataset testproc \
    --sample mysample \
    --raw /data/visitor/path/to/dataset1 \
    --raw /data/visitor/path/to/dataset2

Test

With threads

python -m pip install -e .[test]
pytest

With gevent

python -m pip install -e .[test]
python -m pip install gevent
python -m gevent.monkey --module pytest

NeXus

Each ICAT field has a NeXus equivalent. Create a NeXus compliant HDF5 file with all ICAT fields:

icat-nexus-definitions [--url https://...]

An example can be found here and opened with myhdf5.

Documentation

https://pyicat-plus.readthedocs.io/

Supported by

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