SQUEEZE is based on Markov Chain Monte-Carlo (MCMC) exploration of the imaging probability space, and reconstructs images and associated error bars from standard OIFITS data. SQUEEZE leverages the Open Multi-Processing (OpenMP) application programming interface to implement simulated annealing and parallel tempering, in the hope of avoiding the local minima better than classic gradient-based image reconstruction software.

SQUEEZE is developed by Pr Fabien Baron of Georgia State University and distributed under an open source (GPL v3) license. If you encounter bugs or if you have specific requests for additional features, models, or other enhancements, please send an email to Fabien Baron (This email address is being protected from spambots. You need JavaScript enabled to view it.).



  • Fully polychromatic imaging with FITS output
  • Support for numerous regularizers: L0, Total Variation, Laplacian, Maximum Entropy, Dark Energy
  • Marginal likelihood computation for model selection
  • Full output of the MCMC chain including all probabilities


  • Uniform and limb-darkening discs, unresolved delta function, rings
  • Polychromatic support (a.k.a. SPARCO)
  • Bandwith smearing support

Minimization Engines:

  • Parallel simulated annealing with Metropolis-Hastings moves
  • Parallel tempering with Metropolis-Hastings moves

Supported data types:

  • Optical interferometric complex visibilities, differential visibilities, V2, T3 (amplitude and phase)

System requirements

SQUEEZE is designed to be cross-platform compatible. It has been tested on several variants of GNU/Linux and on Mac OSX. Test on additional platforms are most welcomed.

SQUEEZE makes use of OpenMP, which requires a compatible compiler (gcc, Intel compiler, etc.). Support for OpenMP is now available for the clang/LLVM compiler, but may not be currently available on your platform (e.g. Mac OSX).


To download SQUEEZE, you first need to have git installed on your machine.

Then run:

git clone https://gitorious.org/squeeze/squeeze.git

which will download the squeeze source into a ./squeeze directory.

To build squeeze, just type:

cd squeeze

This will configure and build both SQUEEZE's sublibraries, CFITSIO and RngStreams, then SQUEEZE itself.


SQUEEZE includes several visualization tools for GDL and Python (requires Astropy). With these you can: * Follow monothread reconstructions as they go, seeing chi2 and regularizations evolve in real time. * Follow multithreaded reconstruction as they go, checking for thread mixing for parallel tempering or for converge for simulated annealing. * Analyze the full MCMC probability chain of a reconstruction. * Plot the residuals of the reconstructions.

Use cases

  • Classic imaging (spectrally grey) on a 64x64 image grid, with pixel size 0.2 milli-arcseconds
./bin/squeeze ./sample_data/2004-data1.oifits -w 64 -s 0.2
  • Parallel simulated annealing with 50 threads, starting from a random image for each thread
./bin/squeeze ./sample_data/2004-data1.oifits -w 64 -s 0.2 -threads 50 -i randomthr
  • Parallel tempering with 100 threads and full MCMC chain output
./bin/squeeze ./sample_data/2004-data1.oifits -w 64 -s 0.2 -threads 100 -tempering -fullchain
  • Polychromatic imaging, e.g. 3 channels (1.2 to 1.35 microns, 1.35-1.43 microns, and 1.6-1.8 microns).
./bin/squeeze mydata.oifits -w 64 -s 0.2 -chan 0 1.2e-6 1.35e-6 1 1.35e-6 1.43e-6 2 1.6e-6 1.8e-6
  • SPARCO imaging (= spectrally grey image and polychromatic modeling)
./bin/squeeze mydata.oifits -w 64 -s 0.2 -P 1.6-e6 0.5 0.5 -2 -S 0 0.01 0.01 0.01