Welcome to the home page for the informal IDL seminar at Steward Observatory. This class will introduce the basic functionality of IDL to handle problems that are encountered almost daily in scientific research. We will learn to use IDL's powerful built-in tools and publically available IDL libraries to solve problems quickly and accurately. The class is designed for graduate students or advanced undergraduates who possess basic familiarity with the Linux/UNIX operating system and computer programming.
If you are totally unfamiliar with IDL and want to know why you should learn it I highly recommend the Guide to IDL for Astronomers written by Robert O'Connell. Take a look especially at all of Section I and parts 1 and 14 of Section II.
Throughout this tutorial we will be using IDL in a simple xterm (rather than the graphical mode, idlde). Note that a set of IDL 6.0 reference manuals are available in the Steward Observatory Library on reserve.
This section briefly describes how to set up your machine for IDL. At Steward Observatory you can grab the latest version of IDL and the department license file from this website. The Readme file contains directions for installing IDL from the IDL tarball in that directory, and the makelinks.sh script (also discussed in the Readme) will put links into /usr/local/bin regardless of the actual location that is chosen for the install. Installing from the tarball automatically sets up the license, so no additional install is needed.
You will also need an .idlenv file which you should place in your home directory. This file must be modified to reflect your own directory structure. You should add the line source ${HOME}/.idlenv in your .cshrc file. For additional functionality, here is an example .idlstartup file. This start-up file does three things: (1) force IDL to deal with backing store and use decomposed colors; (2) preserve 1000 lines in the command history buffer; (3) re-define the Ctrl-D key to delete the current character. Your .idlstartup file can have an arbitrary number of commands that are carried out at the beginning of every IDL session.
If you use EMACS to write and edit your IDL programs then I strongly recommend obtaining and installing idlwave, which is maintained by J.D. Smith. Here is an example .emacs file to show you the kind of control idlwave provides, although its capability goes far beyond simple syntactical highlighting.
For your convenience in this section I have listed several websites that are very useful and that I will refer to frequently. For a more exhaustive listing of the IDL resources available online, in particular for astronomical applications, I recommend the Goddard Resources website.
The IDL Astronomy User's Library, or the Goddard library, is the first place you should look for new IDL routines in particular for astronomical applications. All of the FITS I/O IDL routines are also maintained here by Wayne Landsman. The idlutils library was developed by David Schlegel and others for the Sloan Digital Sky Survey. We will complement this library with the least-squares fitting routines written by Craig Markward. The website maintained by David Fanning (Coyote's Guide to IDL Programming) covers a broad range of IDL topics ranging from getting colors to work right to object-oriented programming. Leonidas Moustakas and I have developed RED, a generalized IDL software package for doing cosmological calculations. Finally, you may find some of the tutorials developed by Carl Heiles at UC Berkeley helpful.
The table below provides links to the tutorials that we will be using in this seminar. The tutorials are listed roughly in order of complexity, although after you have picked up the essentials of the structure and syntax of IDL the rest is just a matter of becoming familiar with as many extant procedures and functions as possible.
Column one in the table lists the currently available tutorials. The tutorials are not exhaustive but instead introduce you to the fundamentals. Column two is a synopsis of the procedures, functions, and keywords covered by the associated tutorial. Finally, column three provides exercises that will help you review the subject matter covered by the tutorial. Many of these exercises require you to write full IDL programs.
| Topic | Summary | Exercises |
|---|---|---|
| The Very Basics of IDL | click | IDL Exercises I: Scalars, Vectors, Plotting |
| Programs, Functions, & Documentation | click |   |
| IDL Datatypes (C. Heiles) | click |   |
| Working With Structures | click |   |
| Working With Strings | click |   |
| Making Plots & Postscript | click |   |
| Input & Output | click |   |
| Working With FITS | click |   |
| Statistics | click |   |
| Fitting | click |   |
| Generalized Least- and Chi-Squares Fitting (C. Heiles) | click |   |
| Fast Fourier Transforms (C. Heiles) | click |   |
Last update 2003 Nov 12. Email J. Moustakas with questions or comments.