A Virtual Sea

Submarine Topography -- Data Visualization

I have developed a basic GTOPO30 viewer called CortezMap. However, I want to be careful that I'm not just reinventing the wheel. So, instead of continuing with development of CortezMap, I'm looking hard at existing viewers to see if they can present GTOPO30 images. In addition, a viewer must be adaptable for distributed visualization. This means it must be capable of connecting to a data transmission backbone and probably be able to be contained in a Web browser. This limits the field to either Java applets or COM technology. I strongly favor Java applets because they are multiplatform.

What I'm hoping is that I can find a good 2D and 3D open source viewer and modify it to accept plugins for various file formats. Any suggestions???

Below I've provided some notes on viewers as the work progresses.


Technical Notes

  • Visualization Software Development
    • Overall Objectives
      • Provide a bitmap color ramped view of the database that will permit the checking of georeferenced heightfields.
      • Provide a 3D moveable view of the dataset.
    • Current status
      • Current features in the 3D viewer include keystroke movement of the view, Will Evan's level of detail (LOD) algorithms, and color ramping. The view covers the full Sea of Cortez and surrounding terrain.
      • With the large (over 2.5 million vertices) dataset, the LOD hierarchy setup time is over 30 seconds. To eliminate this problem, the hierarchy structure is stored to a binary file on the first rendering pass. This file is loaded every time the program is executed. It now takes only 3 seconds to bring up the image.
    • Next steps
      • At 30 arcseconds resolution, the resulting 3D rendering provides only a general idea of the shape of the submarine terrain. It would be interesting to find a way to estimate more detail as the viewer's eye gets closer. I'm now experimenting with fractal terrain interpolation using methods developed by Ken Musgrave and Ken Perlin. Follow my progress on the database development page.
      • Experiment with LOD variables to create an optimal balance between detail and rendering speed. Make these variables selectable in the GUI.
      • More experiments with light, color, and texture mapping. Make these variables selectable in the GUI.
      • Incorporate collision avoidance algorithms in preparation for fly-by features.
      • Build fly-by into the program.
    • Available GTOPO30 Data Viewers
    • The easiest way to do a cursory assessment of bathymetry data is to use a bitmap or raster viewer that portrays heightfield data. Some viewers present a bitmap image, others provide a 3D view, and some can produce animated "fly-by" scenes.
    • My bathymetric/terrain heightfield data are in the GTOPO30 raster format. While a GTOPO30 data file uses the DEM suffix, it is important to note that GTOPO30 is a binary format and most other DEM files are ASCII format. Even though a viewer appears to have DEM capability, it may not have GTOPO30 DEM capability.
    • There are a number of viewers that are available to read GTOPO30. Some read and use the GTOPO30 file directly and others translate the data to another format such as TGA. What is striking is that few viewers are able to correctly process bathymetry heightfields because these data are negative (below sea level). Apparently, negative numbers below a predefined limit are either treated as errors or are converted to positive values and displayed as terrain data.
    • Below is a list of four freeware or shareware GTOPO30 DEM viewers that I have attempted to use.
      • DLGV32 -- This public domain viewer is produced by the USGS. It can handle many file formats and color schemes. Dlgv32 does not produce 3D or animated images. The full source code for the viewer is free from the US government. For the moment Dlgv32 is our viewer of choice. However, it does have some quirks. For some reason, the software has a -407 meter height as the minimum legal value. Nonetheless, it portrays all depths while warning the user that any depth below -407 meters is illegal. I'm not yet sure about the color translations for depth. Dlgv32 also handles unknown values very well. This is an important issue because there are many unknown values while the bathymetry database is being developed. Since the source code is available, Dlgv32 is a good candidate for revisions to accomodate submarine topography.
      • MICRODEM -- Produced by the U.S. Naval Academy and is free. This viewer does accommodate bathymetric data. It produces bitmap images but first requires an imported translation of GTOPO30 data to the TGA graphics file format. It is also capable of producing 3D perspective views and animated fly-bys. However, the help files are not very clear and, as a result, the software is a bit difficult to use. In addition, Microdem does not handle unknown values well even though the GTOPO30 format provides header information about unknown values. For some reason, unknown values cause divide-by-zero errors that crash the software and make Microdem useless during bathymetry database development.
      • TRU_FLITE -- is a commercial product that has a demo version available. Like Microdem, GTOPO30 files must first be imported and translated to the TGA graphics file format. Bitmap, 3D, and fly-by views are available. I found the process for producing images to be a bit confusing. The user must move between three windows to set up and produce an animated image. The help files are not very clear.
      • 3DEM --is a freeware viewer that handles GTOPO30 data. However, it converts bathymetric data into positive values that appear as terrestrial mountains. Nonetheless, it easily renders 3D views of a dataset.