Harris Geospatial Solutions offers introductory, intermediate and advanced courses in IDL. Classes are held year round and can be customized to meet your unique requirements. Our expert instructors focus on your goals and how you can best utilize our tools to achieve them.


Getting Started with IDL (IDL 100 - 3 days)


Introduction to IDL is a three-day course that provides scientists, engineers and developers with a working knowledge of the IDL programming language. Through a mixture of lectures, instructor-led exercises and challenge problems, this course significantly shortens the startup time for learning IDL, increasing efficiency. The course is focused on using IDL for data exploration, visualization and analysis, with examples from astronomy, atmospheric science, remote sensing and medical imaging. This course is intended for new users of IDL; however, experienced users will also benefit from interacting with our veteran instructors. No knowledge of IDL is required.

Prerequisite: Basic operating knowledge of computers required; programming experience (in IDL or another language) helpful.

IDL System Basics
  • The IDL command line and workbench
  • Using projects
  • Setting and changing the working directory
  • The IDL Help system
Graphics Systems and Color
  • Graphics systems in IDL
  • Using Graphics: references, properties, and methods
  • The RGB color system
  • Specifying colors: directly and with color tables
Data Visualization
  • Line, surface and contour plots
  • Displaying and manipulating images
  • Combining visualization types
  • Using color
  • Text and line annotations
  • Output to PostScript, PDF, and standard image file formats
Data Structures
  • Variable types and type behavior
  • Arrays and array indexing
  • The WHERE function
  • Lists, hashes, and structure
  • Strings and string processing
  • System variables
  • Program types
  • Compiling, debugging, and running programs
  • The COMPILE_OPT statement
  • Using parameters: positional and keyword
  • Operators and control statements
  • IDLdoc documentation system
File Access
  • File handling routines
  • Reading/writing text/binary files
  • Working with supported standard formats
  • The SAVE file format
  • Overview of IDL’s standard libraries
  • IDL Math & Stats: the IMSL libraries
  • Examples of interpolation, curve fitting, signal processing, and image processing
Map Projections (optional)
  • Creating a projection
  • Warping data to a projection
  • Web sites: and independent users
  • The IDL user community
  • The comp.lang.idl-pvwave newsgroup
  • Books on IDL and programming

View our Classroom Training Calendar

Customizing ENVI with IDL (ENVI 250 - 4 days )


Extending ENVI with IDL is a four day course for remote sensing scientists, engineers and developers who wish to incorporate their own algorithms and workflows into ENVI. This course provides an overview of the programming constructs available in IDL, the language in which ENVI is written, as well as the tools necessary for a user to extend ENVI with IDL, including ENVI library routines, custom file readers and writers, batch mode programs and user functions. Students should be familiar with ENVI, ideally having taken Exploring ENVI. Several ENVI programs are developed in class. Though it is helpful to have programming experience in IDL, familiarity with basic programming topics in any language is suitable.

Prerequisite: Exploring ENVI (or equivalent experience) and familiarity with basic programming.

IDL System Basics
  • The IDL Workbench
  • Statements and programs
  • Command-line versus programmatic use
  • The IDL Help System
A Tour of IDL
Data Structures
  • Variable type
  • Arrays and array operations
  • Dynamic typing and type behaviors
  • Structures
  • Objects
  • Lists & Hashes
  • System variables
Programming Syntax
  • Operators and control statements
  • The COMPILE_OPT statement
  • Program types
  • Using positional and keyword parameters
  • Parameter passing
  • Path
  • Calling mechanism
  • Debugging with the Workbench
  • Error handling
  • IDL batch scripting
  • Namespace
  • Comments
  • Documentation
File Routines
  • Routines for locating and accessing files
  • Reading text and binary files
  • Object-based file readers
  • Scientific data formats and high level file access


    Band and Spectral Math
  • Using IDL operators
  • Constructing expressions
ENVI Procedural Library Routines
  • Opening and managing files
  • Querying file metadata
  • Reading data from files
  • Writing ENVI-format files
  • Handling Vector data
ENVI’s Object API
  • Application control
  • Data input and output
  • Metadata access
  • Rasters, Layers, Views, and Portals
  • Tiling and tile based processing
ENVI Batch Programming
  • Running ENVI in headless mode
  • The ENVI_DOIT wrapper
  • Automating multiple processes
  • File and string processing to support batch processing
ENVI Extensions
  • Adding extensions to the toolbox
  • ENVI Extension basics
  • Using the ENVI Extension Wizard
  • Packaging and distributing extensions
ENVI GUI Programming
  • The ENVI widget toolkit
  • Using IDL widgets in ENVI programs
  • Getting access to the widget hierarchy of the main ENVI application
  • Web sites: and independent users
  • The Exelis VIS user community
  • The comp.lang.idl-pvwave newsgroup
  • Books on IDL and programming

View our Classroom Training Calendar


© 2017 Exelis Visual Information Solutions, Inc., a subsidiary of Harris Corporation