Newer
Older
Offline Calibration
===================
The offline calibration is a package that consists of different services,
responsible for applying most of the offline calibration and characterization
for the detectors.
Offline calibration installation
================================
It's recommended to install the offline calibration (pycalibration) package
over maxwell, using anaconda/3 environment.
Installation using Anaconda
---------------------------
First you need to load the anaconda/3 environment through::
1. module load anaconda/3
If installing into other python enviroments, this step can be skipped.
Then the package for the offline calibration can be obtained from the git repository::
2. git clone https://git.xfel.eu/gitlab/detectors/pycalibration.git
You can then install all requirements of this tool chain in your home directory by running::
3. pip install -r requirements.txt . --user
in pycalibration's root directory.
After installation, you should make sure that the home directory is in the PATH environment variable::
4. export PATH=$HOME/.local/bin:$PATH
Installation using virtual python environment
---------------------------------------------
Create virtual environment::
module load anaconda/3
python -m venv /path/to/new/virtual/environment
source /path/to/new/virtual/environment/bin/activate
Clone from git::
cd /path/to/packages
git clone https://git.xfel.eu/gitlab/detectors/pycalibration.git
cd pycalibration
Install the package::
pip install -r requirements.txt
In additional install pyDetLib package, which is required for many notebooks::
cd /path/to/packages
git clone https://git.xfel.eu/gitlab/karaboDevices/pyDetLib.git
cd pyDetLib/lib
pip install -r requirements.txt
pip install .
++++++++++++++++++++++++++++++++++++++++++++++++++
Setting an ipython kernel for virtual environments
++++++++++++++++++++++++++++++++++++++++++++++++++
To set a kernel for your virtual environment::
source /path/to/new/virtual/environment/bin/activate
pip install ipykernel
python -m ipykernel install --user --name <virtenv-name> --display-name "virtenv-display-name"
This can be useful for Jupyter notebook tools as "max-jhub.desy.de".
Development Installation
------------------------
picks up (most) changes, first install the dependencies as above,
but then install the tool-chain separately in development mode (install in home directory using --user, in case of using Anaconda/3)::
Activate Offline calibration
============================
For using pycalibration package one needs to activate it through::
source activate
from inside of the pycalibration directory. This will automatically load
all needed modules and export the $PATH for the home directory.
Python Scripted Calibration
===========================
First: do not run this on the Maxwell gateway. Rather, `salloc`
a node for yourself first::
salloc -p exfel/upex -t 01:00:00
where `-p` gives the partition to use: exfel or upex and `-t`
the duration the node should be allocated. Then `ssh` onto
that node.
(optionally) Set up the environment::
module load python3
pip install --user ipython --upgrade
pip install --user ipyparallel --upgrade
pip install --user dill
If running headless (i.e. without X forwarding), be sure to set
`MPLBACKEND=Agg`, via::
Then start an `ipcluster`. If you followed the steps above this can be done
via::
~/.local/bin/ipcluster start --n=32
python3 calibrate.py --input /gpfs/exfel/exp/SPB/201701/p002012/raw/r0100 \
--output ../../test_out --mem-cells 30 --detector AGIPD --sequences 0,1
Here `--input` should point to a directory of `RAW` files for the detector you
are calibrating. They will be output into the folder specified by `--output`,
which will have the run number or the last folder in the hiearchy of the input
appended. Additionally, you need to specify the number of `--mem-cells` used
for the run, as well as the `--detector`. Finally, you can optionally
specify to only process certain `--sequences` of files, matching the sequence
numbers of the `RAW` input. These should be given as a comma-separated list.
Finally, there is a `--no-relgain` option, which disables relative gain
correction. This can be useful while we still further characterize the detectors
to provid accurate relative gain correction constants.
You'll get a series of plots in the output directory as well.