![]() |
![]() |
![]() |
![]() |
1
The Data Visualization Kit
This chapter introduces the Data Visualization Kit and the many visualization techniques that it provides.
The AVS/Express Data Visualization Kit is a collection of tools that define, manipulate, and transform numeric data arrayed in coordinate grids in space.
It consists of the following major components.
Defined in V, and interpreted by the AVS/Express Object Manager at runtime, the Field data type is a unified hierarchical data schema that is capable of describing:
- One, two, and three (or more) dimensional uniform, rectilinear, and irregular coordinate grids that hold scalar or vector data at each grid node.
- Unstructured cell data in a variety of one, two, and three dimensional cell types that hold scalar or vector data at each node, and data for the cell as a whole.
- Geometric data composed of points, polylines, polytriangles, or arbitrary polygons, with colors, normals, and uv(w) 2D and 3D texture mapping information.
Getting your data into the Field data format is the key to visualization using AVS/Express. Unlike most other visualization data types, it is never necessary to write code to convert the Field data type to a geometry data type before viewing - the AVS/Express Graphics Display Kit renders Fields directly.
To find out about getting your data into the Field data format, see Visualizing Data With AVS/Express
Null data ("missing values") are supported. Arrays of fields and multi-block data (data in several disjoint grids) are supported.
The Field data type schema is defined in v/fld.v
For complete documentation of the Field data type schema, see Chapter 2, "AVS/Express Field data type"
AVS/Express comes supplied with a large collection of visualization modules (the base modules), macros, and geometries that can be connected together using the Network Editor's visual programming facility to create scientific visualization applications from Field data.
Without coding, the user can combine such sophisticated visualization techniques as:
- Subsetting data - Thresholding, clamping, downsizing, cropping, extracting scalars from vectors or assembling vectors from scalars, cutting, and slicing. The cutting and slicing tools can be of any shape: either one of the supplied geometry fields, a user-defined shape, or derived from another operation such as taking all data outside an isosurface.
- Data distribution - Isolines, isosurface, isovolume, contours, and probing.
- Vector techniques - Streamlines, particle advection, magnitude, divergence, gradient, curl.
- Data analysis and representation - 2D and 3D texture mapping, external edges, external faces, bounds, user-entered mathematical operations, volume integration.
The "DV" base modules (DVcut, DVstream, DVdata_math, and so on) are akin to low-level functions. They perform one basic operation on a defined Field input and produce a new, transformed Field output.
Base modules have no user interface widgets to control their parameters. Rather, users compose their own user interfaces using either the AVS/Express supplied User Interface Kit widgets, or using widgets that they code and import into the system.
The DV base modules are defined in v/dv.v.
Visualization macros (cut, streamlines, data_math, and so on) are higher-level visualization tools, very similar in appearance and behavior to AVS 5 "modules." Macros are small subnetworks of DV base modules already connected together, with user interface widgets (dials, sliders, radio buttons) already attached, forming one logical unit that performs a useful operation.
For example, the advector macro that does particle advection is actually a subnetwork composed of a series of hierarchical macros that are in turn composed of the base modules DVstream, DVloop, DVadvect, DVglyph, and various UI widgets.
But one need not be aware of this underlying hierarchy to use the advector macro. Simply drag the advector icon into the Network Editor's workspace. Its widgets appear organized together on a Module Stack panel, and then you can connect suitable input modules or macros and an output renderer and begin work.
Macros are defined in v/modules.v.
To make it easier to construct applications composed of DV base modules, but with the developer's own user interface, the Data Visualization Kit provides mid-level macros that collect together all parameters from all DV base modules that make up a logically functional network, but stripped of the supplied user interface that would make it a visualization macro. The input ports on these DVMnameParam macros can be connected to the user interface widgets that the developer designs.
DVM macros are defined in v/dv_macro.v.
DVM macros are not documented separately in this manual.
These modules convert simple arrays of data into the Field type. If you have data from a simulation or experiment, these modules make it simple to import your data arrays into AVS/Express.
netCDF is a standard portable data storage format, widely used in computational science. These macros allow you to store an AVS/Express object including fields or networks in a portable storage format, and also import data in standard netCDF format.
Geometries are Fields that contain no data, only a grid of cells and coordinates. These coordinate grids describe various useful objects (planes, diamonds, 2D axes, 3D axes, arrows, lines, and so on) that can be used in visualization networks as sampling or slicing objects, as data probes, to represent vector quantities, and to act as scaled and colored cuberilles.
Geometries are defined in v/geoms.v.
The Field data that the DV macros and modules manipulate is stored in the Object Manager. When the method (C function) that underlies a base module is called, the function must get its input Field data from the Object Manager, perform its operation, then store the resulting output Field data back into the Object Manager so that base modules downstream in the network (or a Graphics Display Kit renderer) can find it. (A base module can copy the data back and forth from the Object Manager, but more commonly it merely gets and returns pointers to large arrays of data.)
The FLD data access library contains some 150 routines that, for each subobject in the Field data type, get and set that subobject in the Object Manager. The FLD library is tailored to the Field data type, making it a convenient mid-level interface to the Object Manager that is simpler to use in visualization applications than the low-level OM Object Manager library from which it is written.
Note that you can also use the OMX or UCI libraries to access Field data type subelements. See the Object Manager documentation for details.
The source to the FLD field data access library is included in src/fld.v.
This manual also documents a set of modules that make up the Image Processing Kit.
The Image Processing Kit consists of:
- the ip_Image data type
- modules that convert from Field format to ip_Image format and back again
- some 40 IP imaging processing modules that perform typical image processing functions (IPzoom, IPedge, IPdilate, IPerode, and so on)
You can combine the IP image processing modules into networks that process Field data by surrounding the IP modules with Field-to-IP and IP-to-Field conversion modules.
The IP macros with user interfaces are defined in v/ip.v.
The IP base modules and IP data type are defined in v/ip_pkg.v.
![]() |
![]() |
![]() |
![]() |
![]() |
Copyright © 2001 Advanced Visual Systems
Inc.
All rights reserved.