This is a description of my mid-semester project for CMPS 290b / Scientific Visualization Seminar

sequence of frames of cloud development from hurricane isabel

The assignment in this case was to download a set of data files from a simulation of Hurricane Isabel (courtesy the Visualization and Graphics Group at NCAR) and to develop a meaningful visualization of the data. I chose to visualize cloud water density, precipitation, pressure and wind flow. Cloud density, precipitation and pressure were displayed via volume rendering, while the wind data was displayed via editable interactive streamlines.


Volume Rendering


Streamlines

Streamlines were created through Euler integration of the wind UVW vector field. Some difficulty was present in the transformation between the curvilinear lattitude-longitude grid of the data array, and the orthogonal grid of the display. The technique I used to solve this was to transform each local segment of the curvilinear grid onto the orthogonal display space, assuming local linearity as a decent approximation before each integration step. Naturally integration errors occur due to this, but I felt the integration step could be set to a sufficiently small quantity where this wasn't noticable and the time to compute each streamline would still be masked by the time to volume render the data.

In order to allow clarity of visualization of the streamlines, while simultaneously allowing some degree of resolution in flow visualization, I adopted the following algorithm. Rather then displaying a dense field of streamlines, I displayed a few (32) sparse streamlines with clearly visible objects at their origins. Clicking on these objects allows the user to move the origin of the streamline, which turns green while being edited, as seen in the figure below. Wind speed is indicated by the size of bumps displayed at every n integration steps along the streamline, and also implicitly by the distance between these bumps. The bumps along the streamlines are shaded to give a sense of depth.

Editing is allowed in two modes. When holding down the left mouse button and clicking on the streamline, its origin is constrained to follow the projection of the mouse pointer onto the x-y plane on which the streamline currently resides. When holding down the right mouse button, the origin is constrained to move in the a-z plane, where "a" is the axis among {x,y} that is most closely aligned to the screen.

The volume field displayed in the screenshot below is one of precipitation.


Multiple Datasource Visualization and interactivity

In addition to interactivity in the transfer function and streamline origin, I also implemented interactivity in the view position, the data field, and the animation step. The sequence of images at the very top of this document is a series of images of cloud density at various animation steps.

The camera is constrained to rotate about a center anchor point. Left mouse button rotates the view in yaw-pitch space, right mouse button zooms towards and away from the anchor pont, and middle mouse button translates the anchor point in a plane parrallel to the screen.

Interactive display of pressure, precipitation and cloud density volume fields was facilitated via the simple trick of allowing the user to switch volume fields at the click of a keyboard button. Each volume field remembered its particular transfer function, so a carefully crafted transfer function for cloud data wouldn't have to be recreated after snapping to view pressure or precipitation data.

While cloud and precipitation density are both important to the physical mechanism of the hurricane, and help give a sense of what the phenomenon actually look like, no study of a hurricane would be complete without display of the raw fluid dynamics concepts of pressure and wind flow. Below is a volume rendering of the pressure field with stream tracers in the wind field. The ability to snap between this visualization, and one of cloud or precipitation density from the same viewpoint, not only allows the user to compare water and pressure in the same region, but also helps gives a context for pressure data by allowing comparisons to the more physically visible water and precipitation data. Below is a visualization of the pressure field.

Turning the streamlines on/off was also enabled, as seen in the pictures below.

hurricane_underside_with_streamlines.jpg hurricane_underside_no_streamlines.jpg

Display of the North American coastline near the hurricane was enabled using a very simple hack. In each volume field, certain voxels were marked as having invalid data (pressure and wind speed make no sense within the landmass of the earth). Displaying these as white, rather then failing to draw a voxel at these spots altogether, gave a view of the coastline in the context of the hurricane, as seen below

precipitation_coastline_and_streamlines.jpg