Installation

Step 1 - tomwer

To install it with all ‘features’:

pip install tomwer[full]

alternatively you can install the master branch from

pip install git+https://gitlab.esrf.fr/tomotools/tomwer/#egg=tomwer[full]

Step 2 - update forks for orange-canvas-core and orange-widget-base

To access ‘processing’ wheels and ‘reprocess action’ you might want to install forks of update orange-canvas-core and orange-widget-base. This is optional and projects works with native orange projects

pip install git+https://github.com/payno/orange-canvas-core --no-deps --upgrade
pip install git+https://github.com/payno/orange-widget-base --no-deps --upgrade

Launching applications

After the installation tomwer is embedding several applications.

Those applications can be launched by calling:

tomwer appName {options}

Note

if you only call tomwer then the man page will be displayed.

Note

You can access each application help using ``

tomwer appName --help

tomwer canvas

You can launch the canvas to create workflows from the different ‘bricks’

tomwer canvas

Note

tomwer canvas is launching ‘orange-canvas’ but will to some extra processing (like setting log level of some libraries). this is why it is recommended to go for tomwer canvas instead of ̀orange-canvas

Documentation

sphinx-build doc build/html

The documentation is build in build/html and the entry point is index.html

firefox build/html/index.html

Note

the build of the documentation need sphinx to be installed. This is not an hard dependacy. So you might need to install it.

You also should generate documentation to be accessible from Orange GUI (pressing the F1 key).

sphinx-build doc build/html -b htmlhelp

To get more information about help from Orange see :

Help files from Orange GUI

accessing documentation from the interface

Some errors that can occur

With Qt (Application crashes with segfault)

the tomwer GUI is using silx from the silx.gui.qt module which try to use PyQt5, then PySide2, then PyQt4 Order is different for AnyQt, used by Orange3. So some incoherence might append (will bring errors) in the Signal/SLOT connection during widget instanciation.

You should be carrefull about it if more than one Qt binding is available (one quick and durty fix is to change the AnyQt/__init__.py file - ‘availableapi’ function for example)

Issue with silx library and static TLS

It is know that with some os (debian8) we can that issues with openmp. Usually we compile silx with the –no-openmp flag (as the distributed wheel). Otherwise this kind of error can occur (https://github.com/silx-kit/silx/issues/3102). At tomwer side the only usage we can have of openmp is with the median filter. So it is not consider a ‘big’ deal if openmp is deactivate.

Issue with reconstruction being slow

If the reconstruction is done on a GPU and appears to be very slow (several minutes) the origin can be that the scan dataset is store into several files. Like for example for HDF5 file if each frame is store in a dedicated file.

tomwer with bliss EBS-tomo

tomwer and EBS-tomo (tomography framework for bliss) are able to share information.

  • with the data listener using rpc command. When a scan is started and finished it will send a command for tomwer to process it. This require the EBS-tomo framework to be activated at the beamline. This can be check with the supervisor at the beamline

tomwer installation at ESRF

Installation is now done using automatix

on the slurm-cluster

For now users can activate python virtual environments within all the tomotools suite from sourcing the script /scisoft/tomotools/activate {version} and the version they want to activate. This script will handle the architecture of the current node and special version name such as dev or stable

source /scisoft/tomotools/activate dev

at beamlines

On beamlines the rule is to do the installations on /nobackup partitions. The different location can be found in https://gitlab.esrf.fr/tomotools/automatix/-/blob/master/deployment/cfg_esrf_envs.py In order to simplify activation and launch of the orange-canvas usually a tomwer-{version} alias is done to be called like:

tomwer-dev canvas [options]