Skip to main content
`Ctrl`+`K`

# API

The RosettaSciIO Application Programming Interface allows other python packages to use its input/output (IO) capabilities.

## Interfacing the RosettaSciIO plugins

RosettaSciIO is designed as library offering file reading and writing capabilities for scientific data formats to other python libraries. The IO plugins have a common interface through the `file_reader` and `file_writer` (optionally) functions. Beyond the `filename` and in the case of writers `object2save`, the accepted keywords are specific to the different plugins. The object returned in the case of a reader and passed to a writer is a python dictionary.

The dictionary contains the following fields:

- `'data'` – multidimensional numpy array

- `'axes'` – list of dictionaries describing the axes containing the fields `'name'`, `'units'`, `'index_in_array'`, and

  - either `'size'`, `'offset'`, and `'scale'`

  - or a numpy array `'axis'` containing the full axes vector

- `'metadata'` – dictionary containing the parsed metadata

- `'original_metadata'` – dictionary containing the full metadata tree from the input file

Interfacing the reader from one of the IO plugins:

    from rsciio.hspy import file_reader
    fdict = file_reader("norwegianblue.hspy")

Interfacing the writer from one of the IO plugins:

    from rsciio.hspy import file_writer
    file_writer("beautifulplumage.hspy", fdict)

### Python packages using RosettaSciIO

The following python packages available through PyPI and/or conda-forge use the RosettaSciIO plugins for reading/writing of data files:

- HyperSpy: Multidimensional data analysis

- Any HyperSpy extension that inherits the IO capabilities:

  - LumiSpy: Luminescence analysis with HyperSpy

  - Kikuchipy: Processing, simulating and analyzing electron backscatter diffraction (EBSD) patterns in Python

  - PyXem: An open-source Python library for multi-dimensional diffraction microscopy.

  - exSpy: Analysis of X-ray Energy Dispersive Spectroscopy (EDS) and Electron Energy Loss Spectroscopy (EELS).

  - holospy: Analysis of (off-axis) electron holography data.