===
API
===
The RosettaSciIO Application Programming Interface allows other python packages
to use its input/output (IO) capabilities.
.. toctree::
:hidden:
utils
.. _interfacing-api:
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:
.. code-block:: python
from rsciio.hspy import file_reader
fdict = file_reader("norwegianblue.hspy")
Interfacing the writer from one of the IO plugins:
.. code-block:: python
from rsciio.hspy import file_writer
file_writer("beautifulplumage.hspy", fdict)
.. _using-rsciio:
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.