Skip to main content

PyWI CTA wrapper - a signal processing library for Imaging Atmospheric Cherenkov Telescopes

Project description

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 (optional)

  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).

Getting started: tutorial Notebooks

PyWI-CTA provides some Jupyter notebooks that can be used as examples or tutorials: New users should check them in the following order:

Recommended JupyterLab extensions for these tutorials (type the following commands in a terminal within the right conda environment):

jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install @jupyterlab/toc
jupyter labextension install @ijmbarr/jupyterlab_spellchecker

Console usage example

PyWI-CTA can also be used through console commands. The following is an usage example:

  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-starlet -f common_hard_filtering -t 13.,1.5 -L mask --camid LSTCam --max-images 1 --plot 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-starlet -h, pywicta-mrtransform -h or pywicta-mrfilter -h to display the list of available options and their documentation.

Analysis results

Notebooks containing the analysis results can be found there:

Bug reports

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

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pywicta, version 0.4.dev3
Filename, size File type Python version Upload date Hashes
Filename, size pywicta-0.4.dev3.tar.gz (1.9 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page