IDL Visual Display Systems
When creating visualizations in IDL, you can choose to create a visualization in an IDL Intelligent Tool (iTool), in an Object Graphics display, or in a Direct Graphics display:
- iTools — introduced in IDL 6.0, the IDL Intelligent Tools (iTools) provide the power and flexibility of Object Graphics with a pre-built visualization system that offers a great deal of interactivity. This set of interactive utilities combine data analysis and visualization with the task of producing presentation quality graphics. See iTools Visualizations below for more information.
- Object Graphics — introduced in IDL 5.0, Object Graphics use an object-oriented programmers' interface to create graphic objects, which must then be drawn, explicitly, to a destination of the programmer's choosing. See IDL Object Graphics for more information.
- Direct Graphics — the oldest visualization system of the three, Direct Graphics rely on the concept of a current graphics device to quickly create simple static visualizations using IDL commands like PLOT or SURFACE. See IDL Direct Graphics for information.
This section introduces the IDL display systems and provides information on common topics shared by the systems. Topics include a discussion on coordinates, coordinate conversion, interpolation, color systems and color schemes, and fonts.
iTools Visualizations
The new IDL Intelligent Tools (iTools) are a set of interactive utilities that combine data analysis and visualization with the task of producing presentation quality graphics. Based on the IDL Object Graphics system, the iTools are designed to help you get the most out of your data with minimal effort. They allow you to continue to benefit from the control of a programming language, while enjoying the convenience of a point-and-click environment.
The main enhancements the new iTools provide are more mouse interactivity, WYSIWYG (What-You-See-Is-What-You-Get) printing, built-in analysis, undo-redo capabilities, layout control, and better-looking plots. These robust, pre-built tools reduce the amount of programming IDL users must do to create interactive visualizations. At the same time, the iTools integrate in a seamless manner with the IDL Command Line, user interface controls, and custom algorithms. In this way, the iTools maintain and enhance the control and flexibility IDL users rely on for data exploration, algorithm design, and rapid application development. The following manuals provide more information:
- iTool User's Guide — describes how to create visualization using iTools
- iTool Programming — describes how to create and customize an iTool
IDL Object Graphics
The salient features of Object Graphics are:
- Object graphics are device independent. There is no concept of a current graphics device when using object-mode graphics; any graphics object can be displayed on any physical device for which a destination object can be created.
- Object graphics are object-oriented. Graphic objects are meant to be created and re-used; you may create a set of graphic objects, modify their attributes, draw them to a window on your computer screen, modify their attributes again, then draw them to a printer device without reissuing all of the IDL commands used to create the objects. Graphics objects also encapsulate functionality; this means that individual objects include method routines that provide functionality specific to the individual object.
- Object graphics are rendered in three dimensions. Rendering implies many operations not needed when drawing Direct Graphics, including calculation of normal vectors for lines and surfaces, lighting considerations, and general object overhead. As a result, the time needed to render a given object—a surface, say—will often be longer than the time taken to draw the analogous image in Direct Graphics.
- Object Graphics use a programmer's interface. Unlike Direct Graphics, which are well suited for both programming and interactive, ad hoc use, Object Graphics are designed to be used in programs that are compiled and run. While it is still possible to create and use graphics objects directly from the IDL command line, the syntax and naming conventions make it more convenient to build a program offline than to create graphics objects on the fly.
- Because Object Graphics persist in memory, there is a greater need for the programmer to be cognizant of memory issues and memory leakage. Efficient design—remembering to destroy unused object references and cleaning up—will avert most problems, but even the best designs can be memory-intensive if large numbers of graphic objects (or large datasets) are involved.
For more information on creating Object Graphic visualizations see:
- Object Programming — this manual introduces using IDL objects and also describes how to create custom objects in IDL.
- "Object Class and Method Reference" (IDL Reference Guide) — this section in the IDL Reference Guide provides complete reference material describing IDL's object classes
- iTool User's Guide and iTool Programming — these manuals provide complete details about using and creating object-based iTool displays
IDL Direct Graphics
IDL Direct Graphics is the original graphics rendering system introduced in IDL. Graphic displays creating using Direct Graphics are static — once created, no changes can be made without recreating the visualization being displayed. If you have used routines such as PLOT or SURFACE, you are already familiar with this graphics system. The salient features of Direct Graphics are:
- Direct Graphics use a graphics device (X for X-windows systems displays, WIN for Microsoft Windows displays, PS for PostScript files, etc.). You switch between graphics devices using the SET_PLOT command, and control the features of the current graphics device using the DEVICE command.
- IDL commands that existed in IDL 4.0 use Direct Graphics. Commands like PLOT, SURFACE, XYOUTS, MAP_SET, etc. all draw their output directly on the current graphics device.
- Once a direct-mode graphic is drawn to the graphics device, it cannot be altered or re-used. This means that if you wish to re-create the graphic on a different device, you must re-issue the IDL commands to create the graphic.
- When you add a new item to an existing direct-mode graphic (using a routine like OPLOT or XYOUTS), the new item is drawn in front of the existing items.
See "Direct Graphics" (IDL Quick Reference) for a list of available routines.