Technical Report. Efficient Generation of Iso-Surfaces from Volumetric Radar Data Using Marching Cube Technique

Similar documents
Indirect Volume Rendering

Contouring and Isosurfaces. Ronald Peikert SciVis Contouring 2-1

Scalar Algorithms: Contouring

Scalar Visualization

CSE 554 Lecture 5: Contouring (faster)

Isosurface Rendering. CSC 7443: Scientific Information Visualization

Data Representation in Visualisation

CSC Computer Graphics

Scalar Visualization

AUTOMATED 4 AXIS ADAYfIVE SCANNING WITH THE DIGIBOTICS LASER DIGITIZER

SURFACE CONSTRUCTION USING TRICOLOR MARCHING CUBES

6. Parallel Volume Rendering Algorithms

Topology Preserving Tetrahedral Decomposition of Trilinear Cell

CIS 4930/ SCIENTIFICVISUALIZATION

Volume Illumination, Contouring

Level Set Extraction from Gridded 2D and 3D Data

MARCHING CUBES AND VARIANTS

Lecture overview. Visualisatie BMT. Fundamental algorithms. Visualization pipeline. Structural classification - 1. Structural classification - 2

Data Visualization (DSC 530/CIS )

Decimation of 2D Scalar Data with Error Control

Visualizing Higher-Dimensional Data by Neil Dickson

Egemen Tanin, Tahsin M. Kurc, Cevdet Aykanat, Bulent Ozguc. Abstract. Direct Volume Rendering (DVR) is a powerful technique for

MATH DICTIONARY. Number Sense. Number Families. Operations. Counting (Natural) Numbers The numbers we say when we count. Example: {0, 1, 2, 3, 4 }

3D Volume Mesh Generation of Human Organs Using Surface Geometries Created from the Visible Human Data Set

Calculating the Distance Map for Binary Sampled Data

Chapel Hill Math Circle: Symmetry and Fractals

McIDAS-V Tutorial Displaying Level II Radar Imagery updated July 2016 (software version 1.6)

Generation of Hulls Encompassing Neuronal Pathways Based on Tetrahedralization and 3D Alpha Shapes

CIS 467/602-01: Data Visualization

Scalar Field Visualization. Some slices used by Prof. Mike Bailey

A Study of Medical Image Analysis System

Efficient Volumetric Ray Casting for Isosurface Rendering

6th Grade Math. Parent Handbook

Scientific Visualization. CSC 7443: Scientific Information Visualization

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions

View-dependent Polygonal Simplification

CS 465 Program 4: Modeller

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

coding of various parts showing different features, the possibility of rotation or of hiding covering parts of the object's surface to gain an insight

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Data Visualization (DSC 530/CIS )

A New Approach of Seed-Set Finding for Iso-Surface Extraction

3D Modeling of Objects Using Laser Scanning

Visualizer An implicit surface rendering application

Geometric Representations. Stelian Coros

Terrain Analysis. Using QGIS and SAGA

Introduction to Mobile Robotics Techniques for 3D Mapping

Ray Tracing Acceleration Data Structures

Approximation of Isosurface in the Marching Cube: Ambiguity Problem.

Lecture 3 Sections 2.2, 4.4. Mon, Aug 31, 2009

03 - Reconstruction. Acknowledgements: Olga Sorkine-Hornung. CSCI-GA Geometric Modeling - Spring 17 - Daniele Panozzo

9. Three Dimensional Object Representations

Solid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects

Polygonization of Implicit Surfaces

Definition of Basic Polar Data Product

LAPLACIAN MESH SMOOTHING FOR TETRAHEDRA BASED VOLUME VISUALIZATION 1. INTRODUCTION

form are graphed in Cartesian coordinates, and are graphed in Cartesian coordinates.

Lecturer 2: Spatial Concepts and Data Models

A Data Dependent Triangulation for Vector Fields

Chapter Eight: Contents

Solid Modelling. Graphics Systems / Computer Graphics and Interfaces COLLEGE OF ENGINEERING UNIVERSITY OF PORTO

Special Topics in Visualization

Marching Squares Algorithm. Can you summarize the marching squares algorithm based on what we just discussed?

Visualization. Images are used to aid in understanding of data. Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [chapter 26]

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 24 Solid Modelling

Visualization Toolkit(VTK) Atul Kumar MD MMST PhD IRCAD-Taiwan

CPSC / Sonny Chan - University of Calgary. Collision Detection II

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005

Example: The following is an example of a polyhedron. Fill the blanks with the appropriate answer. Vertices:

The Ultimate Maths Vocabulary List

A NON-TRIGONOMETRIC, PSEUDO AREA PRESERVING, POLYLINE SMOOTHING ALGORITHM

CS 6143 COMPUTER ARCHITECTURE II SPRING 2014

Planar Point Location

Surface Construction Analysis using Marching Cubes

Computer Graphics and GPGPU Programming

Contours & Implicit Modelling 4

Processing 3D Surface Data

Available online at ScienceDirect. Energy Procedia 69 (2015 )

arxiv: v1 [math.na] 2 Aug 2013

Triangle meshes I. CS 4620 Lecture Kavita Bala (with previous instructor Marschner) Cornell CS4620 Fall 2015 Lecture 2

CHAPTER 5 3D STL PART FROM SURFER GRID DEM DATA

What is visualization? Why is it important?

Who has worked on a voxel engine before? Who wants to? My goal is to give the talk I wish I would have had before I started on our procedural engine.

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Triangle meshes I. CS 4620 Lecture 2

Aston Hall s A-Z of mathematical terms

Voxelization in Common Sampling Lattices

The principles of CCTV design in VideoCAD

A triangle that has three acute angles Example:

Data Visualization (CIS/DSC 468)

Image-Space-Parallel Direct Volume Rendering on a Cluster of PCs

Introduction to volume rendering. Paul Bourke

Using Web Camera Technology to Monitor Steel Construction

Lecture 17: Solid Modeling.... a cubit on the one side, and a cubit on the other side Exodus 26:13

Scientific Visualization Example exam questions with commented answers

Advanced Ray Tracing

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

Topology Preserving and Controlled Topology Simplifying Multiresolution Isosurface Extraction

CS 614 COMPUTER ARCHITECTURE II FALL 2005

Black generation using lightness scaling

Transcription:

Technical Report Efficient Generation of Iso-Surfaces from Volumetric Radar Data Using Marching Cube Technique (Jianting Zhang, Last Modified 2/5/2004) Abstract... 2 Introduction... 4 Weather Radar Data... 5 The Marching Cube Algorithm... 7 Efficiency Improvements... 9 The Static Volume Tree Structure... 10 The Minimum Bounding Curvilinear Boxes Algorithm... 12 Implementation and Results... 16 Conclusions and Future Work Directions... 19 References... 21 1

Abstract In a three dimensional space (x,y,z), an iso-surface is a surface that satisfy F(x,y,z)=C. Marching cube technique has been extensively used for generating isosurfaces from rectilinear grids, 3-D medical images for example. Iso-surface, like its 2-D counterpart iso-line, has wide applications in visualizing metrological data. The recently released IDV package from UNIDATA (based on VisAD) provides capability of generating iso-surfaces by using marching cube algorithm. Unfortunately, volumetric weather radar data in the form of (elevation, azimuth, range) tuple is not rectilinear and can not be directly used with the VisAD and IDV. Although it is possible to interpolate the curvilinear volumetric radar data into rectilinear grids before feeding them to these packages to generate iso-surfaces, the interpolation is time-consuming. Furthermore, the behavior and the accuracy of popular interpolation methods are not well understood when they are applied to volumetric weather radar data. In this report, we propose to use the marching cube algorithm directly on the curvilinear radar space to generate iso-surfaces for volumetric weather radar data. Based on the observation that the marching cube algorithm is distributed in nature, i.e., each cube (rectilinear or curvilinear) generates its triangles (the basic components of an isosurface) independently, we can march on two neighboring elevation scans one at a time. This observation eliminates the requirement in the IDV/VisAD package that the length of one dimension must be the same along all other dimensions, i.e., no interpolation is required. Previous results show that typically only about 10% total data points have valid values. The data points with high reflectivity values that reflect a severe storm and 2

interesting to meteorologists are even less. Thus it is inefficient to march through all the data points in a whole volumetric weather radar data set to generate iso-surfaces. We propose to build a static tree for a volumetric radar data set to eliminate unnecessary marching. In addition, given a rectilinear cube in Cartesian space (which is often used as Region of Interest -ROI), we provide an algorithm to compute the minimum bounding curvilinear boxes in radar data space for each intersected elevation scan. The algorithm can be used for marching only the portion of radar space corresponding to a ROI if no index for radar data is available. It can also be used as an additional criteria to reduce the search space of the tree index if the index is available. Our preliminary results show that marching directly on radar data space to generate iso-surfaces without interpolation preserves the original accuracy distribution which is easy to understand. Overlapping a set of iso-surfaces with gradually changing iso-values reveals certain storm structures which are valuable to domain experts. 3

Introduction Visualizing weather radar data is very useful for meteorologists to discovery weather patterns. Many existing radar data display packages only provide 2D visualization functionality while 3D visualization is more preferable in many cases. The three basic options for displaying a three-dimensional data set on a two-dimensional computer screen are (Schroeder, 1999): 1) Slicing the data set with a cross-sectional plane. 2) Surface rendering. Surfaces of the objects in the data set are extracted and represented as triangles, which are typically rendered by a hardware accelerated renderer. 3) Volume rendering. Assign transparency and/or color to data items in the data set and then view the entire set from any angle. The WDSSII package has already supported 3D visualization using slicing techniques. For example, it allows comparing the values of the points along the sides of a 3D box or a cross section plane. Here we report our work in 3D weather Radar data visualization using surface rending techniques. The reset of this report is arranged as follows. Section 2 introduces some features of weather radar data. Section 3 presents the marching cube algorithm. Section 4 provides the static tree structure and the method to find the minimum bounding curvilinear boxes. Section 5 demonstrate some preliminary results and finally Section 6 is conclusion and future work directions. 4

Weather Radar Data A volume of a radar data set consists of several elevation scans. Each elevation scan is characterized by an elevation angle and each pixel in an elevation scan is characterized by two parameters: Azimuth and Range. A typical volume of radar sets consisting 9 elevation scans is shown in Fig 1. 06.00 04.30 03.35 00.50 01.45 09.90 14.60 19.50 02.40 Fig. 1 The Nine Elevation Scans in a Volume of Radar Data Set Although a data point (or a pixel) in a radar volume can be uniquely identified by the (elevation, Azimuth, Range) tuple, the structure of a radar volume (which we call radar data space) is more complex than a regular grid that the length of one dimension is the same along all other dimensions (eg, 10*20*30). In the example shown in Fig.1, the nine elevation scans have the range numbers of 460, 356, 336, 268,216,176,110,85,70 respectively. This unique feature prevents us from using the marching cube component implemented in VisAD/IDV packages directly. 5

There are three possible solutions to use regular 3D visualization packages (such as VisAD/IDV) in visualizing volumetric radar data. The first solution is to treat the radar data set as a irregular data set. Thus we need to do Delaunay triangulation before generating iso-surfaces. However, triangulating 3D points is very expensive. Among the three triangulation methods implemented in VisAD, only Watson and Clarkson can be applied to 3D points. Watson algorithm can not terminate in reasonable time even for data points at the 10 4 scale. For Clarkson algorithm, it takes about 3 minutes to triangulate 6808 points and 7 minutes for 10580 points. Clearly this solution is not feasible in a near real-time interactive visualization setting since the data points in a radar volume is in the order of 10 6 as discussed below. The second solution is to define a regular grid by taking the maximum number of the dimension that has different numbers along the dimensions. For example in fig.1, the maximum number of the nine elevation scans along the range dimension is 460, thus we can define a regular grid of 9*360*460. However, this will increase the data set size from 360*(460+356+336+268+216+176+116+85+70)= 749880 to 9*360*460=1490400, almost 100% larger. In addition, since we are handling curvilinear data rather than rectilinear data, we need to store the Cartesian coordinates explicitly for all the data points in VisAD, which requires three more time storage than just storing the values. Generally speaking, this solution will bring significant storage and computation overheads. The third solution is to transfer the radar data space into Cartesian data space through interpolations. The major problem with this solution is that interpolation is very 6

time-consuming. In addition, the behavior and the accuracy of popular interpolation methods are not well understood when they are applied to volumetric weather radar data. We next present a brief overview of the Marching Cube algorithm and our proposed method to march the data set directly on radar data space instead of Cartesian space. The Marching Cube Algorithm Marching Cube algorithm (MCA, Lorensen, 1987) has been the de-facto in generating iso-surfaces. It explores the notion of cell independence such that the isosurface can be extracted locally on a per cell basis. For each cell (or cube), there are eight vertexes and twelve edges. For a given iso-value, if the value of such a vertex is greater or equal to the iso-value then the vertex is assumed to be inside of or on the iso-surface. On the other hand, if the value is less than the iso-surface then the vertex is assumed to be outside of the iso-surface. Since a vertex can be either inside or outside the iso-surface, there are 2 8 =256 cases for a cube and each case is corresponding to a topological setting of the iso-surface. For the twelve edges, each of them will intersect the iso-surface only if one of its vertexes is inside the iso-surface and the other is outside the iso-surface. Each of the 256 cases corresponds to a different number of combinations of the intersections among the edges and the set of triangles (no less than one and no greater four) to connect the intersection points. These triangles will be used as the approximation of the iso-surface intersecting the cube. A look up table can be built to enumerate the 256 topological settings. Using a simple linear interpolation technique, the coordinates of the intersection point can be computed based on the values of the two vertexes and their coordinates. We 7

have implemented a small Java program using Java3D to show the 256 cases. The views under the four rotation angles along the y-axis are shown in Fig. 2. Note that we assume the intersection is located in the middle of an edge if there is an intersection. View Rotation Angle : π/2 View Rotation Angle : 0 View Rotation Angle : π View Rotation Angle : 3π/2 Fig. 2 Views Under Four Rotations of the 256 Topological Settings of MCA 8

It is worth to note that MCA does not require the eight vertexes to form a cell that is strictly rectilinear. Actually a convex curvilinear cell satisfies all the underlying assumptions of the MCA. This is also the basis for the second solutions we provide in Section 2. However, by observing that each cell builds its portion of an iso-surface (triangles) independently (i.e., the MCA is a distributed or a local algorithm), we can build iso-surfaces with significant less overheads comparing with the intuitive application of MCA on radar data space. The key idea of our application of MCA on radar space is that we march on the cells of two successive elevation scans one by one. In this case, we do not need to allocate the storage for non-exist points in the elevation scans other than the lowest 00.50 one (which has the maximum number of ranges/gates) to satisfy the requirements of VisAD/IDV. By doing so, the time to run MCA is also reduced at the same time since the complexity of MCA is linear with the number of cells in a data set. Efficiency Improvements Previous results show that typically only about 10% total data points have valid values (Djurcilov, 2000). The data points with high reflectivity values that reflect a severe storm and interesting to meteorologist are even less. Thus it is inefficient to march through all the data points to generate iso-surfaces. At the mean time, domain experts might want to study the storms in a particular area (2D or 3D) instead of the whole volume data. It is more natural for them to draw a 3D box in Cartesian space rather than specifying the ranges of (elevation, radial, range) tuple. We solve these problems by providing a static volume tree structure that allows retrieving relevant cells and an 9

method to find the minimum bounding curvilinear boxes in radar data space given a 3D box in Cartesian space. The Static Volume Tree Structure Several tree structures, such as Octtree (Wilhelms, 1992) and Interval Tree (Cignoni, 1997), has been used to speed up iso-surface construction. Obviously, using a tree structure is advantageous only if multiple iso-surfaces (with the same or different iso-values) are constructed from a data set since building tree structures takes at least linear cost with respect to the data set size. To the best of our knowledge, no tree structures have been implemented in VisAD/IDV packages. We consider a tree structure that can speed up iso-surfaces construction desirable for several reasons. First, the interactive nature of our application usually requires generate iso-surfaces multiple times, either with the same or different iso-values. Second, we allow constructing iso-surfaces with increasing/decreasing isovalues to explore the 3D structures of storms which requires generating iso-surfaces multiple times. Third, the response time is crucial in our application. It is beneficial to build the tree structure offline and improve the response time for online construction of iso-surfaces. Building tree structures dynamically often requires O(n*logn) time. Instead of using dynamic Octtree structure, our static volume tree structure is more like a pyramid defined on radar space which requires linear time (as shown below). We associate the following parameters with each tree node: the level of the node (level), the starting and the ending positions along each of the three dimensions (start i and end i ), the minimum and the maximum value of the pixels under the tree rooted at the node(vmax and vmin), 10

the number of valid points under the tree rooted at the node (num_valid) and a pointer pointing to its children nodes (children). To facilitate the tree construction process, we also record the pointer to the node s parent (parent) and the sequence numbers of the node within its parent node along the three dimensions (seq i ). These numbers will be used to compute the starting and the ending positions along each of the three dimensions in radar space. Assuming the division hierarchies along the three dimensions are he i, hr i and hg i respectively (where i=1 to l, the number of levels), we can prove that, in the worst case, the total number of nodes of the tree (and hence the cost to build the tree) is l 1 i ( i= 1 j= 1 ( he j * hr j * hg j l )). Since ( he * hr * hg ) equals the total number of the points j= 1 j and the number of levels is usually far less than he l *hr l *hg l (the number of cells/points at a node of most-detailed level), the space and time complexity to build the tree is only a fraction of the number of points in a data set. For the radar volume shown in Fig. 1, we define four levels along the three dimensions on radar space as shown in Fig.3. The whole volume contains 1*3*4=12 level 1 grids (red), each level 1 grid contains 1*4*4=16 level 2 grids (green) and each level 2 grid (blue) contains 3*5*5=75 level 3 grids. Finally each level 3 grid contains 3*6*6=108 cells/points/pixels. Note that the numbers in the three dimensions of the radar data space are 1*1*3*3=9, 3*4*5*6=360 and 4*4*5*6=480 respectively. For those grids that are outside of radar space, they and their parents will be eliminated to preserve space. Assuming level, seq i, start i, end i (i=1,3) are short integer type (2 bytes), the vmin and vmax are float data type (4 bytes), num_valid is integer type (4 bytes) and the pointers (children and parent) are integer type (4 bytes), each node takes j j 11

2+3*(2+2+2)+4+4+4+4+4=40 bytes. The number of nodes in the tree is 8665 and the total size of the tree is 362160 (about 300k) byes, which is considerably small. Fig. 3 A static Volume Tree Structure For the Radar Data in Fig. 1 Although the static volume tree is built primarily for speeding up iso-surface rendering, it might be very useful for other applications, such as multi-level storm motion estimation based on block matching (Jung, 2002) or other optical flow algorithms. The Minimum Bounding Curvilinear Boxes Algorithm Given the eight corner points of a cube (Region of Interest-ROI) in Cartesian space, the transformation algorithm finds the beginning and the ending positions of (radial, range) tuple in each elevation scan that completely encloses the intersection of the cube and the elevation scan. Before we present the algorithm for 3D case, let us look at the 2D case where both the ROI and the elevation scans are projected to the earth surface (assuming flat for a small area). Computing the range along the gate dimension is 12

relatively easy since we can just choose the minimum and the maximum gate numbers. However, computing the range along the radial dimension is more complex. There are six cases as shown in Fig. 5(a). In case 1 the ROI is within a single quarter and we only need to choose the minimum and maximum radials. There are four sub-cases in case 2 where the ROI intersects with two consecutive quarters. The minimum and maximum radial numbers in sub-cases 21, 22 and 23 are determined similar to case 1. For sub-case 24, we take the larger azimuth of the two corner points who falls into the fourth quarter (their azimuth angles are negative). In case 4, the ROI is within the four quarter and its azimuth is between [0,360]. R max 0 A max 1 24 1 R min 23 4 21 A min 1 22 1 (a) (b) Fig. 4 Finding Radial/Azimuth Ranges in Projected 2D Case Now we turn to 3D case. We assume a more realistic Beam Path model (Doviak, 1992) rather than an ideal cone model, although the proposed method is also applicable under the ideal cone model. Note that even in the ideal cone model, although the correspondence between the radar space and the Cartesian space is straightforward for a single point, to the best of our knowledge, we are not aware of any existing method to find the minimum bounding curvilinear box (a related work in finding intersection points 13

of convex objects is available at http://www.magic-software.com/intersection.html). We next present the proposed method. By using single point conversion formula (LLHtoAzRangeElev) we can easily know the minimum and the maximum elevation scan angles defined by the base and height in Cartesian space and then we can determine which elevation scans the ROI might intersect. For each of the possible intersecting elevation scans, we can further determine the starting (sg) and the ending(eg) gate numbers based on the height base and its range using binary interpolation. However, this range is not the minimum bounding gate range as shown in Fig. 5(a). To determine starting and ending gate numbers of the minimum bounding range, we need to further consider the constraints imposed by the range of latitude and longitude. We first apply the 2D case algorithm by using only latitude/longitude information to obtain the type that the 2D ROI in the 2D projected elevation scan as well as the distances from the center to the four points in the projected plane. Note that the range along the azimuth dimension (stating and ending radials) in 2D case is the same as in the 3D case and the intersection type in 2D case is still valid in 3D case. eg 24 sg' eg' 23 21 sg 22 (a) (b) Fig. 5 Determining Gate Range Using Both Height and Lat/Lon Constraints 14

Since the relationship between the gate number in 3D and its 2D projection is monotonic, we can again use binary search to determine the exact intersection points of the ROI and the elevation scan. The binary search takes the (sg,eg) as the starting and ending constraints. The searching direction is determined as follows: let s and e be the two ends of the search range, p be the middle point, if the distance between the radar center and the 2D projection is greater than the distance between the radar center and the point to be projected, then we search (s,p) otherwise we search (p,e). For 2D intersection type case 4, i.e., the ROI intersects with all the four quarters, the beginning gate number is determined by the height constraint (sg). For the four subcases 21,22,23 and 24, the beginning gate number is determined by the intersections with the four axis (Fig. 5(b)) after applying the above binary searches. For case 1, the beginning gate number is the minimum computed from the above binary searches of the four points in the 2D projection plane (height=0). For all cases, the ending gate number of the gate range is the maximum from the binary searches. Fig. 7 Computing Curvilinear Minimum Bounding Boxes from a Cartesian ROI 15

An example showing the minimum bounding boxes in radar space for a ROI in two elevation scans is provided in Fig. 7. Implementation and Results Currently we have implemented the direct radar space marching cube algorithm using C++ and Java within the WDSSII framework. The static volume tree structure has been implemented in C++ and the curvilinear minimum bounding box algorithm has been implemented in Java. Fig. 8 and Fig. 9 shows an overview of the isosurfaces with increasing iso-values (radar reflectivity) of 20, 25 and 30 DBZ respectively. The data is taken from the virtual volume of KFWS at 1995/05/04 08:06:19UTC. Fig 9 is the combination of Fig. 8 and the static volume tree of the data set. In our C++ implementation, user can turn on/off the tree drawing by a simple left mouse double click. The tree provide the information of the distribution of the whole data set. We could have colored the tree nodes with colors in terms of min/max value pair rather than their levels. This will be left for future work. Fig. 10 and Fig. 11 shows a close look of the same isosurfaces, without and with the overlap of the tree structure respectively. By having the iso-surfaces with lower isovalues take different degrees of transparency, we can clearly see the structures of storms in the data set. Overlapping the tree structure might be more meaningful in close-looks than in overviews since we can see which topological type a triangle in the iso-surfaces belongs to when compared against its bounding curvilinear cube (represented by a tree node). Based on the feedbacks from the domain experts, if there are many stand-up triangles, i.e., triangles connecting consecutive elevation scans, a storm might be indicated. 16

Fig. 8 Overview Without Volume Tree Fig. 9 Overview With Volume Tree 17

Fig. 10 Close Look Without Volume Tree Fig. 11 Close Look Without Volume Tree 18

Conclusions and Future Work Directions The iso-surface based 3D interactive visualization environment allows domain experts to visualize the storms and other weather patterns in a new way. Compared with visualization based on slicing techniques, the more sophisticated iso-surface based 3D visualization technique is able to provide 3D topological information of the visualizing data set, which is increasingly important in understanding weather patterns. In this study, we proposed to construct iso-surfaces directly on radar data space which does not require controversial interpolation and reduce storage and computation overheads as well. To further improve the construction efficiency, we provided a static volume tree structure which allows marching only on the relevant cells rather than all the cells in the data set. We also provided an algorithm to find the minimum bounding curvilinear boxes in radar space in the form of (elevation, azimuth, gate) tuple for a 3D ROI in Cartesian space, this again allows us to handle only a portion of radar data that users are interested in instead of the whole data set. By combining these two efficiency improvements, it is possible to construct iso-surfaces by using only a small fraction of the radar data that are relevant to the iso-surfaces and the construction speed might be significantly improved. Overlapping the tree structure with the iso-surfaces further enables users to perceive the types of triangles in the iso-surfaces and possibly, whether a storm is indicated. For future work, first of all, we notice that the constructed iso-surfaces sometimes looks sharp and abrupt. We are considering smoothing the data set by applying a low pass filter before iso-surface construction. Second, we want to add more interactive features during the visualization process. For example, we can popup a window and show the 19

min/max values as well as the topological types of triangles associated with a static volume tree node to help uses gain more insights into the distribution of the data set and the MCA algorithm. Third, we are planning to integrate the Java version of the proposed direct MCA algorithm along with the static volume tree structure into the VisAD/IDV package to benefit the radar data visualization community. Finally, we notice that the resolution along the elevation dimension is not proportional to the resolutions along the radial/gate dimensions in the current weather radar set, which limits the accuracy of the constructed iso-surfaces. It might be interesting to apply the proposed method to radar data sets that have higher resolution along the elevation dimension (possibly the phased array radar) for 3D weather pattern visualization. 20

References 1. Paolo Cignoni, Paola Marino, Claudio Montani, Enrico Puppo, Roberto Scopigno, Speeding Up Isosurface Extraction Using Interval Trees, IEEE Transactions on Visualization and Computer Graphics, vol. 3, no. 2, 158-170, 1997 2. Suzana Djurcilov, Alex Pang: Visualizing Sparse Gridded Data Sets. IEEE Computer Graphics and Applications 20(5): 52-57 (2000) 3. Richard J. Doviak, Dusan S. Zrnic, Doppler Radar and Weather Observation, Academic Press INC, 1992 4. S.-M. Jung, S.-C Shin, H.Baik,; M.-S Park, Efficient multilevel successive elimination algorithms for block matching motion estimation, IEE Proceedings on Vision, Image and Signal Processing, Volume: 149 Issue: 2, April 2002 5. Will Schroeder, Hen Martin, Bill Lorensen, The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics, 2 nd Edition, Prentice Hall PTR, 1997 6. J. Wilhelms and A. V. Gelder. Octrees for faster isosurface generation. ACM Transactions on Graphics, 11(3):201-227, July 1992 21