Fanning Software Consulting

Change the Way You Write Graphics Programs Forever!

Facebook Twitter RSS

Coyote's Guide to Traditional IDL Programming

You can find a French translation of this page here if you like.

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:

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 now out of print and available in a non-printable PDF version only.

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

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

Learn the Basics of IDL Programming

IDL Programming Techniques 2nd Edition

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 out of print and now available in a printable PDF version.

What People Are Saying About IDL Programming Techniques

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

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

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.

Last Updated: 24 March 2011