Change the Way You Write Graphics Programs Forever!
A year or so ago, I got it into my head to return to my roots. I thought it would be a good idea to take a month off and walk the length of Oregon on the Pacific Crest Trail, a 400 mile hike I first did in the summer of 1970. The way I imagined it, the hike would give me time to reflect on my life and give me a sense of direction for where I might go next. I told friends I was hoping for a life-changing epiphany of the sort I had experienced the first time I did the hike.
I spent a lot of time preparing for the hike, but too much of it was spent listening to music from the 60s and 70s and too little of it was spent getting into shape. So, in the end, the hike was much harder than I expected it to be. About the only thing on my mind most days were murderous thoughts about the weight of my pack. It was all I could do to put one foot in front of the other to get my 20 miles a day covered. In the end, an illness brought the hike to a premature end and I never did get to have my epiphany. I thought the hike was a bust.
But while I was recovering from my illness, I got it into my head that what I really wanted to do (how odd!) was write a book about these old traditional IDL graphics routines. A sort of field guide of the kind I was using on the hike to find my way. It seemed then, and does now, a strange idea. Who would be interested? Who would pay to read such a book? Weren’t the new function graphics routines in IDL 8 the cat’s meow? Who would want to use anything else?
What I didn’t plan on was how much I would learn returning to these graphics roots by writing this book, and how excited I would be by the discoveries I made. I guess a 25-year relationship with IDL is like any long marriage. It has its ups and downs, its routines, its bright moments, its days of anguish and despair. But, I am as much in love with IDL right now, as excited about it, as I have been in the past 25 years. And that’s saying something.
I believe the Coyote Graphics System that is outlined on these pages has the potential to change the way a lot of us write IDL programs. I won’t say it is better than the IDL function graphics system (although I could, and with a great deal of conviction!). But, I will say it is orders of magnitude simpler and faster than that system, and these facts alone will be the key to its success. Programmers, even novice programmers, will be able to build new graphics displays with this system that are impossible to build with the new IDL 8 function graphics system.
Maybe this book will accomplish nothing more than provide a bit of competition among graphics systems. That also would be a good thing for IDL users, I think. “The enemy, like the friend, makes you strong,” as Barry Lopez says in his wonderful story, “Drought.” In any case, the graphics system outlined here is available to any IDL user, using any version of IDL. You don’t need the very latest gewgaw to do neat things in IDL. That alone, I think, makes this system interesting and worthwhile.
But, mostly, I think there is something wonderful about the feel of an old tool in a skillful hand. It makes you feel like you are building something worthwhile. Something lasting. Something that may, in fact, outlive even the next new graphics system. I hope you enjoy this journey this book presents, both backward and forward in time, as much as I have.
![]()
What's In the Book?
Marketing campaigns have as their sole objective to convince you that life would be complete if only you had that shiny new gadget. But, what if it wasn't true? What if you had everything you need right here, right now?
We have seen five new graphics systems come and go in the past 10 years. Each was going to revolutionize the way you did graphics programming in IDL. But which graphics system is used by 90% of IDL users? You guessed it: the "old" graphics system, with its Plot, Contour, and Surface commands. Why? Because these traditional commands are fast, flexible, and firmly established in the minds and code of IDL programmers the world over.
All these traditional graphics commands need is to be refurbished to work correctly in a modern computer environment. This book describes exactly how to do that, using programs from the powerful Coyote Library. The techniques described in this book work in any version of IDL, including the one you are using today.
Whether you are a beginning IDL programmer, or a veteran of many years experience, you will find something new, interesting, and thought-provoking in the pages of this book. You will learn:
- Everything I've learned about IDL graphics in a 25-year career.
- How to duplicate the functionality of the IDL 8 function graphics system with traditional IDL commands.
- How to write IDL programs that work identically on every graphics device.
- How to get your money's worth from your 24-bit graphics card and write color independent programs.
- How to produce high quality PostScript and raster files automatically from the same programs that display graphics on your computer.
- How to display graphics in resizeable graphics windows.
- How to save and restore graphic visualizations and/or pass them on to your colleagues.
- How the Coyote Graphics System works and how your programs can take advantage its power.
After reading this book, you will not only write graphics programs that duplicate the functionality of the latest of the “new” graphics systems, but you will write programs that are faster (orders of magnitude faster, in some cases!) and simpler. Plus, you will be able to create new displays of graphical information that are simply not possible in the new graphics systems. This is the book that I wish was written for me when I was starting to write IDL programs. This is the book that will change the way you write IDL programs forever!
Ben Tupper had this to say about the book.
I have just perused Chapter 12, "Using the Coyote Graphics System", and I am thunderstruck (again!) by what a brilliant thing you have done for simple-to-use-right-out-of-the-box-but-wicked-powerful graphics. This is exactly what all of us need whether we are just cutting our teeth or we are getting long in the tooth. It's freakin' marvelous!
Unconditional Guarantee
This book is, to quote an advertisement from one of Coyote's favorite beers, "reassuringly expensive." You might wonder why. In a word: color. This is a book about computer graphics and it was important to me that every figure in the book be printed in full color. While less expensive than it used to be to print an entire book in full color, it is still more expensive than printing in traditional black and white. But this was a non-negotiable requirement for me to produce the book I wanted to write.
That said, I don't want price to be the factor that keeps you from buying this book. If you feel the book is too expensive for you (perhaps you are a student), then contact me and suggest a price you would be willing to pay for the book. I am so certain that this book will save you untold hours of IDL programming grief that I am willing to back it up with an unconditional, money-back guarantee. If this book doesn't completely exceed your expectations of the time and money you will save writing IDL graphics programs, then return it for a full refund. If you feel in the end it was worth its original price, you always have the option of purchasing IDL consulting contracts to assuage your guilt (should you feel any). Coyote and I make our living providing value to our customers. If we do our jobs correctly, we are certain you will be satisfied with the result. In any case, Coyote has always been more interested in fame than fortune. We want you to have this book!
The book is also available in a non-printable PDF version.
Student Discounts
Please ask Coyote about our student discounts and specials. He doesn't need to make a living as badly as I do, and is more of a push-over. Put a quiver in your voice, if you can.
![]()
What People Are Saying About Coyote's Guide to Traditional IDL Graphics
- First of all, I want to honor you for the best book about IDL I ever held in my hands. I got the book Traditional IDL Graphics as a birthday present and it is great!
- You did an incredible job with Coyote Graphics. Here is the final plot. It took three hours to plot using the IDL 8 function graphics and under a minute in Coyote Graphics.
- After almost giving up on IDL 8 and their new graphics your book is a breath of fresh air. All my routines can be easily updated and the quality of the output is astonishing.
- I have to congratulate David! After 20 years of using IDL, I've discovered in David's new book information about old subjects that is both *new* and useful. Only one question though: Where was Coyote Graphics back in 1991?
- Thanks for writing this book. I tried, when beta-testing IDL 8.0, to use the “new ”graphics where I could, and in every instance, I found them lacking. Either some capability was missing or they were way too slow for the kind of processing/visualization I was doing. So it’ll be nice to be able do more sophisticated things (without having to spend the time to develop them myself!) using the tried and true direct graphics.
- I'm really anticipating the contents of this book. Although I love the new graphics functionality in IDL 8.0, those features seem not so suitable for application development in IDL. I'm expecting your new book will be a new breakthrough for me to develop efficient and light-weighted applications in IDL.
- I'm always impressed how self-explanatory you write books and code. Thank you for your contribution to the IDL community. It allows beginners to get a good idea of how IDL really works.
- David, thank you! Your book has already improved my results. I’m working with contour plots and I had an awful time figuring out all the right color settings to make the plot look right. I’m not an experienced user, so I really needed step-by-step explanations of what was going on. I went through all the stages that you mention in your book (and more!) with my own data: red shaded contour plots, extra white and black lines in the color bar, grey contour plots, etc. I was about to quit and jump to Matlab until I read your sample chapter. Then I decided to get the book. Now, I’m finally understanding a bit about how IDL works with colors!
- I've read the book, and I have been using the Coyote Graphics routines for a couple of months now, and I can tell you that these tools are great. I will never use the “Plot, x, y” command again.
- My book just arrived, and from what I've read so far, it's well laid out, intuitively written, and beautifully presented. I've had my nose stuck in Chapter 8 (Image Processing) all morning, and I don't think I have learned as much in a single day since I left the real world for graduate school!
- Mine just arrived, too, and it is beautiful. When I perused the pre-press PDFs I guess I didn't “get” the breadth of the book. Now, with it my hands, the genius of the Coyote Graphics system is plain to see. “This is it!” keeps popping into my head.
- David, thanks for writing a book where the author's spirit comes through on page after page. It's a delight.
- Your books rule! The Coyote Graphics system takes care of all the dirty work involved in making IDL programs cross-platform. Thank you!
- I would like to thank you for writing this wonderful book on IDL. It really helped me a lot in my research attachment! And my supervisors are often surprised by the quality of my IDL plots! Buying this book is one of the best investments I have made!
Additional comments can be found on Amazon's Book Reviews web page.
You may also be interested in reading an article I wrote describing the Coyote Graphics system for the readers of the AstroBetter blog.
![]()
Download Table of Contents, Sample Chapter, and Files
The Table of Contents, a sample chapter, and the files used and described in the book, are available from the links below. The text files are in PDF format. The files are in zip format.
Coyote's Guide to Traditional IDL Graphics
- Table of Contents
- Sample Chapter: Creating Contour Plots
- Required files (Please note that a book freezes time, but that program development continues. These are the files that were in effect when the book was written. But, things change! I would recommend downloading the most current Coyote Library and returning to these files if something confuses you.)
![]()
Learn the Basics of IDL Programming
When I wanted to draw my first line plot in IDL (Interactive Data Language from Research Systems, Inc.) over 10 years ago, I had to read through the entire manual--twice--to understand how it was done. Although the documentation has changed dramatically in the intervening years, it is still difficult for someone new to IDL to sift through the documentation, separating the twenty percent of the information they need daily from the eighty percent they need infrequently.
What I set out to do in this book is to describe by example those IDL programming techniques I find essential in my own daily programming tasks. The book has been refined over so many years I feel confident predicting you will find described within its pages over eighty percent of what you ever want to do in IDL.
Another goal for this book was to demonstrate for fellow scientists who may have taught themselves computer programming how to write an "elegant" IDL program. I've been teaching people how to use IDL for almost as long as I have been using it myself. I've seen a lot of programs that "work", but are otherwise poorly written. (Alas, many of these programs have been my own.) These programs are difficult to extend, modify, and maintain.
In this book I wanted to lay out a handful of simple IDL programming principles that would allow users to write elegant programs with resizeable graphics windows, easy and automatic access to PostScript, GIF, and JPEG file output, intelligent use of color, and with intuitive graphical user interfaces. Moreover, I wanted to describe an object-oriented programming style that makes programs easy to maintain, modify, and extend over time. These principles (and especially the information on writing widget programs, or programs with graphical user interfaces) can be found nowhere else.
More than anything, I wanted this book to be the one I wish someone had given me when I was learning to use IDL all those years ago.
The book is also available in a non-printable PDF version.
![]()
What People Are Saying About IDL Programming Techniques
- Reading Chapter 10 in the IDL Programming Techniques book has already given me insights to widget programming which more than paid for the book. And I've only managed to get through about half of that chapter!
- Just bought your book through Amazon.com, and in one day I have designed and implemented a (albeit simple) dialog for one of my IDL programs. This may not seem like much, but without your detailed description of the event process and event handlers, and your invaluable examples, the task would likely have been insurmountable. Thank you for providing a much needed enhancement to the IDL documentation from RSI.
- Your book was great. I learned to program IDL in about three days!
- I have a feeling I might have been one of the 57 people you mentioned who ordered your "IDL Programming Techniques" book the other day. I have received it, and have really been enjoying it, as well as the associated examples. Thank you for such a nice piece of craftsmanship, both aesthetically and technically.
Here are more comments from people who have been using the First and Second Editions of IDL Progamming Techniques. And, here are reader reviews on Amazon.com.
![]()
Download Table of Contents, Sample Chapter, and Files
The Table of Contents, a sample chapter, and the files used and described in the book, are available from the links below. The text files are in PDF format. The files are in zip format.
IDL Programming Techniques, 2nd Edition
- Table of Contents
- Sample Chapter: Writing an IDL Graphics Display Program
- Required files. (Please note that a book freezes time, but that program development continues. These are the files that were in effect when the book was written (over 12 years ago!). Most things have changed. I would recommend downloading the most current Coyote Library and returning to these files if something confuses you. You will find most of the files you need for this book in the retired" Coyote Library files. For best results, install both the current and retired versions of the libraries and add both your your IDL path.)
![]()
Other IDL Book Recommendations
Check out the IDL Book Recommendations page for other books that I've found helpful in my IDL programming.
![]()
Version of IDL used to prepare this article: IDL 7.0.1.
![]()
![]()



