Part of the Practical IDL Programming
Source code and sample data
The sample procedures and functions shown in the book are available here in source form. See Chapter 1 of the book for instructions on how to add these programs to your IDL path:
Sample programs: PIP_programs.zip (34 K), PIP_programs.tar.Z (35 K)
Sample netCDF and HDF data files are used in Chapter 4 of the book to demonstrate input and output with standard data formats:
netCDF files: PIP_netcdf.zip (411 K), PIP_netcdf.tar.Z (459 K)
HDF files: PIP_hdf.zip (296 K), PIP_hdf.tar.Z (393 K)
I maintain a list of known errors for the current printing. Please let me know if you find any other errors in the book.
About the Author
I am a researcher in the Space Science and Engineering Center at the University of Wisconsin-Madison, and I have used IDL since 1993. My primary responsibilities are the analysis and visualization of large earth science datasets acquired by NASA satellites and aircraft.Overview of the Book
I wrote this book because I felt there was a need for an in-depth yet accessible explanation of the fundamentals of procedural IDL programming, showing how to go from the basics of the language to real world applications. This meant starting at the beginning, explaining the data types supported by IDL and their dynamic nature; the means for creating, indexing, and manipulating arrays; expressions and arithmetic operators, Boolean and relational operators, and structures and pointers. The book then proceeds to explain the mechanics of constructing IDL programs, including detailed information about control statements, parameter and keyword passing and checking, global variables, and error handling. Next, the input and output of ASCII (text), binary, netCDF, and HDF data is explained in detail. The direct graphics system in IDL is described next, with particular attention paid to the differences between 8-bit and 24-bit display modes, followed by a troubleshooting guide for display problems.
Once the book has covered the foundations of IDL programming, it goes
on to explain how IDL programs are constructed to solve real world problems.
A detailed explanation of data plotting is given, including plot types,
positioning, and customization. Tried and tested methods for creating contour,
surface, and shaded surface plots are described, followed by a guide to
geographic mapping in IDL. This is followed by an explanation of techniques
for displaying images, with equal attention given to PseudoColor and TrueColor
images, regardless of the selected display device. The chapter on image
display concludes with a detailed explanation of the workings of an image
display application (IMDISP). Next, the methods available for creating
raster (bitmap) and vector graphical output in IDL are described, with
an emphasis on demystifying the PostScript and Printer devices, and providing
utility programs which make it simple to obtain WYSIWYG output. Finally,
the book describes in detail the construction of graphical user interface
(GUI) applications, and concludes with the construction and explanation
of a moderately complex GUI application for displaying images (IMGUI).