USGS

Isis 2 Documentation


Notes on Use of the IDL Display Programs

The following sections contain some notes on use of the ISIS IDL display programs. This includes the following subjects:

  1. SELECTING 8-BIT DISPLAY MODE
  2. PUBLIC VS. PRIVATE COLORMAPS
  3. IDL AND GNOME
  4. USING "CV" WITH DIFFERENT WINDOW MANAGERS
  5. RUNNING "TVTIE"/"TVIMP" ON SMALLER SCREENS
  6. USING DIFFERENT VERSIONS OF IDL
  7. WIDGET BACKGROUND COLOR WITH IDL 5.0.2
  8. RUNNING THE ENVI SOFTWARE PACKAGE

1. SELECTING 8-BIT DISPLAY MODE

In order for the ISIS IDL display programs (e.g., "tvtie", "cv") to operate correctly, they must be running with the 8-bit PseudoColor visual. They must also be running with the public (not private) colormap. If this is not the case, the image will be displayed incorrectly and/or you will get "colormap flashing" when the cursor is moved between the displayed image and other parts of the screen such as IDL control "widgets" or other windows. Note that these potential problem are applicable on all the ISIS supported platforms, i.e., Sun, Compaq Alpha, and PC/Linux. The following describes how to achieve the correct setup to avoid the problems. (Depending upon the capabilities of your particular display hardware and X server, other setup options might also work correctly, but the following procedures should work with all configurations.)

  1. Your X server must be set up so that 8-bit PseudoColor is one of the supported visual types. The "xdpyinfo" command at the operating system prompt will report information about the current X server setup, including the visuals that are supported. If the list of visuals does not include one with "class: PseudoColor" and "depth: 8 planes," then you will need to modify the X server setup. Methods for changing the setup are different for different X servers and/or different operating systems.
  2. Your X server must also be set up so that 8-bit PseudoColor is the default visual. The "xdpyinfo" listing includes the "default visual id. "This should correspond to the "visual id" of the 8-bit PseudoColor visual.
  3. The IDL display program must be running with the 8-bit PseudoColor visual. If your X server supports a 24-bit DirectColor or 24-bit TrueColor visual in addition to 8-bit PseudoColor, then the default for IDL will be to choose to run with one of these rather than with the 8-bit PseudoColor visual. To force IDL to use the 8-bit PseudoColor, the "device, pseudo=8" command should be executed when IDL is first started. This can be done by typing the command to IDL immediatedly after IDL is started. Or, an IDL startup file can be used to execute this command. To do this, the IDL_STARTUP environment variable should be set to the name of a file that contains IDL commands that are to be automatically executed each time IDL is started. For example, if you are using the C/TCSH shell, you can put the following in your .cshrc file:

    • setenv IDL_STARTUP $HOME/idl_startup

    If you are using the Bash/Bourne/Korn shell, you can put the following in your .profile file:

    • IDL_STARTUP=$HOME/idl_startup
    • export IDL_STARTUP

    Then, the file idl_starup in your home directory can contain the "device, pseudo=8" command (and any other IDL commands you want to execute at start-up).

    Make sure you read through the next section to correctly verify the IDL setup.

2. PUBLIC VS. PRIVATE COLORMAPS

The IDL display program must be running with the public (not private) colormap. After the above setup is completed, IDL will attempt to allocate and use all the available colorcells in the public colormap. If there are no available public colorcells, IDL will run with a private colormap. This will result in "colormap flashing" as the cursor is moved between the IDL image display and its associated control "widgets." (This is due to a design flaw in IDL. The IDL developers agree that this is a problem, but it has not yet been corrected.) To prevent this problem, you should make sure no other display program is running that has allocated all (or most of) the public colorcells. Problems typically can occur with Netscape, exmh, XV, or another IDL display session running from a different terminal window, etc. (You will have the same problem with the IDL design flaw if IDL runs with the 8-bit PseudoColor visual and the default visual is either 24-bit DirectColor or 24-bit TrueColor because in this case IDL will be forced to run with a private 8-bit PseudoColor colormap rather than the public 24-bit colormap associated with the default visual.)

To verify that the IDL display setup is working correctly, start up IDL and type the "window" command. This will initialize the connection to the X server, including choosing which visual to use and choosing whether to use the public or private colormap. It will also create a blank display window. Then, type the "help,/dev" command, which will list information about the current display characteristics. If things are working correctly, you should see:

This indicates that you are running with the 8-bit PseudoColor visual. You should also see something similar to:

This indicates that you are running with the shared public colormap. The number "196" might be different on different systems. This indicates the number of public colorcells that IDL was able to allocate and use. For example, if you are using the PC/Linux KDE window manager, the number of available colorcells might be less because KDE allocates more of the public colorcells for its own use.

3. IDL AND GNOME

We have confirmed a problem using GNOME with the Enlightenment window manager and IDL - GNOME does not allow a shared colormap. This will cause the ISIS IDL display programs to work incorrectly. This appears to be due to the fact that GNOME uses up all the available color cells in the public colormap so that there are none left for IDL to use. This forces the IDL display programs to run with a private colormap, but the IDL widgets are still trying to run on the public color map.

How you get into another window manager depends on how you have configured your system. It could be as simple as making the selection at login by selecting the following:

This will bring up your login session in FVWM2 window manager.

Alternately, you could create the file /etc/sysconfig/desktop with one line containing the string 'AnotherLevel' (without the quotes). The file permissions should be 644 with root as the owner and group. Then restart your X server (you may want to reboot). If you experience problems you should consult your system administrator to make the necessary adjustments.

4. USING "CV" WITH DIFFERENT WINDOW MANAGERS

The multiple screen windows used by "cv" might not behave as desired when you use various different window managers and/or window manager option settings. Everything seems to work as designed when using the Sun OpenLook window manager with the default (?) settings. However, if you are using the Motif window manager, the following might be of interest to you:

If you want to have the windows placed automatically rather than requiring the user to place them, try putting the following in your .Xdefaults file:

    Mwm*interactivePlacement:  False
If you have trouble with a click in a window (e.g., the Front View) bringing it to the front and obscuring other overlapping windows (e.g., Side View), try putting this in your .Xdefaults file:
    Mwm*focusAutoRaise:    False

5. RUNNING "TVTIE"/"TVIMP" ON SMALLER SCREENS

The "tvtie"and "tvimp" programs create a display window that mostly fills up a high-resolution display screen. If you are running on a smaller-resolution screen (e.g., on a lap-top computer), the displayed window could be larger than the screen, making it difficult to use the program.

Although there is no run-time control over the size of the displayed window, making some simple modifications to the source code allows decreasing the size of the displayed images, which might be able to produce something that is useable. You might not be able to see all the widgets on the screen at one time, but you should be able to move the window around on the screen so you can get to the widgets when you need them.

The sizes of the displayed images are set by some "compile-time" parameters that are set at the beginning of the CW_TIE routine, which is in the cw_tie.pro source file (located in $ISISIDL). You can copy this file into your working directory and then try adjusting the sizes to see if you can find something that will work. After you make an adjustment, you will need to re-start IDL so that it will re-compile your updated cw_tie.pro source file. IDL will use the cw_tie.pro file in your working directory rather than using the one in $ISISIDL. The parameters to experiment with are located around line 1170 of cw_tie.pro. It looks like this:

;       "Compile-time" constants:
    ovisible:200L, $            ; Size of overview window
    zvisible:200L, $            ; Size of zoom window
    wxvisible:520L, $           ; X, Y size of full-resolution work window
    wyvisible:330L, $
For example, the following changes produce a smaller window that will probably mostly fit on a 1024x768 screen:
;       "Compile-time" constants:
    ovisible:175L, $            ; Size of overview window
    zvisible:175L, $            ; Size of zoom window
    wxvisible:420L, $           ; X, Y size of full-resolution work window
    wyvisible:200L, $

6. USING DIFFERENT VERSIONS OF IDL

The Release Notes for an ISIS release specify the IDL version with which the ISIS IDL programs are compatible. For all of the programs except "cv", the programs are contained in the $ISISIDL directory as IDL source files. When you run one of these programs, it is compiled and run with your current version of IDL. However, note that there is no guarantee that the programs will work properly with IDL versions that are different from the version specified in the Release Notes. Sometimes different versions of IDL contain design changes that require changes in the source code for the ISIS IDL programs.

Due to its large size, the "cv" program is contained in the $ISISIDL directory as a pre-compiled cv.sav file. Different versions of IDL can sometimes use different formats for the pre-compiled .sav files. Thus, if you are running an IDL version that is different from the version used to prepare the cv.sav file, it might be necessary to re-compile the "cv" program. To do this, first save the $ISISIDL/cv.sav file somewhere in case something goes wrong. Then, do the following:

Note that the main source file for "cv" is normally contained in the file cv.pro.src. If a file called cv.pro exists in $ISISIDL, then IDL will compile the program at run-time rather than using the pre-compiled cv.sav file. As with the other ISIS IDL programs, there is of course no guarantee that "cv" will work properly with different versions of IDL.

7. WIDGET BACKGROUND COLOR WITH IDL 5.0.2

When running with IDL Version 5.0.2 and later, some of you may find that the background color on widgets displayed by IDL programs has changed (probably to white). If you prefer to have the "official" IDL blue for the backgrounds, try putting the following lines in your .Xdefaults file:

    Idl*background: #7300a100ff00
    Idl*foreground: Black

8. RUNNING THE ENVI SOFTWARE PACKAGE

If you are running the ENVI software package, there is probably a setup file that you need to execute to set up ENVI-related environment variables and aliases. We suggest that you put something like the following line in your .cshrc file:

Then, when you want to run ENVI, you should first type envi_setup at the operating system prompt to do the setup and then type envi to start up ENVI.

Note that "sourcing" the envi_setup file will probably reset the IDL_PATH environment variable, which tells IDL where to look for program and subroutine files. Thus, this will make the ISIS IDL display programs unavailable. If you then want to run ISIS IDL programs, you can do so in another terminal window. Or, you could source your .cshrc file to reset IDL_PATH.

Last updated: Oct 24 2003
File: idl_notes.html

Contact us online at the Isis Support Center: http://isisdist.wr.usgs.gov

ISIS Documentation Home Page