Skip to content

iterorganization/IMAS-Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,674 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

IMAS-Core

Build Open Issues License: LGPL-3.0

IMAS-Core is a lowlevel library with Python bindings for reading and writing fusion experiment data in standard IMAS format.

It provides easy access to data stored in HDF5, MDSplus, and other formats, making it simple to work with fusion physics data across platforms (Linux, macOS, Windows).

This repository contains the Lowlevel components of the Access Layer:

  • C lowlevel interface used by the various High Level Interfaces
  • Python bindings to the lowlevel interface
  • Backends for reading and writing IMAS data
  • MDS+ model logic for creating the models required by the MDS+ backend

Installation Options

For Python Users

# Install from PyPI
pip install imas-core

# Verify installation
python -c "import imas; print(imas.__version__)"

For Developers

To build IMAS-Core from source:

git clone https://github.com/iterorganization/IMAS-Core.git
cd IMAS-Core
cmake -Bbuild -GNinja -DAL_PYTHON_BINDINGS=ON -DCMAKE_INSTALL_PREFIX="$(pwd)/test-install"
cmake --build build --target install

See Developer Guide for build instructions.

Using IMAS-Core with High-Level Languages

When IMAS-Core is built and installed via CMake, it installs:

  • C/C++ Libraries (libal.so) with full headers
  • Python Bindings (imas_core Python package)
  • Fortran Support via pkg-config configuration
  • Java Support via imas.jar
  • MATLAB Support via MEX bindings
  • Models for MDSplus backend access

After installation, configure your environment:

export PATH="/path/to/install/bin:$PATH"
export LD_LIBRARY_PATH="/path/to/install/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/path/to/install/lib/pkgconfig:$PKG_CONFIG_PATH"
export HDF5_USE_FILE_LOCKING=FALSE
export PYTHONPATH="/path/to/install/lib/pythonX.X/site-packages:$PYTHONPATH"

Then use IMAS-Core from the required language:

  • Python: import imas (see examples above)
  • C/C++: Link against libal.so with provided headers
  • Fortran: Use pkg-config to get compiler flags
  • Java: Use imas.jar in your classpath
  • MATLAB: Add MEX directory to MATLAB path

See Building from Source for detailed build instructions.

Documentation

Available Backends

IMAS-Core supports these storage backends:

Backend Use Case Remote File-based
HDF5 Default, local storage No Yes
MDSplus ITER experiments Yes No
UDA Distributed access Yes No
Memory Testing No No
FlexBuffers Message passing No Yes
ASCII Debugging No Yes

Help

Links

License

IMAS-Core is released under the LGPL-3.0 License

Support