Category "IDL"


IDL 9.2 was released recently. The Release notes and What’s New [1] provide the details of the changes.

There are some interesting new additions:

  • IDL 9.2 comes with an embedded Python in the distribution. I think this is interesting and might mitigate the issues of trying to make sure your Python installation is setup correctly.
  • There is a new Windows command line with tab-completion. I don’t use Windows at all anymore, but I would have welcomed any help I could get back when I had to use Windows.
  • There are more feature in the IDL Package Manager (IPM), including support for the new IDL/ENVI Repository Portals, a new API, and a Publish static method. I am interested in the IPM. I like that you can have your own internal repository server, but it feels like there needs to be a common community site for shared packages. I set something up a long time ago at packages.idldev.com, but really it needs an accompanying website with discovery features and I don’t have time to do that. It could be the equivalent of Python Package Index (PyPI) for IDL.
  • SORT has a new STABLE keyword.
  • IDL 9.2 now allows trailing commas in array and structure creation.
  • You can programmatically screenshot IDL widgets via the SCREENSHOT keyword of WIDGET_INFO from a top-level base or widgets down the widget hierarchy. I could imagine this could be handy for certain uses cases.

I still haven’t been able to install IDL 9.1, which also had some interesting stuff that I would use regularly.


  1. Good luck with this URL. It almost certainly won’t work when the next version of IDL comes out, but I couldn’t find a better one. ??

IDL 9.1 was released recently. The Release notes are online, but I think that link won’t work after the next version is released. My best guess is this link will work in the “long term”[1].

There is some interesting stuff in there:

  • a command line progress bar (I have my own version, but an official one would be good), which also can automatically be used for HttpRequest methods
  • IDL comes with 2000 SVG icons, along with a routine RENDER_SVG to render an SVG file into a bitmap image at your desired size and colors
  • more updates to the IDL Extension for VSCode
  • several widget updates, including dark mode on Windows, label and text colors, WIDGET_BROWSER on Mac, and more
  • many other new features and updates

Unfortunately, I am just getting my hands on IDL 9.0 now, so I haven’t had a chance to use 9.1 yet.


  1. Maybe another year or two? ??

The more I see of the official IDL extension for VSCode, the more impressed I am. I watched a recent webinar about the extension that continued to impress. Also, don’t miss the webinar about IDL notebooks (not to be confused with running IDL within a Jupyter notebook). The GitHub repo has some resources, including being about to create issues and participate in discussions. I have not switched to VSCode yet, but this is becoming more likely as time goes by. I think VSCode does have all the features I would need to switch from Nova.

Here’s the link to the recording of the Redefining Image Analysis with ENVI 6.0, IDL 9.0, and the ENVI Ecosystem webinar I attended awhile ago. The slides are also available for download.

The Advent of Code for 2024 has started! Each day there are two coding problems — solve the first one to unlock the second one. I took the opportunity to try out the new IDL notebooks in VS Code that I just learned about yesterday. It was a nice environment to work through a problem.

IDL 9.0 was released recently[1]. Some notable new features:

  • Apple Silicon Mac support — most of my IDL use is from a terminal window on my Mac to a Linux, but occasionally I do some IDL development directly on my Mac. The improved speed is probably not a factor for me, but it is good to know NV5 is still going to support MacOS.
  • HttpRequest class — I have some routines that I use to make requests, but this should be a nice addition to the standard library.
  • IDL Extension for VS Code — I wrote about this already, but I missed the IDL native notebooks (not Jupyter notebooks). This looks very interesting, enough to install VSCode for a while to test them out.

There are a few more features, as well as updates and library updates. Details in What’s New in IDL 9.0.


  1. I learned about it today the “Redefining Image Analysis with ENVI 6.0, IDL 9.0, and the ENVI Ecosystem” webinar, but maybe it’s been out for awhile? ??

APOD had an atypical image last January (I haven’t been writing a lot recently!) of a periodic table for the elements that showed where each element is normally created. The description lists some examples:

The hydrogen in your body, present in every molecule of water, came from the Big Bang. There are no other appreciable sources of hydrogen in the universe. The carbon in your body was made by nuclear fusion in the interior of stars, as was the oxygen. Much of the iron in your body was made during supernovas of stars that occurred long ago and far away. The gold in your jewelry was likely made from neutron stars during collisions that may have been visible as short-duration gamma-ray bursts or gravitational wave events. Elements like phosphorus and copper are present in our bodies in only small amounts but are essential to the functioning of all known life. The featured periodic table is color coded to indicate humanity’s best guess as to the nuclear origin of all known elements. The sites of nuclear creation of some elements, such as copper, are not really well known and are continuing topics of observational and computational research.

via kottke.org

Jason Kurth took his custom hydrogen alpha solar telescope to the desert in Utah to film the recent annular eclipse in 8k. The result is on YouTube. Amazing! There are also some other great images on his site and Instagram.

via kottke

I have not heard the term “infoposter” until I read Connie Malamed’s post describing them and contrasting them with infographics.

The infoposter, a category name that seems to fit this type of graphic, is not yet defined in Wikipedia. Yet it is probably safe to say that the infoposter is a graphic that conveys multiple segments of information typically using words and numbers to represent quantitative data. Infoposters generally use iconic-type graphic elements for visual design appeal and are typically vertical in orientation, similar to a wall poster.

By the way, this was a reference in Building Science Graphics by Jen Christiansen. I’ll have more to say about it when I finish reading it.

I often need to combine several vectors into an array of structures where the i-th element of the array of structures corresponds to the i-th elements of each of the vectors.

For example, if I have three vectors of differing data types:

IDL> x = indgen(3) + 1
IDL> names = ['Mike', 'George', 'Bill']
IDL> values = 100.0 * randomu(seed, 3)

And I want to combine them into a single array of structures for printing, I can do:

IDL> print, mg_zip(x, names, values), format='(%"%02d. %-15s: %6.2f")'
01. Mike : 3.22
02. George : 43.89
03. Bill : 97.14

This part of a growing collection of routines I have to manipulate tabular data, centered around an mg_table class. The code for mg_zip is in src/tables directory of the mglib repo.

More to come on tables


older posts »