Library for Image Acquisition
Description
Lima ( L ibrary for Im age A cquisition) is a project for the unified control of 2D detectors. The aim is to clearly separate hardware specific code from common software configuration and features, like setting standard acquisition parameters (exposure time, external trigger), file saving and image processing.
Lima is a C++ library which can be used for many different cameras. The library is also available for Python and it provides a PyTango server for remote control.
Documentation: http://lima.blissgarden.org
Requirements
You need to install some tools and libraries for building Lima for both windows and Linux.
Build dependencies:
- gcc for Linux
- Visual Studio 2008 for x86 or x64 for Python 2.7.x
- Visual Studio 2008 Express for x86 only for Python 2.7.x
- Visual Studio 2015 for x86 and x64 for Python >= 3.5
- git
- CMake >= 3.1
- gsl: For windows, download the esrf binary package gsl-windows and install it under "c:\program files\"
Python dependencies:
Lima can be compiled for python 2 and 3. The following packages must be installed, development versions with header files (include files) are mandatory.
The following requirements are optional.
Saving format dependencies:
- tiff
- zlib: for windows, you can download the esrf binary package zlib-windows and install it under "c:\program files\"
- cbf
- hdf5
- ccfits
- lz4 = 1.7.x
- libconfig: for windows you can download the ESRF binary package libconfig-windows and install it under "c:\program files\"
PyTango server dependencies:
The LimaCCDs PyTango server only works for Python 2, it will be updated for Python 3 soon !!
Build and Install
Using scripts
the install scripts will run cmake, compile and install.
It accepts input arguments (see below) but it also uses a configuration file scripts/config.txt. Feel free to update this file for setting a permanent configuration for your own installation.
Linux:
[sudo] install.sh [--git] [--prefix=<desired installation path>] [--python-packages=<desired python installation path>] [options]
Windows:
install.bat [--prefix=<desired installation path>] [--python-packages=<desired python installation path>] [options]
The --git (Linux only) option cab be used to clone the required submodules as a prerequisite. Otherwise you should install the submodules with git commands, for instance:
$ git submodule init third-party/Processlib $ git submodule init camera/basler $ git submodule init applications/tango/python $ git submodule update
Options are <camera-name> <saving-format> python pytango-server:
camera-name:
andor|andor3|basler|prosilica|adsc|mythen3|ueye|xh|xspress3|ultra| xpad|mythen|pco|marccd|pointgrey|imxpad|dexela|merlin|v4l2| eiger|pixirad|hexitec|aviex|roperscientific|rayonixhs|espia|maxipix|frelon
saving-format:
cbf|nxs|fits|edfgz|edflz4|tiff|hdf5
python: to compile python module
pytango-server: to install the PyTango server
Example:
$ sudo install.sh --git --prefix=./install --python-packages=./install/python tiff basler python pytango-server
Using cmake
Install first the project submodules:
$ git submodule init third-party/Processlib $ git submodule init camera/basler $ git submodule init applications/tango/python $ git submodule update
Run cmake in the build directory:
$ mkdir build $ cd build $ cmake .. [-G "Visual Studio 9 2008 Win64" | -G "Visual Studio 9 2008" | -G "Unix Makefiles"] [-DCMAKE_INSTALL_PREFIX=<desired installation path>] [-DPYTHON_SITE_PACKAGES_DIR=<desired python installation path>] -DLIMA_ENABLE_TIFF=true -DLIMACAMERA_BASLER=true -DLIMA_ENABLE_PYTANGO_SERVER=true -DLIMA_ENABLE_PYTHON=true
Then compile and install:
$ cmake --build $ sudo cmake --build --target install
May you need to update your environment?
If you have changed the default destination path for both libraries and python modules you should update your environment variables.
For Linux:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<my-new-install-dir>/Lima/lib
export PYTHONPATH=$PYTHONPATH:<my-new-install-dir>
For Windows:
Update the system wide variables PATH for the libraries and PYTHONPATH for python.
Lima Team contact: lima@esrf.fr