IDL: Interactive Data Language

 I worked at Research Systems Inc (RSI) on the visualization subsystem and other aspects of their IDL product, basically versions 5.0 through around 5.4.  IDL has a mechanism for run-time loading user functions called a DLM. I have written a couple of DLMs since leaving RSI and they are being used by a number of users. The DLMs are available here now.

The IDL_tools DLM

This is a somewhat eclectic package of features that can be very useful for applications development. I needed these for several of my applications.  The features include:

  •     Sockets API for Windows and Unix
  •     An interface to gzip compression for files and variables
  •     An async sound playing API for Windows (DirectSound based)
  •     A polygon mesh decimation routine
  •     A TWAIN interface for Windows (access scanners, cameras and other image input devices)
  •     An array slabbing API
  •     A generic interface for calling Windows DLL functions directly (call the win32 API from IDL)
  •     A simple shared memory/memory mapped file interface
  •     A Video for Windows interface (access webcams and other VFW video input devices)
Several of these functions are now included in IDL itself, but a number never will.  The source code for the DLM is available for download here.  You will need MS Visual C++ to compile it. I have built it with 6.0 and 2003 .NET, but not 2005 yet. You will need the external header files from IDL to successfully compile the DLM. See the README file in the source code for the new APIs it introduces into IDL.

The Parallel Regression DLM

This DLM adds an interface to an incremental General Linear Model (GLM) package based on some augmented Gentleman's algorithms (75 and 274) from Applied Statistics. They allow for a streaming, windowed collection of regressions to be computed in parallel (e.g. a linear model over a series of images such as found in PET/fMRI analysis techniques).  These functions formed the statistical code of the I/OWA streaming functional imaging system. Version 2.0 of that system is now based on a standalone CVIO application instead of IDL, but other folks are still using this interface. The sources are available here.

The CVIO DLM

This DLM is now being deprecated, but the sources are available for folks interested in reading/writing CVIO files. We are moving this development over to Python. If you need these sources, please contact me.