Category
Function
Assigns an appropriate glyph to each point in a data field.
Syntax
glyphs = AutoGlyph(data, type, shape, scale, ratio, min, max);
Inputs
Name | Type | Default | Description |
---|---|---|---|
data | data field | none | set of points to which glyphs will be assigned |
type | scalar, string, field, or group | input dependent | glyph type |
shape | scalar | 1.0 | factor to describe shape of glyph (must be greater than 0) |
scale | scalar | 1.0 | scale factor for size of glyphs (must be greater than 0) |
ratio | scalar | 0.05 or 0 | ratio in size (scalars or vectors) between smallest and largest glyphs (must be greater than or equal to 0) |
min | scalar or field | min of data value or 0 | data value that gets minimum-size glyph |
max | scalar or field | max of data | data value that gets maximum-size glyph |
Outputs
Name | Type | Description |
---|---|---|
glyphs | color field | set of glyphs |
Functional Details
This module creates a glyph, or representation (e.g., an arrow), for each data value in a data field data. For data dependent on positions, a glyph is placed at the corresponding position. For data dependent on connections, a glyph is placed at the center of the corresponding connection element. If there is no "data" component, a glyph is placed at each position.
The "base" size (i.e. size of a glyph for the average data value) is based on AutoGlyph's estimate of an appropriate glyph size, as modified by scale.
For "text" glyphs, a "data" component is required.
AutoGlyph differs from the Glyph module in the interpretation of the scale parameter. For AutoGlyph, you specify the size of the glyphs relative to the default-size glyph chosen by AutoGlyph. In contrast, when using Glyph, you may specify a scaling factor that is multiplied by the data value to obtain the size of the glyph in world units.
data | is the data field for which glyphs are to be created. |
type | specifies the kind of glyph to be used. By default, scalar fields are represented by filled circles or spheres, vector fields by arrows, tensor fields by groups of arrows, and string data by text. For 2-dimensional scalar fields, the glyphs are circles, and for 2-dimensional vector fields, the arrows are flat. For 3-dimensional fields, spheres or rounded arrows (rockets) are used. The type parameter will override a default glyph. If type is a string, it must specify one of the following: "arrow," "arrow2D," "circle," "colored text," "cube," "diamond," "needle," "needle2D," "rocket," "rocket2D," "sphere," "speedy," "spiffy," "square," "standard," or "text." The value "standard" specifies the default glyph type and is a medium-quality glyph appropriate to the data; "spiffy," a higher-quality glyph; and "speedy," a lower-quality, but more quickly rendered glyph. Lower quality glyphs also consume less memory. You may alternatively specify type as a scalar value between 0 and 1, where:
Specifying "text" or "colored text" for type puts a text representation of the data value at each point. For text glyphs, the text is by default 15 pixels high, and the shape, ratio, min, and max parameters have no effect. The scale parameter can be used to increase or decrease the size of the text glyphs. For example, specifying scale = 2 makes the text 30 pixels high. The difference between "text" and "colored text" is that text is always white when "text" is specified, but will be the color of the input if "colored text" is specified. Note that after the AutoGlyph module, Color can be used to color text glyphs to a different color if desired. The font for the text glyphs can be specified by appending "font = fontname" to "text" or "colored text," where fontname is any of the defined fonts supplied with Data Explorer: area gothicit_t pitman roman_ext cyril_d greek_d roman_d script_d fixed greek_s roman_dser script_s gothiceng_t italic_d roman_s variable gothicger_t italic_t roman_tserFor more information, see Appendix E. "Data Explorer Fonts" in IBM Visualization Data Explorer User's Guide. In addition, you may supply user-defined fields and groups to the type parameter (see reference #1). |
The remaining five parameters are interpreted somewhat differently, depending on whether the type of data involved are (1) scalar or (2) vector or tensor.
shape | is ignored for scalar data |
scale | sets the scale factor for the size of the glyphs relative to the default glyph. |
ratio | controls the ratio between the smallest and the largest glyphs. The default value is 0.05. |
min and max | are the data values used to set glyph sizes. Their default values are the minimum and maximum data values respectively. Unless you change ratio from its default value of 0.05, the glyphs representing data with a value of min are 5 percent the size of the glyphs representing data with a value of max. You can make the size of the glyphs directly proportional to the data value by setting both min and ratio to 0.
Data values smaller than min are colored pale pink,
unless the original positions already had colors, in which
case the colors are left unchanged.
These data values are represented by glyphs of a size proportional to
|
shape | is used to change the thickness of the glyph relative to its length. The default value for shape is 1 (e.g., to make a glyph twice as thick, set this parameter to twice the default value (i.e., to 2). |
scale | sets the scale factor for the size of the glyphs relative to the default glyph. |
ratio | determines which data values are displayed. To display only those values larger than 0.5 * max, set this parameter to 0.5. The default value is 0.0. |
min and max | are the data values used to set glyph sizes. For 3x3 symmetric tensor data three arrows are drawn, representing the eigenvectors of the matrix. For 2x2 symmetric tensor data two arrows are drawn, representing the eigenvectors of the matrix. For vector data, one arrow is drawn, representing the magnitude of the data. The default value of min is 0 (zero), and the length of the glyphs is always directly proportional to the magnitude of the data (or the magnitude of the eigenvector). If you set min to a value greater than zero, all data with a magnitude smaller than min are represented by a dot if type is "needle," and by a small sphere otherwise. This can be useful to weed out small and perhaps noisy vectors. You can also set ratio to a value larger than zero; in that case, all data with a magnitude smaller than ratio × max is shown by a small sphere or dot. This allows you, for example, to set ratio = 0.5 to see only those vectors with a magnitude greater than half of max. If you have vector data and want to show all the vectors as having the same length, you can use the norm function in the Compute module to normalize all the vectors to unit magnitude before passing them to AutoGlyph. |
You can also use a field as the input for min and max, in which case the statistics of that field are used instead. If the input data is changing from frame to frame, and you want to keep the glyph sizes consistent from frame to frame, you can use the entire field or series as the input for min and max.
Note that if you set min and max, and there are data values far outside that range, then it is possible to get very large glyphs. This is because max is used to set the size scaling for the glyphs. Data values much larger in absolute value than max have proportionally larger-sized glyphs.
You may also pass your own glyph in as type as the object to place at each data point. The dimensionality of the positions of the glyph must be either 2-D or 3-D, and the connections type must be "triangles" or "lines." This glyph can be any Data Explorer field (e.g., an imported object, an isosurface, or a constructed object). (Ref #1.)
There are two ways to use your own glyphs: as user-supplied glyphs and as annotation glyphs.
User-supplied Glyphs
If you pass in a single field as type, that object is used as a glyph. It is drawn large or small depending on the data value, and it inherits the color of the data point, if present. The size of the object should be approximately unity for the default sizing of AutoGlyph to work well. Glyphs for scalar fields should be centered at the origin; glyphs for vector fields should have their base at the origin and the end that you want to point in the direction of the vector field at (0, 1, 0); that is, the glyph will be stretched along its y-dimension. You can use any combination of Scale, Rotate, and Translate to scale, orient, and position your template glyph before passing it to AutoGlyph.
Annotation Glyphs
If you pass in a group of objects as type, AutoGlyph interprets these as "annotation glyphs." Each object in the group must be a single field. It is assumed that you want data values equal to zero to be represented by the zeroth glyph in the group, data values equal to one to be represented by the first glyph in the group, and so on.
Thus the data component of data in this case must be of the type integer, unsigned integer, byte, unsigned byte, short, or unsigned short. The size of the glyph in the resulting output will be the size of the glyph in the glyph group, modified by the scaling factor scale. Colors and other components will be maintained from the input glyphs to the output object, rather than from the colors of data. The shape, ratio, min, and max parameters are ignored for annotation glyphs. Annotation glyphs should be positioned at the origin. You can use any combination of Scale, Rotate, and Translate to scale, orient, and position your template glyph before passing it to AutoGlyph.
Components
Creates new "positions" and "connections" components. In the case of a 3-D glyph, a "normals" component is added for shading purposes. All components that match the dependency of the "data" component are propagated to the output; all others are not. If the input has "binormals" and "tangent" components, they are not propagated to the output.
Example Visual Programs
AnnotationGlyphs.net ThunderGlyphSheet.net ConnectingScatteredPoints.net UsingGlyphs.net PickStreamline.net UsingTextAndTextGlyphs.net ProbeText.net SIMPLE/AutoGlyph.net
See Also
[ OpenDX Home at IBM | OpenDX.org ]