SQUEEZE is an image reconstruction for optical interferometry. It is designed to image complex astrophysical sources, while (optionally) modeling them simultaneously with analytic models.
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.
- 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
- 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)
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.
which will download the squeeze source into a ./squeeze directory.
To build squeeze, just type:
cd squeeze make
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.
- 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