Rainer's Binary/Speckle Package (Software for Adaptive Optics)

Synopsis: Software to reduce Speckle or AO data from the raw data to deconvolved images (in Fourier space), to determine the parameters of a binary or triple, and to find limits for undetected companion stars.

Operating System: Unix, tested on Linux (Redhat and SuSE) and Solaris

Language: C and Tcl/Tk

History: Developed by R. Köhler, see for example Köhler et al., Astronomy and Astrophysics, v.356, p.541-558 (2000)

14. August 2002: Added some new features to binplot for the Computer Lab at the CfAO Summer School (a window showing the model in image space and a window showing the visibility of the model).

20. February 2002: I encountered more problems caused by the copyright restrictions of the Numerical Recipes, so I decided to write my own implementation of the amoeba-algorithm. This should make installation much easier.

22. January 2002: Another new version on this website. Again, the changes are mostly bugfixes, this time related to warnings when compiling on non-Intel/non-Alpha machines and the interpretation of new SHARP I-files. There are a few functions which are undocumented, untested or simply do not work in the distributed version. Everything described in the documentation should work, however.

19. June 2001: A new version is avaiable on this webpage. The changes are mostly bugfixes related to the byte-order on Intel- and Alpha-machines. To download it, go to the Installation section.


I started working on this package during my PhD thesis, which consisted of a speckle multiplicity survey among T Tauri Stars in Taurus-Auriga and Scorpius-Centaurus. We also had the opportunity to do AO observations of some of the stars, and since we didn't have a better program, we used the speckle program to reduce this data. Since then, the program has been used for speckle surveys of young stars in Chamaeleon and Ophiuchus and old stars in the galactic halo, and for a survey using Adaptive Optics of young stars in Lupus.

Publications describing the method are of course my PhD thesis (which is unfortunately in German), Köhler & Leinert, Astronomy and Astrophysics 331, 997 (1998), and Köhler et al., Astronomy and Astrophysics 356, 541 (2000). The latter paper contains an especially comprehensive explanation and some examples, so I include it in the tar-file of the package (here is the PDF-file).


Unfortunately, this program relies on a couple of other packages. Fortunately, these packages are freely available, some of them are usually already installed on a linux system.


  1. Download the tar-file:

    Here is a gzipped tar-file of the sources

    Here is an example data set (raw and reduced data)   28 MBytes!

  2. Unpack it:     gunzip -c Binary-Speckle.tar.gz | tar -xvf -

  3. Go to the Binary-Speckle directory:     cd Binary-Speckle

  4. Edit the Makefile in the Binary-Speckle directory. The most important change is to enter the locations of Binary-Speckle itself, Tcl/Tk, FFTW, and PGPLOT. There is a section with machine-specific settings for Linux, Solaris, and HP-UX, uncomment the entries appropriate for your machine. The current version has only been tested on Linux and Solaris 8, but older versions ran on other Solaris versions and HP-UX. Please tell us if you have to change something.

  5. Type:
    	make install
    This should compile everything and put the executable programs into the toplevel directory.
  6. You have to add the top-level directory to your path-variable, so the shell is able to find the programs. This is done best by editing .cshrc (for tcsh-users) or .profile (for bash-users) in your home-directory.


The function of the package can be divided into three tasks:
  1. Reduce the raw data to deconvolved fourier-transformed images
  2. Determine the parameters of a binary or triple
  3. Find limits for the brightness of an undetected companion
There are several different programs required to do this, and the connections between them are probably not easy to understand at first sight.

The principle is (hopefully) pretty simple: There is a master program called "mcspeckle" ("mouse controlled speckle", since its predecessor didn't have a graphical user interface). The user tells mcspeckle which data files to use, what is in the files (objects, sky etc.), and what should be done. Mcspeckle than (usually) creates a Makefile, i.e. an input file for the make program that contains all the dependancies between the different data files and the commands needed to do the data reduction. Make then decides what has to be done to create the final results. In the good (?) old days, when one data reduction ran the whole night and quite often ended with a "disk full error", this was very useful. One could simply fix the problem and run make again. Make then checked which files were up to date und ran only the commands for the files that had not yet been reduced. The user shouldn't have to fiddle with the contents of the makefiles.

Of course, someone has to do the work of reading the data, doing something with it, and writing the results to another file. This is the task of most of the other programs in the package (despeckle, findcenter, fits2pnm, fitsmean, maskedit, prespeckle, quickvis, saa, and tkfmovie). Some of them have their own graphical interface to let the user adjust something, but most of them are simply called by make or from the shell, and accept only command line options. The most important option is "-h", which will show all the other options.

Furthermore, there are binplot, amf, and bff, which fit a binary or triple model to the data. Finally, maxbright calculates limits for undetected companions.

Here are tutorials for the three basic tasks:

Reducing the raw data and deconvolution

Finding out if a star is not a binary

Finding the parameters of a binary


Copyright (C) 1995 - 2002 Rainer Köhler

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

If you find the program useful, please acknowledge it in any publications that result from its use.


Thanks go to Norbert Weitzel who wrote the predecessor of my speckle package. I also thank Christoph Leinert, my PhD supervisor, who teached me nearly everything I know about speckle interferometry. We acknowledge the work of Matteo Frigo and Steven G.\ Johnson, who wrote the FFTW library and made it public.

Software for Adaptive Optics -- Center for Adaptive Optics, University of California, Santa Cruz
Contact Person for the Software for AO (UCSD) site: Vesa Junkkarinen, vesa@ucsd.edu, Phone: 858-534-0735, Fax: 858-534-0177
Center for Astrophysics and Space Sciences, University of California, San Diego, La Jolla, CA 92093-0424