Authors: J. Bobin
Language: IDL
Download: IDL
Description: The scripts required to compute the CMB map from WMAP and Planck data


Local-generalised morphological component analysis is an extension to GMCA. Similarly to GMCA it is a Blind Source Separation method which enforces sparsity. The novel aspect of LGMCA, however is that the mixing matrix changes across pixels allowing LMCA to deal with emissions sources which vary spatially.

Running LGMCA on the WMAP9 temperature products requires the main script and a selection of mandatory files, algorithm parameters and map parameters.




Authors: J. Bobin
Language: Matlab and Python
Download: Matlab | Python
Description: A toolbox for solving Blind Source Separation problems.


GMCALab is a set of Matlab toolboxes that focus on solving Blind Source Separation problems from multichannel/multispectral/hyperspectral data. In essence, multichannel data provide different observations of the same physical phenomena (e.g. multiple wavelengths, ), which are modeled as a linear combination of unknown elementary components or sources:

\mathbf{Y} = \mathbf{A}\mathbf{S},

where \mathbf{Y} is the data matrix, \mathbf{S} is the source matrix, and \mathbf{A} is the mixing matrix. The goal of blind source separation is to retrieve \mathbf{A} and \mathbf{S} from the knwoledge of the data only.

Generalized Morphological Component Analysis, a.k.a. GMCA, is a BSS method that enforces the sparsity of the sought-after sources:


A lightweight Matlab/Octave version of the GMCALab toolbox is available at this location. Illustrations are provide here.

It is worth noting that GMCA provides a very generic framework that has been extended to tackle different matrix factorization problems:

  • Non-negative matrix factorization with nGMCA
  • Separation of partially correlated sources with AMCA
  • The decomposition of hyperspectral data with HypGMCA (available soon)
  • The analysis of multichannel data in the presence of outliers with rAMCA at this location (updated the 14/06/16).

 We are now developping a python-based toolbox coined pyGMCALab, which is available at this location.




Authors: A. Woiselle, J.L. Starck and M.J. Fadili
Language: Matlab
Download: Mac OSX | Windows
Description: A code for fast 3D curvelet transform and reconstruction.
Notes: Documentation: jmiv2010.pdf

Fast Curvelet Transform Version 1.0

Description F-CUR3D is a software, based on the MATLAB package, which contains routines for the Fast 3D Curvelet transform and reconstruction. The F-CUR3D documentation is available in PDF format.

See also the "3D curvelet algorithm description", and examples .

F-CUR3D is available for Windows and MAC.   Publications Papers related to the software:




Authors: F. Lanusse, A. Rassat,and J.-L. Starck
Language: C++ (with IDL wrapper)
Download: MRS3D_v1.0b.tar.gz
Description: A code for performing 3D spherical wavelet transforms on the sphere.
Notes: Requires Healpix installation.

Description MRS3D is based on two packages, IDL and Healpix. MRS3D can be used only if these two packages have been installed. MRS3D contains IDL and C++ routines for 3D spherical wavelet transform on the sphere .

Source code and more information are available here. For more information, please contact Francois Lanusse (

Publications Paper related to the software:




Authors: F. SureauF. Lanusse and J.-L. Starck
Language: C++
Download: ISAP_V3.1
Description: Interactive Sparse Astronomical Data Analysis Packages.
Notes: Documentation: doc_iSAP_V3.0

Interactive Sparse Astronomical Data Analysis Packages

iSAP is a collection of packages, in IDL and C++, related to sparsity and its application in astronomical data analysis (the IDL software ( is analogous to Matlab and is very widely used in astrophysics and in medical imaging). The C++ routines can be used independently of IDL.

The iSAP V3.1 software, including all these packages, can be downloaded here: ISAP_V3.1.
The documentation of iSAP is available in PDF format: doc_iSAP_V3.0

It contains the following packages:

  • Sparse2D V1.0Sparsity for 1D and 2D data sets
    IDL and C++ code, allowing sparse decomposition, denoising and deconvolution.
  • MSVST V1.0: Multi-Scale Variance Stabilizing Transform for 1D and 2D data sets
    IDL and C++ code for Poisson noise removal. Matlab code can also be found here.
  • MRS V3.2: MultiResolution on the Sphere
    IDL and C++ code for sparse representation on the sphere. More details can be found here.
  • SparsePOL V1.1: Polarized Spherical Wavelets and Curvelets
    IDL code for sparse representation of polarized data on the sphere. More details can be found here.
  • MRS-MSVSTS V1.1: Multi-Scale Variance Stabilizing Transform on the Sphere
    IDL code for Poisson noise removal and deconvolution on mono-channel and multichannel spherical data. More details can be found here.
  • SparseGal V1.0: Sparsity for galaxies survey analysis
    IDL code, with two subpackages:
    • ISW V1.0: Integrated Sachs-Wolfe effect detection.
    • DarthFader V1.0: Spectroscopic Redshift Estimation using sparsity.
  • SparseCMB V1.0: Sparsity for CMB data analysis
    IDL code, with three subpackages:
    • TOUSI V1.0: True Cosmic Microwave Background Power Spectrum Estimator.
    • Anomalies V1.0: CMB large scale anomalies detection.
    • PRISM V1.0: Sparse Recovery of the Primordial Power Spectrum.