Exploring 3-Dimensional oceanographic and atmospheric data sets on the web using Virtual Reality Modeling Language (vrml)

C. W. Moore1, A. J. Hermann2, N. N. Soreide2, C. M. Lascara3,
G. H. Wheless3

Affiliations:

1Joint Institute for the Study of Ocean and Atmosphere, University of Washington, Seattle, WA
2NOAA/Pacific Marine Environmental Laboratory, Seattle, WA
3Center for Coastal Physical Oceanography, Old Dominion University, Norfolk, VA

ABSTRACT

Virtual Reality Modeling Language (VRML)  is a file format which allows users to access, navigate, explore and interact with environmental data in 3-D on the Web, and to share this multidimensional experience with colleagues in remote locations. VRML is platform independent, available to PC users as well as those working on high‑end workstations, and Viewers or plug‑ins are freely available for popular Web browsers, such as Netscape or Internet Explorer.  In this paper we give the reader the tools to create simple VRML, and the resources to explore this popular visualization format.  Various VRML worlds will be described and the reader will be guided through the creation of a simple VRML file using the reader's own 2-D height field data as an example of the ease-of-use.  Navigate the VRML worlds referenced in this paper as you read on:  http://www.pmel.noaa.gov/vrml

I.	
I.	Background and Introduction to VRML

Virtual Reality Modeling Language (VRML) is a scene description language which describes three-dimensional environments and which allows users to access, navigate, explore and interact with environmental data in three dimensions on the Web. VRML is scaleable across platforms ranging from PCs to high-end workstations, and can be viewed either with a web browser plug-in or with stand-alone software.  A VRML world typically consists of polygonal surfaces that mimic the real environment.  In oceanographic terms this includes contoured 'slices', vector fields, bathymetry or topography, and textured surfaces (Fig. 1).   These objects can be touched, rotated, or animated using controls that the browser provides.  This relatively new technology has been developed only over the last few years, and an international open standard has been accepted as of December, 1997.

VRML objects can be primitive (cubes, spheres, etc), or user-defined (elevation grids, polygonal surfaces, lines), and can be given traits such as color, texture, sound, and video.  Animations can be created by swapping surfaces of arbitrary shape using cached memory or morphing a surface by changing its defining coordinates over time.  The user can even define touch sensitive objects and assign actions (typically through simple Javascript routines) that allow the user to interact with the world.  VRML can also interact with Java to create a myriad of 3-D and 2-D user interfaces.  A typical geophysical application might create a gridded surface of bathymetry, and animate surfaces of water properties or tracers.  The user needs an HTML browser (such as Netscape or Internet Explorer), and a VRML plug-in to view the VRML file.  Various VRML viewers are reviewed in Appendix A, and a discussion of graphics cards can be found in the companion paper.

In the companion paper on stereographic application of the technology Hermann et al. (1999) argue that contour plotting can mask small-scale patterns if large-scale patterns have a stronger amplitude (Fig. 2). This drawback of 2-D techniques for viewing 3-D datasets has been addressed by many of the data exploration software packages over the years.  Many of the popular software packages have stepped up and included 3-D features to their plotting routines.  VRML provides a standard for this representation and an easy way for the user to rotate, zoom, and animate these datasets.  The standardization allows for sharing this experience over the web both by allowing anyone with a VRML-aware browser to view a virtual world and by taking advantage of new-emerging multi-user VRML worlds.  Collaborative visualization is a tool that is being used more and more by collaborating scientists at remote research organizations world-wide.

II.	VRML representations of oceanographic data

We present here several virtual worlds created from oceanographic data.  The appendix provides easy-to-follow guides to creating your own virtual worlds.

Data from diverse NOAA research groups were put into VRML format and worlds were created based on what virtual reality features lent themselves to viewing the data most readily.  The Tropical Atmosphere Ocean (TAO) and the Global Carbon Cycle Project (GCCP) data are depicted using animated surfaces (ElevationGrids) to show the development of El Niño and La Niña.  Hydrothermal vent model output from the VENTS research group utilizes VRML's capability to represent amorphous shapes (the IndexedFaceSet node).  Model output from the Fisheries Oceanography Coordinated Investigations (FOCI) group use bathymetry of spawning grounds and animated primitive spheres to represent fish dispersal off the Alaska coastline.  And coastal oceanographers from Old Dominion University use a Java applet and VRML to view hydrographic data from Chesapeake Bay.
A.	Tropical Oceanography:

The first VRML world is a prototype, three-dimensional VRML visualization and animation of data from NOAA's near-realtime Tropical Atmosphere Ocean (TAO) buoy network (Soreide et al. 1998) in the tropical Pacific (Fig. 1). With the recent strong El Niño and the strong La Niña now developing, we believe that many Web users will welcome the opportunity to interact with a three dimensional representation of data from one component of NOAA's El Niño Southern Oscillation (ENSO) observing system.  The VRML world consists of five polygonal surfaces for each month: three depth sections of temperature (at the equator, the dateline, and 125 deg. W), the 20 degree isotherm, and dynamic height, as well as a grid of wind vectors at the surface.  The user can use the "control panel" (at the bottom) to turn surfaces on or off, and to animate the monthly surfaces through the last 18 months of data.  The controls located in a dashboard below the "control panel" are part of the standard Cosmo Player controls and allow the user to rotate and zoom in on the object of interest.

Data from NOAA's Global Carbon Cycle Project (GCCP) are depicted in a similar manner (Feely et al., 1999, Fig. 3).  Here we use a similar animation scheme, but with the added benefit of colorbars and contours to aid the user.  We also add another layer of interaction: the surfaces are hyperlinks connecting HTML to the upper frame giving the user information about that surface.  As the cursor is moved over the CO2 surface, the value of CO2 at that location is displayed on the control panel.

B.	Seafloor Hydrothermal Vents:

A VRML world depicting a hydrothermal vent plume uses animated model output from NOAA's VENTS Program (Lavelle, 1997, Fig. 4).  Polygonal surfaces representing isotherm anomalies are rendered in succession to show the development of a plume.  This highly amorphous shape is rendered taking advantage of a technique known as Gouraud shading in order to eliminate the faceted look of the polygonal surface.  VRML output was obtained using the VTK visualization software to take advantage of various file-size decimation routines.
C.	 Fisheries-Oceanography:

An animated representation of fisheries-ocean data from NOAA's Fisheries Oceanography Coordinated Investigations (FOCI) program (Hermann et al. 1996) shows model bathymetry and fish larvae drift paths for the Shelikof Strait pollock spawning grounds (Fig. 5).  The spheres are a primitive VRML geometry and their position, orientation, and color can be manipulated to reflect the modeled movement of fish in this coastal region.  The companion paper (Hermann et al. 1999) describes how to add true depth perception for this and other worlds with the use of inexpensive stereo VRML visualization.  Two of the authors (Al Hermann and Chris Moore) have written scripts to generate VRML from model output for various software packages including Matlab and Ferret (an analysis package for gridded data sets). Java code was also developed to generate VRML from netCDF files.  These scripts, and all VRML worlds are accessible through NOAA's VRML web page [1].
D.	Chesapeake Bay:

VRML can interact with Java to create a myriad of 3-D and 2-D user interfaces.  Co-authors Glen Wheless and Cathy Lascara have created such a world with much success (Fig. 6).  It allows the user to choose variables from a Java applet Graphical User Interface (GUI) and 'fly' through the Chesapeake Bay, viewing any of a selection of standard hydrographic variables as sections that the user may turn on, raise to inspect, or turn off.  A comprehensive view of bay properties is quickly attained in this way.  The Chesapeake Bay application was created using an IDL [2] toolkit that the Virtual Reality/Visualization group at Old Dominion University developed [3].

E.	Hydrographic Data and GIS:

As part of a joint project between PMEL and the NOAA Alaska Fisheries Science Center (AFSC), in situ oceanographic data from the Chukchi Sea was put into VRML file format by utilizing the "Save as VRML" export feature in ArcView's 3D Analyst extension (Fig. 7).  Surfaces at several depths were created, and temperatures were color-contoured at these depths.  Individual conductivity-temperature-depth (CTD) cast locations were depicted by blue lines, and bathymetry was added using the ETOPO5 dataset.  The upper surface was rendered semi-transparent so that the user may compare the temperature of a lower surface by simply viewing it through the transparent upper surface.  The ETOPO5 dataset itself was rendered into a VRML globe (Fig. 8).  Using the lowest resolution available (60 minute) we created a single 4.5 Mb VRML file of 113,000 polygons.  The original version was a large and cumbersome file that took quite some time to download over the web.  As our experience with generating VRML from ArcView is growing we are applying techniques, e.g. substituting TINs for grids, to generate smaller VRML files that load more efficiently.

III.	Overview of VRML output from commercial software

While many software packages export VRML including ArcView (Fig. 7), Iris Explorer, Matlab, and Cosmo Worlds, no single package seems to produce animated, file-size-limited VRML code from arbitrary scientific data formats. We have begun development of a prototype VRML Data Explorer which will allow dynamic generation of VRML from data in netCDF formatted files, from a web page.  Our VRML Data Explorer utilizes a software package known as the Visualization Toolkit or VTK [4].  Frequently used in the health sciences for MRI imaging analysis, this package is a library of visualization algorithms written in object-oriented C++, and comes with wrapper code for Java as well as interpreted languages like Python and Tcl/Tk.  The power of VTK is in it's advanced 3-D visualization graphics (based on the OpenGL graphics standard - see companion paper), it's well-designed pipeline architecture, and the advanced algorithms for polygonal surface decimation.  While oceanography tends to produce huge data sets, and the web tends to balk at transferring large files, many of the surfaces in the demonstrations to follow were decimated using VTK to take advantage of these and other visualization algorithms.  

IV.	FUTURE DIRECTIONS

Virtual Reality is useful for the layperson and the scientist.  Immersive technology has shown how powerful a tool Virtual Reality can be: by viewing multidimensional fields in context, and by the ease of changing viewpoints and variables, a 3-D representation of data can give the scientist a heightened sense of presence, and greatly improve the ability to gain insight into complex dynamics.

Web-based virtual reality (VRML) can do this and more.  The 3-D experience can be shared.  The VRML specification [5] allows for the sharing of worlds with other people, including interactions between multiple users across the network.  People sharing a virtual world can see, talk, and interact with one another in the form of "avatars" - human representations in the virtual world.  The Sony Corporation, Blaxxun and Oz Interactive have teamed up to build a multi-user VRML standard.  The implications for this are quite impressive.  Two (or more) scientists at institutions that span the globe can view a data set in 3-D.  The standards body Web3D has instantiated a working group called Core Living Worlds [5] to standardize the interaction of users in a virtual 'world'.  With the increase in data transmission speed from the recent installation of the Next Generation Internet (NGI), we hope to prove the concept of shared worlds, for observed data and model outputs from projects such as the TAO network of El Niño monitoring buoys in the Pacific Ocean, the Fisheries Oceanography Coordinated Investigations (FOCI) fisheries-oceanography program, and the Global Ecosystem Dynamics Program (GLOBEC).

V.	Conclusion

VRML is an easy way to create and share interactive 3-D visualizations of environmental data.  It's ASCII representation makes it easy to read and transmit over the web, yet it is powerful enough to provide a true Virtual Reality experience.  Create your first VRML file and we predict you will increasingly find yourself sharing your latest oceanographic and atmospheric results with research collaborators half a world away.  Information presented in this paper are available on the web at 
http://www.pmel.noaa.gov/vrml.

VI.	Appendix A - a tutorial

The best way to show how easy VRML is to use is to help you to create some of your own.  This section will introduce the user to VRML by utilizing the ElevationGrid node to create a simple VRML file of ocean bathymetry.

The following is a truncated VRML file containing an ElevationGrid node:

#VRML V2.0 utf8						# This line is the mandatory first-line
 
Shape {
  appearance Appearance {
    material Material {
      diffuseColor 0.0 0.8 0.8  			# This line defines the color (RGB)
    }
  }
  geometry ElevationGrid{				# Here's the ElevationGrid
    xDimension 10						# This is the number of elements in x
    zDimension 15						# This is the number of elements in z
    xSpacing 1
    zSpacing 1
    height [							# Simply substitute you data here
      2.3 3.2 1.2 1.5 2.4 2.2 2.6 3.2 2.1 1.8
      0.2 1.0 3.2 4.2 5.6 8.6 4.3 4.2 4.1 3.8
      0.2 6.7 6.2 5.2 8.3 9.1 3.2 1.3 1.7 0.6
        #...							# 150 points total, with x varying fastest
    ]
  }
}

This simple file only requires a few short lines of typing (or cut and paste it from http://www.pmel.noaa.gov/vrml/elev_grid.wrl) [6], and then pasting in data from your data set.  This sample has a height field of size ten by fifteen.  You'll need to adjust the xDimension and zDimension according to your data set size (in VRML, the x-axis is to the right, the y-axis is 'up', and the z-axis is out of the page).  I'd suggest trying this out with any data set you happen to have at hand that lends itself to this format.  Simply load the above file from the web location given, cut out the data points and insert your own (with the x dimension varying fastest).  Then re-set the xDimension and zDimension and save the file with a ".wrl" extension.  The next step will be to download a viewer or plug-in.  Cosmo Player [7] is probably the most popular for PC's, but we have had success with many different browsers including Intervista's "World View" [8] (nice for the Mac), TGS's "3-Space Assistant" [9] (has stereo capability - see companion paper), and VRWave [10] (Java-based for Unix users).  Downloading and installing these VRML viewers are straight-forward and usually a matter of downloading the software, and double-clicking on the icon.  Rebooting is seldom necessary, and the whole process should take a few short minutes (depending on the download speed, of course).

I'll try to head off typical first-time blunders...

If your browser simply doesn't load the world, or doesn't recognize a file with the extension ".wrl" then either you haven't installed a VRML viewer or you need to join the 90's and download a more recent version of your internet browser - it is free, after all.  We have had good luck using the Netscape/Cosmo Player combination on PC's, and the Netscape/World View combination on Mac's.  VRWave is available for the Unix enthusiast.

If your browser loads the world, but you can't see anything use the controls and move around a bit in the world.  It does take some getting used to!  Sometimes the surface loads "behind" you.  Viewpoints can be set to take the user to a more suitable pre-defined viewing position.
If you still can't see anything you probably have a typo.  Instead of typing out the demo file try downloading it.  And make sure you replace only the data points and leave the various parentheses intact.

Once you are viewing surfaces and find something of interest and you'd like to make it a bit more fancy we suggest visiting one of the many VRML tutorial sites to learn a few easy things like setting viewpoints and creating animations.  See our VRML page for a list of tutorials and VMRL tools.  Some of the things you can do with VRML are on display at our VRML page [1].  The more advanced oceanographic VRML worlds tend to involve large data sets.  We have provided a range of different displays including smaller files involving gif-wrapped spheres, to multivariate data set browsers with animation capabilities.  You will note, while browsing, how there seems to be an upper limit on the file size that a typical user can download that depends both on the user's connection speed and patience.  We'd suggest trying to keep the file size below 1 Mb if you are hoping to share new visualizations over the web with the average user.  If you happen to be lucky enough to be a part of the Next Generation Internet (Internet 2) perhaps 10 Mb or so might be an appropriate guideline.

Acknowledgements. Our VRML development program has been funded by NOAA's HPCC Office.  The authors wish to thank Dai McClurg, Tropical Atmosphere Ocean (TAO) program,  Al Hermann and Elizabeth Dobbins, Fisheries-Oceanography Coordinated Investigations (FOCI) program, Bill Lavelle, VENTS program, and Dick Feely and Cathy Cosca, Global Carbon Cycle Project (GCCP) for their cooperation in sharing data for the visualizations herein.  Appreciation is extended to Tiffany Vance and Nazila Merati for their contributions of VRML produced by the ArcView software and Jon Callahan and the Ferret group for their collaborations in VRML.

Footnotes:

[1].  PMEL's VRML homepage:  http://www.pmel.noaa.gov/vrml

[2].  Interactive Data Language (IDL) developed by Research Systems, Inc:  http://www.rsinc.com

[3]. ODU's Virtual Environments Laboratory, http://www.ccpo.odu.edu/~vel

[4].  Visualization Toolkit (VTK) developed by Kitware, Inc:  http://www.kitware.com

[5].  VRML specification:  http://www.web3d.org/fs_specifications.htm

[6].  do-it-yourself VRML:  http://www.pmel.noaa.gov/vrml/elev_grid.wrl

[7].  Cosmo Player distribution available at: http://www.pmel.noaa.gov/vrml/cosmo/cosmo_win95nt_eng.exe

[8].  World View developed by InterVista, Inc:  http://www.intervista.com/worldview

[9].  3-Space Assistant developed by Template Graphics Software, Inc:  http://www.tgs.com/Demos

[10].  VRWave developed by the Institute for Information Processing and Computer Supported New Media (IICM), Graz University of Technology, Austria:  http://www.iicm.edu/vrwave

References:
Virtual Reality Modeling Language (VRML) standard: ISO/IEC 14772-1:1998 Information technology -- Computer graphics and image processing -- The Virtual Reality Modeling Language --Part 1: Functional specification and UTF-8 encoding 

Soreide, N.N., D.C. McClurg, W.H. Zhu, D.W. Denbo, and M.J. McPhaden (1998):  Web access to realtime data from the TAO buoy network in the Tropical Pacific Ocean. Ocean Community Conference '98, Marine Technology Society, 16-19 November 1998, Baltimore, MD.

ETOPO5: Data Announcement 88-MGG-02, Digital relief of the Surface of the Earth. NOAA, National Geophysical Data Center, Boulder, Colorado, 1988.

Feely, R.A., R. Wanninkhof, T. Takahashi, and P. Tans (1999):  Influence of El Niño on the equatorial Pacific contribution of atmospheric CO2 accumulation. Nature, 398, 597–601.

Lavelle, J.W. (1997):  Buoyancy-driven plumes in rotating, stratified cross flows: Plume dependence on rotation, turbulent mixing, and cross-flow strength, J. Geophys. Res., 102, 3405-3420.

Hermann, A.J., S. Hinckley, B.A. Megrey, and P.J. Stabeno (1996):  Interannual variability of the early life history of walleye pollock near Shelikof Strait as inferred from a spatially explicit, individual-based model, Fisheries Oceanogr., 5 (Suppl. 1), 39–57.

Hermann, A.J., C.W. Moore and N.N. Soreide (1999):  Inexpensive stereoscopic Virtual Reality for oceanic and atmospheric data visualization.  Bull. Amer. Meteor. Soc., this issue

Figures:

Fig. 1 - VRML Tropical Atmosphere Ocean (TAO) demonstration showing temperature sections, dynamic height, sea surface temperature, winds, and 20 degree isotherm.  The user can navigate through the world using the VRML controls at the bottom, and choose surfaces to animate from the control panel (just above the dashboard).  http://www.pmel.noaa.gov/vrml/taonew/frames.html

Fig. 2 - Southeast Bering Sea Carrying Capacity (SEBSCC) model output of sea surface height and temperature, with bathymetry below.  http://www.pmel.noaa.gov/vrml/sebscc/start_sebscc.html

Fig. 3 - Global Carbon Cycling Project (GCCP) animation showing surface pCO2 (upper), equatorial temperature section (colored, middle), and 20 degree isotherm (transparent grey).  The user can animate through the dataset using the control panel.  http://www.pmel.noaa.gov/vrml/gccp/frames.html

Fig. 4 - Model output of a hydrothermal plume from NOAA's VENTS program.  Red plume is a Gouraud-shaded polygonal surface of the 150 millidegree isotherm anomaly.  This plume rises 100-200 m above the seafloor before advecting laterally in ambient benthic ocean currents.  http://www.pmel.noaa.gov/vrml/vents/vents.wrl

Fig. 5 - Fisheries Oceanography Coordinated Investigations (FOCI) VRML demonstration showing Shelikof Strait bathymetry, fish-larvae advection animation, and Netscape/Cosmo Player VRML browser controls.  See companion paper for comparison with stereo VRML. http://www.pmel.noaa.gov/vrml/sebscc/shelikof/lag-multipath.wrl

Fig. 6 - Old Dominion University's Center for Coastal Physical Oceanography (CCPO) created this VRML/Java applet.  Chesapeake Bay bathymetry is shown with hydrographic sections of salinity shown at various locations throughout the estuary.  Data from various cruises is available for selection through the Java applet.  http://www.ccpo.odu.edu/~ties/Atlas/VRML/Bay/atlas.html

Fig. 7 - Standard hydrographic data from the Gulf of Alaska from ARC/INFO GIS software.  Top surface (transparent) and next two surfaces show temperature.  Blue lines show CTD location.  Lower surface is bathymetry from ETOPO5 data set. http://www.pmel.noaa.gov/vrml/ice90/demo.html

Fig. 8 - ETOPO5 data set VRML demonstration.  Color represents depth/altitude.  This large file was decimated using the VTK visualization library. http://www.pmel.noaa.gov/vrml/global/etopo.html