Data Visualization


Hilary W. Thompson, Ph.D.    Bahram Khoobehi, Ph.D.    Quang Tran

The LSU Eye Center houses several laboratories that conduct research from applied physics to immunology. These laboratories are increasingly utilizing imaging and the latest technology to aide their research efforts. This heavy use of imaging imposes new requirements such as:

1) Increased storage capacity
2) Centralized backup subsystems
3) Powerful computational servers to analyze the data collected
4) Powerful visualization servers and immersive displays to explore data in three-
    dimensional space
5) Media databases to catalog all data collected so as to facilitate the retrieval of such data
6) Advanced software for data mining and knowledge extraction

In order to fulfill these requirements, the LSU Eye Center has heavily invested in its computational and storage capabilities. Equipment and services available to the research laboratories include:

1) IBM P650, 4-Way server
    4 1.45 GHz IBM Power4+ processors
    8 GB internal RAM
    320 GB internal hard disk storage space
    Dual 1GBps network adapters operating in EtherChannel mode (2GBps total bandwidth)
    AIX 5L operating system

2) IBM TotalStorage NAS200 storage array
    1.8 TB, mirrored, storage capacity.
    Expandable design allows the addition of extra storage cabinets
    Services for Unix, Windows, and Macintosh

3) IBM Ultrium 3583 Scalable Tape Library
    Dual LTO tape drives
    Capacity for up to 18 LTO tape cartridges
    Barcode scanner to simplify storage management

4) Imaging Cluster
An imaging cluster consisting of two dual 2.2 GHz Xeon processor workstations and two dual 1 GHz PIII processor workstations was built to provide a parallel image processing engine to process real-time video produced by the confocal microscope. The data flow is graphically represented below:

5) Fakespace M1 Immersadesk
The Immersadesk is an immersive display that is used to visualize three-dimensional data sets. 3D viewing software renders two separate views of the data; one for the left eye and one for the right. These views are displayed at a rate of 120 times per second. The user wears a pair of Crystal Eyes LCD shutter goggles synchronized with the visualization server. When the view for the right eye is active, the goggles block the left eye and viceversa. The goggles also have a magnetic tracking device attached to a Polhemus Fastrack processor that allows the tracking head movement. Interaction with the data is done through a hand-held wand, a 6DOF (six degrees of freedom) device. The image below shows the Immersadesk and a user interacting with a volume.


LSU Eye Center Immersadesk. This display allows the real-time interaction with data sets loaded through the Sun Fire V880z server. The display has head and wand tracking for a truly immersive experience. Both surface and volume data can be displayed. The feasibility of bringing other data sets into the Immersadesk are being studied.

    Fakespace Immersadesk:
    Supports full stereo signals up to 1280 x 1024 @ 120Hz
    Multiple input sources
    Outfitted with Polhemus Fastrak motion tracking controller, a pair of Crystal Eyes     stereoscopic glasses, head tracking sensor, and a 6DOF mouse
    Bypass port allows the connection of an external monitor

    Sun Fire V880z Visualization Server:
    Dual 900 MHz UltraSparc III processors
    4 GB internal RAM
    438 GB internal hard disk storage space
    Gigabit network adapter
    XVR-4000 video adapter with 1 GB of texture memory, 144 MB of frame buffer memory,
    4 internal rendering pipelines, and programmable 5 x 5 radial filter chips

6) Media Library
Laboratories are increasingly relying on imaging to answer many of their research questions. As data collection rates increase, the need to store, manage, search, and retrieve those data has become essential. The LSU Eye Center has adopted a centralized data storage system, the LSU Eye Center Media Library, that utilizes the latest software and hardware technology to handle its media management needs.

The Media Library is a set of software components developed in-house to manage heterogeneous data sets. The system currently supports images, volumes, surfaces, and hyperspectral data types. All data uploaded to the library is stored in a central storage array with 1.8TB of available space and catalogued using IBM's DB2 database. The client software consists of a universal data manager and a viewer written in the Java programming language. Data can be accessed locally via the Eye Center's gigabit network infrastructure or remotely via the Internet. Users have access to their personal data catalogs and data that has been made public by other users. Below is a more detailed description of the software architecture:


There are two main software components: the data viewer and the data manager. The data viewer is an application written in Java which enables it to run unaltered on a variety of platforms. The viewer can display data stored remotely or locally. The data manager is a Java application responsible for uploading data to the remote server. With the data manager, users upload a series of pre-processed images and produce data volumes for later rendering. The volumes produced can also be further processed to obtain surface models. Communication between the data manager and the server occur via Java-RMI (Remote Method Invocation). The server keeps all submitted volumes on a central database.
The viewer application consists of three objects: a catalog browser, a 3D data loader, and a 3D visualizer. The catalog browser can operate from either remote or local data. When first ran, the viewer tries to establish a connection with the remote server. If this connection is successful, the server provides a catalog of all available data sets. The viewer then operates in ‘remote’ mode and all data residing on the server is available for viewing. Communication between the client and the server is done via regular HTTP which enables the viewer to be executed in ‘remote’ mode even if the user is outside the LSU Eye Center’s network domain. If the server is unavailable (e.g. if the user is working on a laptop away from the office), the viewer requests the catalog from the local disk and it operates in ‘local’ mode. Data that has been copied from the server to the local computer will be available for viewing. The 3D data loader is responsible for reading the data and producing Java3D objects that are then sent to the 3Dvisualizer to be ultimately displayed on the screen. The user can interact with the 3D data using the mouse or, if being displayed on the Immersadesk, with the wand.

On the server side, there are four objects responsible for providing data to clients. The CatalogProxyServer, 3DdataProxyServer, CatalogGenerator, and the 3DdataServer. When a catalog request arrives from a client, the CatalogProxyServer requests this catalog from the CatalogGenerator. The CatalogGenerator queries the database and constructs an XML description of all data available and returns it to the CatalogProxyServer which in turn returns it to the requesting client. When the user selects a file to be displayed (from the catalog just returned), the client makes a request for that data file. The 3DataProxyServer gets the request, forwards it to the 3DDataServer, waits for the data, and returns it to the requesting client. Communication within the server occurs via RMI. Client-server communication is done via HTTP. This allows users to view remote data from anywhere in the world.

The 3D Data Manager application is used to build 3d data sets from a series of images. It consists of three objects: the CatalogBrowser, 3DVisualizer, and the VolumeBuilder. The functionality of the CatalogBrowser and the 3DVisualizer is similar to the viewer application. The VolumeBuilder is the object responsible to operate on existing data. Operations can be as simple as sub-sampling a volume to running complex surfacing algorithms. Currently, the only supported operation is surface generation (implemented by the server’s SurfaceGenerator object). When the user selects a volume to be surfaced, the client sends a request to the 3DDataServer. The 3DDataServer then supplies the appropriate data to the SurfaceGenerator which in turn returns the surfaced data to the 3DDataServer. The server then makes an entry on the database to allow the newly generated surface data to be visualized.