IDL 8.2 was released today, and while it might not have many headline grabbing features, there are some nice additions to IDL’s libraries as well as some fixes for old problems. The Workbench finally seems to work for me; a bug in the way curl library was linked was fixed, allowing me to use OPeNDAP on my Mac. Unlike releases like IDL 8.0 with its many new features and also many new bugs, IDL 8.2 feels much more stable to me.


There are many small changes to the function graphics and underlying object graphics systems in IDL 8.2.

Improved line joins in object graphics are a seemingly small feature, but I like the fact that it shows Exelis VIS is now paying attention to the details of creating higher quality graphics. For example, thick polylines from IDL 8.1 on the left and IDL 8.2 on the right:

Line joins in IDL 8.2 Line joins in IDL 8.1

Unfortunately, the lines are implemented as polygons and now are not anti-aliased. Exelis VIS has promised anti-aliasing for everything in the graphics window in a future release.

The function graphics objects now have an erase method which removes all the plots, axes, titles, etc. from a graphics window, but leaving the window to be reused. You can now control what you want to get rid of between the erase, close, and delete methods.

New symbols in IDL 8.2

There is a new TrueType symbol font, DejaVuSans, which includes many new symbols including the Sun and planetary symbols!

There are several other small additions which enhance the usability of function graphics: array inputs for ARROW and SYMBOL, custom ranges for AXIS, a CLIP property, a better COLORBAR, legends for vector plots, and more. I’m not sure if I will end up using function graphics for daily tasks yet, but it is getting closer.

Data formats

This one is a big one for me:

(CR 61782) The NetCDF library has been rebuilt with libcurl on Mac to fix an issue with OPeNDAP.

This allows one to specify an URL to a dataset served via DAP to be accessed via the NCDF_ routines:

IDL> url = ''
IDL> fileId = ncdf_open(url, /nowrite)

This already worked on Linux and still doesn’t on Windows.

See my netCDF routines for a nicer interface for accessing netCDF files (or DAP datasets from Linux and Mac clients).

There is also support to convert between IDL variables and JSON strings.


Help topics that had been exiled to PDFs (like the External Developer Guide) are now referenced in the main online help and available via a link, though that link did not bring up the PDF for me and “Search” does not search the contents of those PDFs either. This does save me from navigating to the IDL distribution directory to find the PDFs, but still does not really support this section of the documentation.


My experience with the Workbench was much improved over previous versions. While the older versions of the Workbench did not launch predictably for me, the 8.2 version has been quite stable. I find the Workbench is a nice tool for debugging and have been using the new Workbench for that, though I rely on the TTY command line IDL interface for most of my work.

The Workbench has a new way to install plugins:

The Eclipse provisioning system (p2) supports the notion of watched directories. A watched directory is a place where a user can drop Eclipse plugins and features and have them discovered by p2 and loaded into the workbench.

In order to add plugins, shutdown the workbench, copy the plugins into this folder, then restart.

If all the dependencies are met then the new features will be available in the workbench.

Also, the Workbench now checks the !path for duplicate routines and warnings are displayed in the “Problems” view. This might be a useful feature for some people, but I quickly turned this off as I got over 1600 warnings from routines that are linked into multiple Subversion repositories (as svn:externals). IDL itself has a fair number of duplicate routines in its own library!

If you write ENVI extensions, there is an ENVI extension wizard which helps build “tools that appear in the ENVI Toolbox”. I didn’t get a chance to try that and I’m not sure exactly what it means, but some support there could be very helpful.


The default installation location changed again, removing the extra “idl” directory added in IDL 8.0 and moving from “itt” to “exelis”. For example, on my Mac IDL 8.2 installs into


instead of the more complicated path in IDL 8.1


I suppose this is mostly unavoidable and for the better, but my CMake scripts to find IDL installations just added another level of complexity.


The widget system was updated a bit—you can use 32-bit RGBA images for bitmap buttons and there is an updated appearance of widgets on Microsoft Windows among other small changes.