PyWI CTA - A CTA wrapper for PyWI

Copyright (c) 2016-2018 Jeremie DECOCK (


PyWI-CTA is a ctapipe wrapper for PyWI.


This project is in beta stage.


The PyWI and PyWI-CTA libraries contain:

  • wavelet transform and wavelet filtering functions for image multiresolution analysis and filtering;
  • additional filter to remove some image components (non-significant pixels clusters);
  • a set of generic filtering performance estimators (MSE, angular precision, energy loss, contamination rate, …), some relying on the scikit-image Python library (supplementary estimators can be easily added to meet particular needs);
  • a graphical user interface to visualize the filtering process in the wavelet transformed space;
  • an Evolution Strategies (ES) algorithm known in the mathematical optimization community for its good convergence rate on generic derivative-free continuous global optimization problems (Beyer, H. G. (2013) “The theory of evolution strategies”, Springer Science & Business Media);
  • additional tools to manage and monitor the parameter optimization.


PyWI-CTA has the following strict requirements:

PyWI-CTA also depends on other packages for optional features:

However, note that these only need to be installed if those particular features are needed. pywicta will import even if these dependencies are not installed.


PyWI-CTA and its dependencies may be installed using the Anaconda or Miniconda package system. We recommend creating a conda virtual environment first, to isolate the installed version and dependencies from your master environment (this is optional).

The following command will set up a conda virtual environment, add the necessary package channels, and download PyWI-CTA and its dependencies. The file environment.yml can be found in this repository. Note this is beta stage software and is not yet stable enough for end-users (expect large API changes until the first stable 1.0 release).

conda env create -n pywi-cta -f environment.yml
source activate pywi-cta
pip install pywicta --no-deps

If you have already installed ctapipe following the official installation procedure, you can add PyWI-CTA to the cta virtual environment like this:

source activate cta
pip install pywicta --no-deps

Developers should follow the development install instructions found in the documentation.


As ctapipe is not tested to work on Microsoft Windows systems, PyWI-CTA does not officially support these systems neither.


The --no-deps flag is optional, but highly recommended otherwise pip will sometimes try to “help” you by upgrading PyWI-CTA dependencies like Numpy, which may not always be desired.

Cosmostat iSAP Sparce2D installation

  1. Download (see

  2. Unzip this archive, go to the “sparse2d” directory and compile the sparse2d library. It should generate two executables named mr_transform and mr_filter:

    tar -xzvf ISAP_V3.1.tgz
    cd ISAP_V3.1/cxx
    tar -xzvf sparse2d_V1.1.tgz
    cd sparse2d
    compile the content of this directory

An automated compilation and installation script for Linux is available here (author: Tino Michael).


  1. Get a simtel file (e.g. from there)

  2. In your system terminal, from the directory that contains the sample image, type the following commands (where SIMTEL_FILE is the path to your simtel file):

    pywicta-mrtransform -f common_hard_filtering -t 13.,1.5 -L mask --camid LSTCam --max-images 1 --plot SIMTEL_FILE
    pywicta-mrfilter -K -k -C1 -m3 -n4 -s2,4.5,3.5,3 --kill-isolated-pixels --camid LSTCam --max-images 1 --plot SIMTEL_FILE
  3. Type pywicta-mrtransform -h or pywicta-mrfilter -h to display the list of available options and their documentation.

IPython/Jupyter Notebooks

PyWI provide some Jupyter notebooks that can be used as examples or tutorials.

Bug reports

To search for bugs or report them, please use the PyWI Bug Tracker at:

Indices and tables