Filters


The description of ParaView filters can be found here: http://cmake.org/Wiki/ParaView/Users_Guide/List_of_filters

Annotate Volume

The Annotate Volume filter computes the volume of one or more closed surfaces and display the results as a billboard in ParaView. The closed surfaces must not intersect with each other and must not be self intersecting. The following screenshot shows an example:



Apply Schedule

The Apply Schedule filter allows you to import properties stored in an external EPS (Enhanced Production Scheduler) schedule file to an object within ParaViewGeo. The primary goal is to use the animation capabilities of ParaView to visualize a 3D simulation of the schedule. The information from the external file is applied to the cells of the original object. Each cell in the original dataset must have a unique identifier that can be related to a property in the external file. You have to know the properties that make up the original object and the external file to correctly create the correlation between the two.

Always fill in the Configuration tab prior to the Properties tab.

ApplySchedule.png

Use the Browse button to navigate to and select the external file (in *.exf format).

The Configuration tab allows you to select the Date Type and Date Format, as well as the Duration Property, Duration Unit and the Schedule Segment ID that are used and represented in the external file. The Schedule Segment ID is very important, as it corresponds to the Geometry Segment ID.

In the Geometry section you can select the Geometry Segment ID, the property in the original dataset that corresponds to the values contained in the Schedule Segment ID. This creates the connection between the original dataset and the information in the external file, using unique identifiers that are present in both datasets.

The Properties tab allows you to select which information contained in the external file should be attributed to the cells and made part of the new object. There are three columns, Uniform, Time and Clone, which are used to identify how the information applies.
ApplyScheduleProperties.png

Uniform is used for properties like duration and tonnages, and divides the property across the group of cells. For instance, if a stope is made up of four cells and has a duration of one day, each cell of the stope is assigned a duration of six hours (24 hours divided by 4).

Time is used for properties that contain time values, such as the start time.

Clone will copy the property and apply it to all cells in the group. This can be used for properties such as Color or Mine Area, where the whole group has the same value.


Bounding Box

BoundingBox.png
The Bounding Box filter will create a box around the object to which the filter is applied.

By default, the box will have the same X, Y and Z dimensions as the original dataset, and the Properties appear at 100%. You can change the percentages to increase or decrease the dimensions of the bounding box.

The origin of the bounding box will remain the same as the origin of the original object, even when the percentages are changed.

Box to Grid

Box to grid is a filter that creates a grid from an oriented box. If you have a random Dataset and want to add a grid to it, you can first use the Fit Dataset filter to create an oriented bounding box around your data and the use the Box to Grid filter to create the desired grid.

The user interface is very simple and allow you to choose the grid size in the first, second and third direction of the box.


Clean Cells

CleanCells.png
Use the Clean Cells filter to remove duplicate cells from an object and to remove shared points between cells.

The Piece Invariant option allows you to choose if the whole dataset is processed at once (checked) and will always have the same result. If this checkbox is unchecked, the dataset is processed one piece at a time. Although this may be required for datasets that do not fit into the memory, the results may not always be the same and seams may be produced if run in parallel.

The Tolerance slider and text box specifies the tolerance for performing merging when point merging is used without absolute tolerance. This tolerance is a fraction of the length of the diagonal of the bounding box of the input data set.

The Absolute Tolerance field specifies the tolerance when point merging is used together with absolute tolerance. The tolerance is used to perform the merging in the spatial units of the input data set.

Tolerance Is Absolute determines whether absolute (checked) or relative (unchecked) tolerance is used to perform the point merging. Relative tolerance uses a percentage of the bounding box.

There are also three conversion options. Convert Lines To Points, when checked, will convert degenerate lines to points. When Convert Polys To Lines is checked, degenerate polygons that have only two distinct point coordinates are converted to lines. The Convert Strips to Polys option, when checked, will convert degenerate triangle strips to triangles.

The Point Merging option, when checked, will merge points if they are within the specified Tolerance or Absolute Tolerance, depending on the Tolerance Is Absolute property.

For example, if you have three boxes next to each other such as in the image below, you originally have 18 faces (6 sides/box) and 72 points (8 vertices/box). For this example, the boxes are grouped using the Append Geometry filter.

Boxes 1 and 2 both have identical faces that share the same space and so do boxes 2 and 3. Therefore there are two faces that do not need to exist in order to keep this same geometry. Similarly, when a box is created, each corner actually has three points, one for each of the planes that meet at the corner. The Clean Cells filter will delete the two extra faces and the shared points, leaving 16 cells and 16 points.

For larger datasets, this can make a difference in memory usage.

The Statistics Box in each case show the number of cells (faces) and points in the dataset.

Clean Faces

Compute Volumes

The Compute Volumes filter computes the volume of one or more closed surfaces and display the results in a table in the object inspector of ParaView. The closed surface must not intersect with each other and must not be self intersecting.


Convert Points to Blocks

Often, for memory concerns, a block model is represented with a set of points, where each point is the center of a block. In some cases, it is desirable to restore the original block model. Convert Points to Blocks filter allows creating a set of blocks from the set of points. The created blocks are axis aligned. The user must specify the size of the blocks in x, y and z dimensions as shown in the following screenshot:


It is also possible to use a property from the input, that specify the size of each block individually. This is convenient when the blocks have different sizes. The screenshot below shows an example:



The next screenshot shows an example of input and output of the filter:


Drift Reconstruction

Fit Dataset

The Fit Dataset filter allows fitting a set of points with a line, rectangle, 2D convex polygon or an oriented bounding box.

The line is a 3D line created by orthogonal distance regression (ODR):


The rectangle is also created by orthogonal distance regression:


The 2D convex polygon is the convex polygon enclosing the projection of the points onto the ODR plane:

 
Finally the Box is an oriented bounding box where the first axis is in the direction of the ODR line and the second axis is in the direction of the normal of the ODR plane:


Fracture Trace

Inside Closed Surface

The Inside Closed Surface filter requires two source inputs that overlap, and it identifies and colors cells that are inside the surface.

Select the Input for the filter in the pipeline. This is the object which will be colored to show the cells that exist inside the closed surface of the other object. With the object highlighted, select the Inside Closed Surface filter.

The Input Editor window will display, and you can choose the Source radio button on the left side and then select the source in the Select Source section. This source object is the one that encloses part (or all) of the input object. If you can't select the source object, click on the Input radio button and then back on the Source radio button and try again. Click on OK and Apply the filter so the coloring appears in the render view.

InsideClosedSurface.png

You may want to uncheck the Interpolate Colors option on the Display tab to improve the way the inside cells are identified. The cell outline probably will not exactly match the shape of the surrounding object due to the cell shapes, as this filter will identify all cells that in some part lie inside the surrounding object.

InsideClosedSurfaceExample.png


Map Attributes From Grid

The Map Attributes From Grid filter applies a data array from one object to another.

From the pipeline, select the dataset that contains the array that will be mapped to the other object, then select the filter from the list.

In the Input Editor window, select the Source radio button and click on the object to which the attributes will be added and click OK.

Use the Scalars drop-down allows you to select which attribute to copy, and then click on Apply.

In this example, a point source had an elevation filter applied. The elevation array was copied and mapped to a box.

MapAttributesFromGridExample.png


Polygon To Grid

The Polygon To Grid filter creates an Image Data (Uniform Rectilinear Grid) around a polygonal input.

Select a polygonal mesh and apply the Polygon to Grid filter.

Modify the number of grids, using the X, Y and Z Cubes fields and apply the filter.

Polygon to Grid Filter

The image shows a simple box that has been converted to Image Data. It's dimensions are 5 x 5 x 5. This filter defaults to an Outline representation type; change it to Wireframe to see the above image.


Proximity Threshold

The Proximity Threshold filter finds the subset of an object that is a certain distance from another object. This filter creates a data array containing the distance between each point of the source and the outline of the input dataset.

Select the Input for the filter in the pipeline. This is the object which will serve as the point of reference from which the distance array will be computed. With the object highlighted, select the Proximity Threshold filter. The Input Editor window will display, and you can choose the Source radio button on the left side and then select the source in the Select Source section. This source object is the one whose distance will be measured. Click on OK to return to the Object Inspector.

Proximity Input Editor

ProximityThreshold.png
Set the Distance from the reference point that you want to use as your threshold limit. Note that the distance defaults to -1, so you will always have to change this entry.

While the Invert box is unchecked, the cells within the distance will be displayed when the filter is applied. Checking the box will show the cells outside the distance limit.

The All Scalars checkbox decides how cells are included or excluded from the resulting output. If the box is unchecked, a cell is included if any of its points have a scalar value within the distance selected. If the box is checked, then all points in a cell must be within the selected distance in order for the cell to appear in the output.

If it doesn't change automatically, you may want to change the Color By option on the Display tab to distance to show how far the cells are from the reference point.

Proximity Threshold

The image on the left shows the input dataset in white and the source dataset in red. The image on the right shows the source dataset colored by the new distance array with its point of reference in the middle. Red represents a smaller distance from the input dataset and blue a greater one.


Proximity To Lines

The proximity to lines allows calculating the distance from a set of points to a set of lines and find out the closest lines to each point and the distances to these lines. This filter require two inputs: A point set and a set of lines.

The number of closest lines can be specified in the user interface:



The resulting properties looks like:


From a Geoscientific perspective, this filter is useful for computing the distance from a set of drillholes to the center of blocks in a block model. For example, the distance to the closest line is an indication of how well the corresponding block is covered. Many other information can be extracted/visualized by applying a threshold on the result of this filter (blocks that have the same closest drillhole, block that are completely, partially or not covered ...).

Radial Distance

RadialDistance.png
The Radial Distance filter generates point scalar values centered on a single point in space.

The Show Point checkbox toggles the visibility of the point in the render view. By default, the Point is located at 0,0,0 but any coordinates can be entered. You will notice that the Color By option on the Display tab has changed to StepDistance, which will use the color scale to indicate how far the input object is from the point.

The Step Number relates to how the step distance colors the data.


Regex Threshold

Regex Threshold filter allow doing a threshold on string properties using a regular expression.
The user interface is simple an self explanatory:



Relative Transform

RelativeTransform.png
The Relative Transform filter allows you to transform around an object's current position instead of coordinates 0,0,0.

The Trans option stands for Translation and allows you to move the object in the three dimensions based on the values you enter, using the object's current location as its origin.

Rot is short for Rotation and you can enter the relative degrees of rotation in each dimension.

You can also change the Scale of the object by entering new values.

String Array to Index


The String Array to Index filter allows creation of an index based on a string property of a dataset. This filter is to be used in conjunction with the spreadsheet view in order to leverage the indexes generated by the filter.

A dataset with string properties is required as an input for this filter.

Usage steps:

  1. Select the dataset containing the string property in the pipeline browser.
  2. Load the String Array to Index filter from objectivity menu.
  3. Select the Array name (in the drop down menu) and provide a name for the generated index
  4. Press Apply
  5. Open the Display tab and set Color By to the generated index
  6. Create a new Spreadsheet View

The colours of the data will correspond to the unique indices generated by the filter.



The spreadsheet view contains the generated indices for the property, in this case, temperature.



Surface Reconstructor

SurfaceReconstructor.png
The Surface Reconstructor allows you the ability to reconstruct a 3D surface from a point set. This filter is similar to the Delaunay 3D filter, except it uses more points to generate the surface, where the Delaunay filter may disregard some points.

With the Neighborhood Size you can specify the number of neighbors each point has. This is used to estimate the local surface orientation. The default of 20 will work for most datasets.

Use the Resolution drop-down to adjust the spacing of the 3D sampling grid. Try the 1x option first, and then adjust if necessary.

Notice how the dip in the dataset is reflected in the surface created using this filter. The same input is used for the Delaunay 3D filter, but there the points in the dip are not used.

SurfaceReconstructorExample.png


Sum Billboard

SumBillboard.png
The SumBillboard filter performs a summation on the selected dataset array and displays the result in a static text field in the render view.

Use the Scalars drop-down to select which scalar array to sum up.

The BillBoard Text field shows the text that will precede the result of the calculation. You can change this text if you wish.

SumBillboardExample.png


Time Billboard

TimeBillboard.png
The TimeBillboard filter displays the start and end values of the selected scalar array. The data must be in a recognizable format for this filter to work.

Use the Scalars drop-down to select the scalar array, and specify the appropriate Time Format from the drop-down. Options include MSDate, Julian, Modified Julian and Matlab.

The Format field shows the formatting that will be used in the text field. The default format will place a T between the date and the time. You can replace this T with several spaces to separate the fields (as was done on the right and is shown in the image below).

The Text field shows the text that precedes the results of the filter. You can change the text if you wish.

Note: This filter only supports dates going back to 1970, and will not display correctly for earlier dates.

TimeBillboardExample.png


Time Threshold

The Time Threshold filter has the same concept as the normal Threshold filter but is only used for time datasets.

Time Threshold Interface

Select the time array from the Time Attribute drop-down menu, and then select the appropriate Time Format from MSDate, Julian, ModifiedJulian and Matlab.

Change the Upper and Lower Thresholds by typing or by selecting dates in the calendar from the drop-down menus.

The All Scalars checkbox decides how cells are included or excluded from the resulting output. If the box is unchecked, a cell is included if any of its points have a scalar value within the threshold. If the box is checked, then all points in a cell must be within the threshold.

Time Threshold


Tensor Glyph

Volumique Tetrahedralization

The Volumique Tetrahedralization filter allows generating a 3D tetrahedral meshes from one or more closed surfaces. This filter is based on the open-source tetrahedral mesh generator Tetgen (http://tetgen.berlios.de).

As stated on Tetgen website (http://tetgen.berlios.de) : TetGen provides various features to generate good quality and adaptive tetrahedral meshes suitable for numerical methods, such as finite element or finite volume methods. For more information of TetGen, please take a look at a list of features.

The filter user interface is shown below:



The user can control the quality and size of the generated mesh by choosing from the following options:


  • Constrained Delaunay tetrahedralization (CDT): Perfoms a Constrained Delaunay Tetrahedralization on the input. The CDT may add extra vertices to the input boundary.
  • CDT without adding points: Peforms a CDT without adding any new vertices to the input.
  • Quality mesh generation:  performs quality mesh generation by Shewchuk’s Delaunay
    refinement algorithm. It adds vertices to the CDT  to ensure that no tetrahedra have radius-edge ratio greater than the one specified in the user interface (typically 2.0):

    For a too small ratio, e.g., smaller than 1.0, TetGen may not terminate.
    If no input angle or input dihedral angle (of the PLC) is smaller than 60◦, this algorithm is guaranteed to terminate and no tetrahedron has radius-edge ratio greater than 2.0.  In practice, one can observe successful termination for radius-edge ratios down to √2 ≈ 1.414 or even smaller.
  • Impose volume constraints:  performs a CDT but imposes a maximum volume constraint on all tetrahedra. The volume constraint can be specified in the Max tetrahedra volume input box of the user interface.
  • Quality mesh and volume constraints: Performs the quality mesh generation described above but also imposes a maximum volume constraint on all tetrahedra.
       
If the Find Regions option is checked, an id will be attributed to each closed surface (i.e all tetrahedra belonging to the same closed surface will have the same identifier). 

It is also possible to add one or two bounding boxes by checking the "With Bounding Box" option. When this option is checked the Bounding Box 1 and Bounding Box 2 become active. Clicking on these buttons opens a widget that allows specifying bounding box parameters as shown below:




The "With Predefined Regions" option can be used if each closed surface in the input has an associated unique id. In this case, it is possible to add one or two bounding boxes and use the "Impose Volume Constraints" option with different maximum volume constraints in the bounding boxes. The following screen shot shows an example where one bounding box is used and the maximum tetrahedra volume specified for the closed surfaces is smaller the one specified for the bounding box:



As shown in the above screenshot, the number of resulting tetrahedra is shown in the user interface.

Before generating mesh, the input is cleaned using "Clean Cells" filter which also calls "Clean Poly Data Filter". To specify the Clean Cells parameters, press on "Input Clean Configuration" button, which will open a corresponding input widget as shown below: