NASA Mission Groundwork
Scientific Visualization Tools
3.26.18 Para View Basic Maneuvers
In order to be prepared for the 3D grain packing mission, I am learning Para View, a 3D data visualization engine.
I engaged with: built in sources, pipeline, camera, and display properties. I found the XYZ axis lock novel.
Rendering and GUI controls seem mostly logical although the behavior of “render points as spheres” did not behave as expected.
Zooming and camera rotation are not intuitive yet, so the reset view function is critical and works much like view resets in SolidWorks. Pipeline objects seem to function like Adobe CS layers.
Point selection is clear but seems clunky, I should look up whether there are hotkeys for these selection actions, as this would speed up the process enormously.
Basic net search doesn’t return anything useful, maybe this will come up later in tutorials. (Solved 4.2.18)
3.26.18 Para View First Data Set
The first suggested data set is Disk Ref. I experimented with different renderings: wireframe, gaussian, volume, surface. Gaussian is very interesting and allows me to see the interior data points, but the form becomes unclear. Wireframe, when adjusted to have an appropriate line width seems the best balance of interior visibility and volumetric clarity.
Option+Space is a shortcut for a Spotlight-like function which allows for search and activation of useful functions such as filters.
I employed the contour filter to observe the location of various data. I explored temperature, pressure and arsine. The contour filter properties contains a value range. If a number from this range is entered, then a surface will be generated at the appropriate location for that data point.
Using extract surface and clip filters, I created a cutaway of the data set which reveals the 400k temperature isosurface.
Comparison: Split Camera
I reset the data block and built two visualizations, one of temperature and one of pressure. Then, with a split viewport and linked camera, the two datasets can be seen side by side from identical angles for more effective comparison.
The properties of each visualization window can be controlled by selecting the viewport and then adjusting the pipeline or properties. Pipeline objects can be turned on or off as normal.
Of note although temperature is highest at the interface of the disk and surrounding air column, the area of highest pressure is above that interface. This is because the high temperature causes air to rise from the surface of the disk, while gravity pushes down on the air column from above. The level at which those forces are equal is the location of the highest pressure. This is made visible by side-by-side comparison.
Streamlines and Vectors
So far we have investigated temperature and pressure. Now motion. By using the streamlines filter, the motion vectors become visible.
Using the tube and glyph filters, a visualization which shows the direction and vector magnitude can be generated. Colored with temperature, this provides a clear visualization of the movement and temperature of the air.
Where is the air moving fastest? Air moves fastest closer to the disk, and further toward the edge of the disk. In space above the disk, air moves fastest in a central column rising from the disk.
How does the disk spin? The disk spins clockwise when viewed from the bottom, anticlockwise viewed from the top.
At the surface of the disk, does the air move toward the center or toward the edge? Air spirals toward the center of the disk, presumably pulled by the rising column of air in the center.
3.28.18 Plotting Filters
Plotting filters are in the data analysis section of the filters menu. There are less filters than I originally believed. It will be worthwhile in the future to read about each one so that I have a survey level knowledge ParaView filters.
The “plot over line” filter places a line in the 3D data set and corresponding graph. The line can be adjusted by control point dragging, or pointing to a location and pressing 1 to place the beginning point and 2 to place the end point.
Holding x, y, or z will lock the point’s movement to that axis, this is especially usefuln for clear placement. Adjusted to the centerline of the data set, and plotting temp + pres, we can note that temperature falls with distance from the disk, and pressure rises and then falls with distance from the disk. This is consistent with previous observations made in the visual comparison.
The ParaView workflow turns off the data set once a filter is applied, allowing a variety of filters to be applied and therefore superimposed or compared.
The stream tracer filter is added and set to point source in order to add the air currents over the heated disk. Unchecking the render sphere parameter cleans and clarifies the visualization, although the full stream trace is lovely.
4.1.18 Refresh on Volume Render Editing
The color mapping and opacity of a volume render can be accessed through the “coloring” property. This is especially useful when viewing multiple filters or factors simultaneously.
The interface allows for editing of the transfer function, which controls how color and opacity values are mapped onto the volume data.
Color Map Editor
Unsure what precisely is meant by enable opacity mapping. The control does not behave in the manner I expect.
In the mapping data section, there are control points, new control points can be made, and each control point declares its properties. A specific data value can be input by selecting a control point and entering the desired value in the data box.
Save and load preset options are available in the righthand column.
Time Based Animation Controls
Paraview provides a brick crushing data set, this allows us to view change over time. Animation controls are at the top and are quite intuitive.
There is a complexity to consider when mapping colors to a time based data set. Paraview maps color ranges based on the current frame. This means that if a value range is very low in the first frame and you map the color from that frame, you will get a very low color range. This unrepresentative color range will remain throughout the animation, causing confusion. Paraview does not check the range of every frame in the animation because the data set could be large, causing memory issues.
The data set has a provided amount of time points, if set to a playback time longer than is allowed by this amount of points, playback will become uneven. To combat this use the ‘temporal interpolator’ filter. This allows playback to be any length.
4.2.18 Text Annotations
Text annotations are a source type. Text anchor point options are in the properties menu, along with the enjoyably confusingly named ‘lower left corner’ toggle. This toggle allows free positioning of the text frame, with anchor point set in the lower left corner.
Save screenshot and animation are available from intuitive locations.
Selections can be performed visually with the toggles above the viewport or calculated mathematically with the find data query.
- (s) rubber band cell select
- (d) rubber band point select
- (f) rubber band all cell select
- (g) rubber band all point select
4•3•18 Spatial and Data Element Selection
Selection is fairly intuitive, choose between point or cell selection, and whether the rubber band should select elements behind the surface layer. Invert selection is available from the find data dialog.
If data is selected spatially using the viewport, that selection frustum will stay in place and the selected cells or points will change as the animation progresses. To reveal the selection frustum, activate the reveal frustum toggle in the find data dialog.
If the freeze selection option is used in the find data dialog, the current selection will be logged and remembered. Playing the animation forward or backward from this timeStep will not cause the selection to be recalculated.
A variable can be input in the find data dialog, such as EQPS (equivalent plastic strain), and the global max or min located. This can be plotted using the plot selection over time filter.
The animation view allows for keyframe and track based animation. Choose the source and value you wish to animate and create a track, keyframes, curves and values are editable.
Animation view keyframe editor functions identically to after effects, with less precision and a more obscure, non-visual UI.
Camera animations can be added from the animation viewer, including orbit and follow data. Path transformations are available as well.
Blunt Fin Data Set
The posted image shows the visualization pipeline used to create a clear depiction of airflow being split by a blunt fin. It seems an appropriate first objective to try to recreate that image.
4.9.18 Symmetry Exploration
I would like to create a reflected symmetric z axis view. This will give a clear image of the air stream being split in front of blunt fin.
4.11.18 Pivot + Filters
After some initial exploration of the blunt fin data set, it is apparent that I do not have sufficient knowledge of the basic filters and how to manipulate them in novel contexts to be able to achieve a desired state with data. Therefore a deeper dive into filters is required. After achieving interface and workflow familiarity, more attention can be applied to comprehension and experimentation.
Clip uses the implicit functions of geometric forms, or a function, to determine which cells or points are inside of a function, and then removes the remainder.
Scalar clipping works on a given parameter by clipping everything below a user indicated value.
The slice filter works similarly to the clip filter, but returns values at the boundary of geometric figures. It is a dimension reducing and memory saving filter option.
Additional geometric functions perform similarly to clip. Crinkle slice returns whole cells which come into contact with the slice function.
Fun fact scalar : clip :: contour : slice
4.12.18 [subset] Extract Subset
This filter allows the extraction of a subset based on numerical description of a function. This function is defined by IJK coordinate input. In the properties UI, min and max values for each coordinate axis can be dictated.
In blunt fin data set, the cells seem to display a logarithmic relationship between cell coordinate and cell volume. This filter will return a subset based on coordinate input, this is advantageous because it preserves the structured status of the data set. Filters such as clip and slice change the data set to an unstructured grid.
A scalar function is used to extract cells and points. Control of the max and min function values return different blocks of data. Toggling ‘all scalars’ on requires that all points within a cell be within the scalar function. When not toggled, cells with any points within the scalar function are passed through.
[subset] Iso Volume
This filter behaves similarly to threshold as long as cell data is being manipulated. When acting on point data, it behaves more like clip.
It seems as though this filer recapitulates the basic transform features of the dataset properties. I am therefore unsure precisely what situation it is necessary for.
This filter reflects data along any given axis at the highest or lowest value, and allows for custom reflection around any axis. The option to copy input means: create a new copy of the input which is matched to the reflection, not match the reflection’s graphic output to the input.
4.16.18 Fin Definition
The provided example uses the following pipeline to create a surface representation of blunt fin: extractSurf, extractCellsByRegion, clip, transform, extractSurf, featureEdges.
In this exercise a similar pipeline is used to produce the same visual effect.
Glyph creates a symbol at each point distributed through a dataset. This distribution can be controlled from the properties menu. Scalars and vectors can be selected from the properties section as well as which property to orient the glyphs by.
Stream tracer seeds a distribution of lines generated from a spherical or linear source. Visual widget or numerical input can be used to control the stream seed location. Streams can be mapped forward, backward or both from this source. The amount and maximum length of each stream can be set as well.