This page last changed on Dec 02, 2012 by rp7772.

Interactive Data Language (IDL) is a programming language that runs on the 'Starlink' Unix suite in the physics department. The language is frequently utilised by astronomers due to its powerful handling of images, large quantities of data and comprehensive base of community generated astronomy related subroutines (called programs or functions).

It is important that any user wishing to gain scientific results from the FITS files captured by the CCD should learn some of the fundamentals of IDL programming. There is a large number good tutorials available (some of which are listed on the links page and it is a fairly easy language to pick up).

The following are some important basics that you will need to be familiar with performing:

  • Reading & Writing FITS files into and out of the programming environment as large arrays.
  • Viewing an image in IDL as a array.
  • Saving images from IDL as jpegs or another commonly accessible image format.
  • Performing mathematical functions on a whole image array (such as combining multiple images) or specific portions of it. The latter is masking and is important for ignoring bad pixels.
  • Constructing a histogram of pixel values in an array or any portion of one using masks.
  • Separating a whole array into subarrays for easy manipulation
  • Understanding the format and behaviour of community created programs and functions (documentation of these are readily available on the web and links to these are listed here.

Further to these, the following are more specific and will become useful later and you may find yourself picking them up on the learning curve:

  • Using the 'find' & 'aper' functions to perform photometry.
  • Using the 'maskfix' routines written by the 2010-11 students in order to correct for bad pixels.
  • Manipulating, overlaying and exporting histogram plots for use in reports.
  • Batch running multiple lines of code to save time (by preparing a sequence in notepad and then executing all at once).
  • Compiling multiple lines of code that are commonly used into a program that can be called up at any time.
Document generated by Confluence on Jun 12, 2013 09:50