By Todd Berendes
As is so often the case, IVICS was a project born out of necessity. I began work on what would become IVICS in 1990 while I was a graduate student at the South Dakota School of Mines & Technology (SDSMT). After graduating in 1991, I began working for my former advisor Ron Welch. Ron had just been awarded a 10 year grant to develop advanced artificial intelligence techniques for satellite image classification. Specifically, his task was was to develop a polar cloud mask for the NASA Earth Observing System (EOS) Clouds and the Earth Radiant Energy Systems (CERES) program. Additionally, he was awarded another NASA grant to develop a polar cloud mask for the Advanced Spaceborne Thermal Emission and Reflection Radiometer (ASTER) instrument. The CERES mask was to function on Moderate Resolution Imaging Specrometer (MODIS) data, and the ASTER mask would use ASTER data. Unfortunately, at the time, neither instrument was constructed yet. There wasn't even prototype data available for several years. We were forced to develop our early algorithms using the only data we had at the time, Landsat and Advanced Very High Resolution Radiometer (AVHRR). All of our algorithms needed to be easily adapted to diferent satellite data.
We decided to pursue supervised image classification techniques using neural networks and other more traditional methods (Berendes, et al. 1999). Supervised techniques use training samples selected from representative imagery. Image classes must be defined and selected by an expert analyst. The samples are then used to train the classification algorithm. Selection of good training samples is very difficult. It is often difficult to determine what you are looking at in satellite imagery. A good visualization tool was needed to help identify image classes. Unfortunately, good visualization tools for large multispectral imagery were in short supply. The available tools were either very expensive or required too much computer power to be practical.
Our first computer "workstation" was a Silicon Graphics (SGI) Personal Iris 4D-20. The Iris was a quantum leap from the PC's we were using at the time. The IRIS had 24 bit grapics and a whopping 32 mb of memory. The best PC we had was a 25 MHZ 386 with 8 mb of memory and 256 color VGA display. The Iris offered us a powerfull platform with the ability to display 3 channel color composite (overlay) images. Color composite displays are very useful for image analysis and classification.
We still needed a good way to visualize the satellite data and extract samples from it. Several options were considered. The Interactive Data Language (IDL) was initially considered. IDL provides excellent plotting and visualization functions. Unfortunately, IDL requires that images be entirely loaded into memory and most operations are performed on entire arrays (images). IDL works fine for small images, but we were dealing with AVHRR and Landsat files of over 20 mb. Even on the SGI, large multispectral images quickly bogged IDL down to the point of unusability. Other "off the shelf" software such as IBM Data Explorer had the same memory/performance limitations. A responsive and easy to use solution was needed. The classification project required us to analyze and extract training samples from hundreds of images to create a complete and representative training database. Our only viable option was to write our own visualization package. The Interactive Visual Image Classification System (IVICS) was the result of that effort (Berendes and Welch, 1993).

Figure
1. Screen shot of the original IVICS.
A screen snapshot of the original IVICS is shown if Fig 1. An AVHRR image is displayed using a three band color composite. A selected sample can be seen in the center of the RGB image. Each of the AVHRR channels for the sample is displayed across the lower middle section of the screen. Scatter plots, histograms, and image displays are visible in the bottom and right margins of the screen shot. The user had the ability to display any combination of image chanels in the RGB color composite image. Histogram equalization, contrast stretch, and grey flipping were supported for each channel.
IVICS was developed on the SGI workstation using SGI GL. At the time GL was the cutting edge graphics library and was only available on SGI workstations. Portability was not a main consideration since PC's were not powerful enough to run the softaware anyway.
As IVICS was used it evolved. Addional displays were added and some were removed. The result was a set of tools which aided image interpretation. Using IVICS we were finally able to select our training samples and perform our initial classification experiments. At first IVICS was mostly an "in house" tool with only a few users. A conference paper presented at an AMS annual meeting (Berendes and Welch, 1993) generated some interest in IVICS as a satellite data visualizer. Some of our NASA coleagues started using IVICS and suggesting changes which were implemented as time allowed. By 1993 other responsibilities had taken priority over IVICS development. The development of the classification algorithms was always our primary task. I also had the additional responsibity of system administrator for our growing computer network.
Fortunately, a talented graduate student showed an interest in IVICS. Vasanth Tovinkere graduated from SDSMT in 1992 and went to work for Bryan Baum at NASA Langley Research Center. Bryan and Vasanth were working on image classification using fuzzy logic techniques and wanted to use IVICS for training. I provided as much support as I could but I had little time to devote to IVICS. Then in the fall of 1993 I took a different job so IVICS development stopped.
In the meantime, Vasanth decided to create a new tool more suited for his purposes. He took the basic concept of IVICS and redesigned it from the ground up. The Satellite Imagery Visualization System (SIVIS) was the result.

Figure
2. Satellite Imagery Visualization Sytem (SIVIS).
SIVIS took the original functionality of IVICS and embedded it into a beautiful and functional multiple window environment using the Forms GUI library. Forms was developed using the proprietary SGI GL and as such would only run on SGI workstations.
Vasanth continued to develop SIVIS for several years. During that time, I started using SIVIS for my early work on the classifiers, and started contributing ideas and code to the project. Unfortunately, Vasanth left for greener pastures (a job at Intel) and maintanence of SIVIS fell in my lap.
SIVIS is a terrific program. However, it was not designed to be platform independent. It was built using a proprietary graphics library (SGI GL) and a proprietary GUI library (FORMS). Shortly after I started using and maintaing SIVIS SGI (Then called Silicon Graphics) unveiled OpenGL which would soon become the "Open" standard for 3-D graphics. OpenGL would soon replace GL on SGI's and would also be available on other UNIX platforms (as well as Windows). As time went on, it became more and more difficult to maintain SIVIS. SGI maintains compatibility with GL, but at a minimal level. It soon became clear that it would be impossible to maintain SIVIS indefinitely. We also needed new capabilities which SIVIS couldn't provide.
In early 1997 I started working on yet another redesign of the IVICS/SIVIS systems. This time I started from the bottom up using the platform independent OpenGL platform graphics library and the XWindows based Motif GUI library and window manager. The result can be seen in Figure 3.

Figure 3. Early OpenGL version of IVICS.
The software continued to evolve into a specialized sample slelection and visualization tool to facilitate design of supervised classifiers for the CERES and ASTER projects. I dubbed the system Interactive Visualizer and Image Classifier for Satellites (note the slight change in the name, acronym is still IVICS) to empasize the specialization for satellite imagery. Gradually, more visualization and data options were added to make the IVICS more useful for general use. Great pains were taken to design the data structures and file formats in a platform and satellite sensor independent manner. The current incarnation of IVICS can seen if Figure 4.

Figure 4. Current version of IVICS.
In the late 1990's as PC's became cheaper and more powerful, we started started experimenting with the Linux operating system. Linux was pretty rough back then, but I was able to port IVICS to run under Linux using open source tools. Currently, Linux is the platform of choice for IVICS.
As time allows, I am working on documenting the file structures and programmers interface functions used to create and access IVICS files (GSF file format). I hope to provide IVICS to the open source community as a platform to build on.
A comparison of artificial intelligence techniques for polar scene classification. A. Logar., E. Corwin, V. Tovinkere, M. Penaloza, J. Lee, T. Berendes, R. Weger and R. Welch, Abstract, AIRIES '92 Workshop, October 1992, Monterey, CA.
An Intercomparison of Artificial Intelligence Approaches for the Classification of Polar Scenes, R. M Welch, S. K. Sengupta, M. Penaloza, R. Palikonda, V. Tovinkere, T. Berendes; Proceedings of the International Symposium on Remote Sensing of Snow and Ice, May 17-22, 1992, Boulder, CO
Interactive Visual Image Classification System (IVICS), Todd A. Berendes and Ronald M. Welch, Ninth International Conference on Interactive Information and Processing Systems for Meteorology, Oceanography, and Hydrology, Jan. 17-22, 1993, Anaheim, CA.
A comparison of paired-histogram, maximum likelihood and neural network approaches for daylight global cloud classification using AVHRR imagery. T. A. Berendes, K. S. Kuo, R. M. Welch, B. A. Baum, A. Pretre, A. M. Logar, E. C. Corwin and R. C. Weger, J. Geophys. Res., Vol 104, No D6, pages 6199-6213, 1999.