Documentation Status Ruff Coverage Status

specsanalyzer#

This is the package specsanalyzer for conversion and handling of SPECS Phoibos analyzer data.

This package contains two modules: specsanalyzer is a package to import and convert MCP analyzer images from SPECS Phoibos analyzers into energy and emission angle/physical coordinates. specsscan is a Python package for loading Specs Phoibos scans acquired with the labview software developed at FHI/EPFL

Tutorials for usage and the API documentation can be found in the Documentation

Installation#

Pip (for users)#

  • Create a new virtual environment using either venv, pyenv, conda, etc. See below for an example.

python -m venv .specs-venv
  • Activate your environment:

source .specs-venv/bin/activate
  • Install specsanalyzer from PyPI:

pip install specsanalyzer
  • This should install all the requirements to run specsanalyzer and specsscanin your environment.

  • If you intend to work with Jupyter notebooks, it is helpful to install a Jupyter kernel for your environment. This can be done, once your environment is activated, by typing:

python -m ipykernel install --user --name=specs_kernel

Configuration and calib2d file#

The conversion procedures require to set up several configuration parameters in a config file. An example config file is provided as part of the package (see documentation). Configuration files can either be passed to the class constructors, or are read from system-wide or user-defined locations (see documentation).

Most importantly, conversion of analyzer data to energy/angular coordinates requires detector calibration data provided by the manufacturer. The corresponding *.calib2d file (e.g. phoibos150.calib2d) are provided together with the spectrometer software, and need to be set in the config file.

For Contributors#

To contribute to the development of specsanalyzer, you can follow these steps:

  1. Clone the repository:

git clone https://github.com/OpenCOMPES/specsanalyzer.git
cd specsanalyzer
  1. Check out test data (optional, requires access rights):

git submodule sync --recursive
git submodule update --init --recursive
  1. Install the repository in editable mode:

pip install -e .

Now you have the development version of specsanalyzer installed in your local environment. Feel free to make changes and submit pull requests.

Poetry (for maintainers)#

  • Prerequisites:

    • Poetry: https://python-poetry.org/docs/

  • Create a virtual environment by typing:

poetry shell
  • A new shell will be spawned with the new environment activated.

  • Install the dependencies from the pyproject.toml by typing:

poetry install --with dev, docs
  • If you wish to use the virtual environment created by Poetry to work in a Jupyter notebook, you first need to install the optional notebook dependencies and then create a Jupyter kernel for that.

    • Install the optional dependencies ipykernel and jupyter:

    poetry install -E notebook
    
    • Make sure to run the command below within your virtual environment (poetry run ensures this) by typing:

    poetry run ipython kernel install --user --name=specs_poetry
    
    • The new kernel will now be available in your Jupyter kernels list.