Subsetting

  • external faces

    Extracts external faces from a 2D or 3D field for rendering.

  • external edges

    Extracts the outer edges of a mesh.

  • cross section

    Create a fence diagram along a user defined (x, y) path.

  • slice

    Create a slice through an input field.

  • isolines

    Produce lines of constant value which can be offset from a 2D surface, or the external faces of a 3D surface.

  • cut

    Create a subset of your input on one side of a planar surface.

  • plume

    Create a true 3D volumetric subset of a 3D input. The resulting volume can be used as input for further subsetting or volumetric computations since it is volumetric. This module should not normally be used when you desire a visualization of a plume but rather when you wish to do subsequent operations such as analysis, slices, etc.

  • intersection

    Create a true 3D volumetric subset of a 3D input using multiple subset criteria. The resulting volume can be used as input for further subsetting or volumetric computations since it is volumetric.

  • union

    Allows for a large number of complex parallel subsetting operations required to compute and visualize the union of multiple analytes and threshold levels.

  • subset by expression

    Eliminate whole cells from the input mesh based on the nodal data of one or more nodes that comprise the cells.

  • footprint

    Create the 2D footprint by creating a surface at the specified Z Position with an x-y extent that matches the 3D input.

  • slope aspect splitter

    Split an input field into two output fields based upon slope or aspect data using a subset expression.

  • crop and downsize

    Subset or simplify an image or structured field.

  • select cell sets

    Select individual geologic layers or lithologic materials for output.

  • orthoslice

    Displays slice positions north-south (vertical), east-west (vertical) and horizontal. The orthoslice module subsets a structured field by extracting one slice plane and can only be orthogonal to the X, Y, or Z axis.

  • edges

    Produce a wireframe representation of an unstructured cell data mesh. This allows viewing of all grid boundaries (internal AND external) of the input mesh. The edges module is useful in that it is able to render lines around adaptive gridding locations.

  • bounds

    Generate lines and/or surfaces that indicate the bounding box of a 3D structured field. This is useful when you need to see the shape of an object and the structure of its mesh.

Subsections of Subsetting

external faces

The external faces module extracts external faces from a 2D or 3D field for rendering. It produces a mesh of only the external faces of each cell set of a data set. Because each cell set’s external faces are created, there may be faces that are seemingly internal (vs. external). This is especially true when external faces is used subsequent to a plume module on 3D (volumetric) input.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for external faces.
InputInput Z ScaleNumberThe factor for vertical scaling.
OutputOutput FieldFieldThe external faces field.
OutputOutput ObjectRenderableA renderable object to display.

Properties

PropertyTypeDescription
Allow RunBooleanThe Allow Run Toggle will prevent the module from running. This allows the user to make multiple changes without the module constantly updating.
ExecuteButtonThe Run Once button will cause the module to run one time even if the Allow Run toggle has been turned off.

External Faces

PropertyTypeDescription
Ignore Existing NormalsBooleanIgnores any normals that already exist in the input field, forcing the module to always compute normals from scratch.
Split EdgesBooleanSplit surfaces when the edge between two neighboring cells is sharp. This improves rendering in most cases.
Split Edge AngleDoubleThe Split Edge Angle is the maximum angle allowed between two adjacent faces before they are disconnected to create visually sharp edges.
Z ScaleDoubleThe Z Scale is the vertical exaggeration to apply to the display object.
Remove Internal Layer BoundariesBooleanRemove Internal Layer Boundaries allows the user to merge cell sets in order to remove non-visible, internal layer boundaries.
Keep Cell SetsBooleanIf Remove Internal Layer Boundaries is activated, Keep Cell Sets allows the user to split the cells of the merged field back into original cell sets after calculating external faces.

external edges

The external edges module produces a wireframe representation of an unstructured cell data mesh. This is generally used to visualize the skeletal shape of the data domain while viewing output from other modules, such as plumes and surfaces, inside the unstructured mesh. It produces a mesh of only the external edges which meet the edge angle criteria for each cell set of a data set. Because each cell set’s external faces are used, there may be edges that are seemingly internal (vs. external). This is especially true when external edges is used subsequent to a plume module on 3D (volumetric) input.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for external gridding.
InputInput Z ScaleNumberThe factor for vertical scaling.
OutputOutput FieldFieldThe external grid field.
OutputOutput Z ScaleNumberThe factor for vertical scaling.
OutputOutput ObjectRenderableA renderable object to display.

Properties

PropertyTypeDescription
Extraction MethodChoice: Edge Angle, Boundary Edges, WireframeThe Extraction Method determines how edges are extracted. Edge Angle chooses all edges of cells with an angle greater than specified angle. Boundary Edges extract all edges only used by a single cell, which is useful when doing edges of a surface. Wireframe extracts all external edges of the field.
Max Edge AngleDoubleThe Max Edge Angle is defined as the angle between two faces or cells in the model. Setting Max Edge Angle to 0 causes all external cell (element) edges in the model to be visible. Intersections between faces or cells with angles greater than the Max Edge Angle are visible. Exterior model edges are always visible.
Z ScaleDoubleThe Z Scale is the vertical exaggeration to apply to the display object.

cross section

The cross section module creates a fence diagram along a user defined (x, y) path. The fence cross-section has no thickness (because it is composed of areal elements such as triangles and quadrilaterals), but can be created in either true 3D model space or projected to 2D space.

It receives a 3D field (with volumetric elements) into its left input port and it receives lines or polylines (from draw lines, polyline processing, import cad, isolines, import vector gis, or other sources) into its right input port. Its function is similar to buffer distance, however it actually creates a new grid and does not rely on any other modules (e.g. plume or plume shell) to do the “cutting”. Only the x and y coordinates of the input (poly)lines are used because cross section cuts a projected slice that is z invariant. The module recalculates when either input field is changed (and Run Automatically is on) or when the “Run Once” button is pressed.

If you select the option to “Straighten to 2D”, cross section creates a straightened fence that is projected to a new 2D coordinate system of your choice. The choices are XZ or XY. For output to ESRI’s ArcMAP, XY is required.

NOTE: The beginning of straightened (2D) fences is defined by the order of the points in the incoming line/polyline. This is done to provide the user with complete control over how the cross-section is created. However, if you are provided a CAD file and you do not know the order of the line points, you can export the CAD file using the write lines module which provides a simple text file that will make it easy to see the order of the points.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main field for input.
InputInput LineFieldThe main line for creating fence.
OutputOutput FieldFieldThe fence field.
OutputOutput ObjectRenderableA renderable object displaying the subset fence.

Properties

PropertyTypeDescription
Allow RunBooleanThe Allow Run toggle will prevent the module from running when unselected.
ExecuteButtonThis button will force the module to run even if the Allow Run toggle has been turned off. This allows the user to make a number of changes before updating.
Clean Fence BoundariesBooleanThe Clean Fence Boundaries toggle attempts to merge all cells between each fence segment (created by each line segment of your 2D input). Occasionally the output will look better with it off, but usually it is better left on.
Straighten To 2DBooleanThe Straighten to 2D toggle is used to project your 3D fence to a 2D representation. Where each sample’s x value becomes the distance to the line passed into the Input Line port.
Straightened PlaneChoice: Export in XZ, Export in XYThe Straightened Plane allows the user to set the plane the straightened samples are in. This requires samples that have been Straightened to 2D.
Nodal Data ComponentsMulti-selectThe Node Data Components toggles allow you to select which nodal data to include in the fence.
Cell Data ComponentsMulti-selectThe Cell Data Components toggles allow you to select which cell data to include in the fence.

slice

The slice module allows you to create a subset of your input which is of reduced dimensionality. This means that volumetric, surface and line inputs will result in surface, line and point outputs respectively. This is unlike cut which preserves dimensionality.

The slice module is used to slice through an input field using a slicing plane defined by one of four methods:

  1. A vertical plane defined by an X or Easting coordinate
  2. A vertical plane defined by a Y or Northing coordinate
  3. A Horizontal plane defined by a Z coordinate
  4. An arbitrarily positioned Rotatable plane which requires a 3D point through which the slicing plane passes, a Dip direction, and a Strike direction
Info

The slice module may be controlled with the driven sequence module. Only the orthogonal slice methods (Easting, Northing and Horizontal) may be used with driven sequence.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for slicing.
InputInput Z ScaleNumberThe factor for vertical scaling.
OutputOutput FieldFieldThe slice field.
OutputOutput Z ScaleNumberThe factor for vertical scaling.
OutputOutput ObjectRenderableA renderable object to display.
OutputOutput SequenceSequenceThe generated sequence of states.

Properties

PropertyTypeDescription
Allow RunBooleanThis toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates.
ExecuteButtonThis button will force the module to run even if the Allow Run toggle has been turned off. This allows the user to make a number of changes before updating.
Z ScaleDoubleThe Z Scale is the vertical exaggeration to apply to the display object.

Slice Settings

PropertyTypeDescription
Use SequencingBooleanTurning this on allows the sequences to drive the slice module instead of the positions.
Slice TypeChoice: Slice Easting, Slice Northing, Slice Horizontal, RotatableThe Slice Type is how the slicing plane is specified.
X PositionDoubleThe X Position of the slice (used with Slice Easting and Rotatable).
Y PositionDoubleThe Y position of the slice (used with Slice Northing and Rotatable).
Z PositionDoubleThe Z Position of the slice (used with Slice Horizontal and Rotatable).
Plane RotationHeading/DipThe Plane Rotation control allows the user to set both the Heading and the Dip of the Rotatable Slice.
ResetButtonThe Reset button will cause the Position of the slice to return to the center of the model.
Current StateSequence StateThe current state to be passed to the script.
State ControlChoice: Slider, Combo Box, List BoxThe State Control determines how the user will interact with the created sequence of states.
Allow CyclesBooleanAllows the state control to be cycled in CTWS files.
Sequence Generation PropertiesValue generatorGenerates the list of values for sequencing. Methods: Linear By Step (values from an anchor point at a fixed step size), Linear By Count (a fixed number of evenly-spaced values), User Entries (manually specified values).
State TitleExpressionThe State Title sets the template which is used to generate the title for each state of the sequence.

Data Mapping

PropertyTypeDescription
Nodal DataMulti-selectThe Nodal Data from the Input Field to include in the Output Field.
Cell DataMulti-selectThe Cell Data from the Input Field to include in the Output Field.

isolines

The isolines module is used to produce lines of constant (iso)value on a 2D surface (such as a slice plane), or the external faces of a 3D surface, such as the external faces of a plume. The input data for isolines must be a surface (faces), it cannot be a volumetric data field. If the input is the faces of a 3D surface, then the isolines will actually be 3D in nature. Isolines can automatically place labels in the 2D or 3D isolines. By default isolines are on the surface (within it) and they have an elevated jitter level (1.0) to make them preferentially visible. However they can be offset to either side of the surface.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field used to generate contours.
InputInput Contour levelsContoursContour level information.
OutputOutput FieldFieldThe field containing generated isolines.
OutputOutput Contour levelsContoursContour level information.
OutputOutput ObjectRenderableA renderable object displaying the grid created by the module. Note that this is output even when Allow Run is off.

Properties

PropertyTypeDescription
Allow RunBooleanThis toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates.
ExecuteButtonThe Execute button forces the module to run. If this has been pressed and the application saved, it will cause the module to run when the application is loaded.

Isoline Settings

PropertyTypeDescription
Isoline ComponentChoiceThe Isoline Component refers to the nodal data component that will be used to create isolines.
Min Max LinkingChoice: Link Min/Max, Recalculate from DataThe Min Max Linking control is used to set the linked values for the Minimum and Maximum Isoline levels. If the min and max values for the selected component have been changed, Recalculate can be used to find the actual min and max.
Isoline Generation PropertiesValue generatorGenerates the list of isoline levels. Methods: Per Log Decade (logarithmic spacing with a set number of isolines per decade), Linear By Step (values from an anchor point at a fixed step size), Linear By Count (a fixed number of evenly-spaced values), User Entries (manually specified values).
Surface OffsetDoubleThe Surface Offset controls where the isolines will be placed, vertically, in reference to the surface.
Offset Both WaysBooleanOffset Both Ways will enable creating isolines on both sides of a surface e.g. the top and bottom sides of a ground surface.

Label Settings

PropertyTypeDescription
Add LabelsBooleanThe Add Labels toggle specifies whether labels are added.
Flip Labels HorizontallyBooleanThe Flip Labels Horizontally toggle will flip all labels upside down. Depending on the viewpoint and the data, this may be useful for making the labels more readable.
Flip Labels VerticallyBooleanThe Flip Labels Vertically toggle will flip all labels to the other side of the surface. Depending on the viewpoint and the data, this may be useful for making the labels more readable.
Label SpacingDoubleThe Label Spacing value.
Label HeightDoubleThe Label Height scales the size of each label.
Label StartDoubleThe Label Start will offset the start of each label along the line.
Format Label NumbersNumber FormattingThe Format Label Numbers control allows the user to set how numbers that are turned into labels will be formatted.
Label SuffixChoice: Use Data Units, User Specified, NoneThe Label Suffix is a string that is appended to each label.
User SuffixStringIf the User Specified option is selected in Label Suffix, the string can be set with this value.

cut

The cut module allows you to create a subset of your input which is of the same dimensionality. This means that volumetric, surface, line and point inputs will have subsetted outputs of the same object type. This is unlike slice which decreases dimensionality.

The cut module cuts through an input field using a cutting plane defined by one of four methods:

  1. A vertical plane defined by an X or Easting coordinate
  2. A vertical plane defined by a Y or Northing coordinate
  3. A Horizontal plane defined by a Z coordinate
  4. An arbitrarily positioned Rotatable plane which requires a 3D point through which the cutting plane passes, a Dip direction, and a Strike direction
Info

The cut module may be controlled with the driven sequence module. Only the orthogonal cut methods (Easting, Northing and Horizontal) may be used with driven sequence.

The cutting plane essentially cuts the data field into two parts and sends only the part above or below the plane to the output ports (above and below are terms which are defined by the normal vector of the cutting plane). The output of cut is the subset of the model from the side of the cut plane specified.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for cutting.
InputInput Z ScaleNumberThe factor for vertical scaling.
Outputcut FieldFieldThe cut field.
OutputOutput FieldFieldThe input field with cut data.
OutputOutput Z ScaleNumberThe factor for vertical scaling.
OutputOutput ObjectRenderableA renderable object to display.
OutputOutput SequenceSequenceThe generated sequence of states.

Properties

PropertyTypeDescription
Allow RunBooleanThis toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates.
Z ScaleDoubleThe Z Scale is the vertical exaggeration to apply to the display object.

Cut Settings

PropertyTypeDescription
Use SequencingBooleanTurning this on allows the sequences to drive the cut module instead of the positions.
Cut TypeChoice: Cut Easting, Cut Northing, Cut Horizontal, RotatableThe Cut Type is how the cutting plane is specified.
Cut DirectionChoice: Cut Below, Cut AboveThe Cut Direction is used to determine whether the mesh above or below the cutting plane is sent to the output port.
X PositionDoubleThe X Position of the cut plane (used with Easting and Rotatable).
Y PositionDoubleThe Y position of the cut plane (used with Northing and Rotatable).
Z PositionDoubleThe Z Position of the cut plane (used with Horizontal and Rotatable).
Plane RotationHeading/DipThe Plane Rotation control allows the user to set both the Heading and the Dip of the Rotatable Cut Plane.
ResetButtonThe Reset button will cause the Position of the cut plane to return to the center of the model.
Current StateSequence StateThe current state to be passed to the script.
State ControlChoice: Slider, Combo Box, List BoxThe State Control determines how the user will interact with the created sequence of states.
Allow CyclesBooleanAllows the state control to be cycled in CTWS files.
Sequence Generation PropertiesValue generatorGenerates the list of values for sequencing. Methods: Linear By Step (values from an anchor point at a fixed step size), Linear By Count (a fixed number of evenly-spaced values), User Entries (manually specified values).
State TitleExpressionThe State Title sets the template which is used to generate the title for each state of the sequence.

Data Mapping

PropertyTypeDescription
Nodal DataMulti-selectThe Nodal Data from the Input Field to include in the Output Field.
Cell DataMulti-selectThe Cell Data from the Input Field to include in the Output Field.

plume

The plume module creates a (same dimensionality) subset of the input, regardless of dimensionality. What this means, in other words, is that plume can receive a field (blue port) model with cells which are points, lines, surfaces and/or volumes and its output will be a subset of the same type of cells.

This module should not normally be used when you desire a visualization of a 3D volumetric plume but rather when you wish to do subsequent operations such as analysis, slices, etc.

Info

The plume module may be controlled with the driven sequence module.

Ports

DirectionNameTypeDescription
InputInput FieldFieldA field containing nodal data.
InputInput IsolevelNumberThe value used for subsetting.
OutputStatusStringText containing the subsetting information.
OutputOutput IsolevelNumberThe value used for subsetting.
OutputOutput FieldFieldA field containing a new unstructured mesh which contains the surfaces which are the external faces of a subset of the input.
OutputPlumeRenderableA renderable object displaying the subsetted plume data.
OutputOutput SequenceSequenceThe generated sequence of states.

Properties

PropertyTypeDescription
Allow RunBooleanThe Allow Run toggle will prevent the module from running when unselected.
ExecuteButtonThe Run Once button will cause the module to run one time even if the Allow Run toggle has been turned off.
Above Direction StringStringWhen the Subsetting Direction is set to Subset Above Level, the Direction String will use this string as its identifier.
Below Direction StringStringWhen the Subsetting Direction is set to Subset Below Level, the Direction String will use this string as its identifier.
Status ExpressionExpressionThe Status Expression sets the template which is used to generate the status string, and the title for each state of the sequence.
Use SequencingBooleanTurning this on allows the sequences to drive the module instead of the positions.

Data Processing

PropertyTypeDescription
Subsetting ComponentChoiceThe Subsetting Component is the nodal data value to use to subset the input by.
Subsetting LevelDoubleThe Subsetting Level is used to set the level for subsetting the input field. If a value is chosen larger than the max value, the max value is placed in the edit box. Similarly, if a value less than the minimum is input, the minimum value is placed in the box. The default level is the arithmetic average of the minimum and maximum values in the subsetting component.
Subsetting DirectionChoice: Subset Below level, Subset Above levelThe Subsetting Direction choice allows the user to select which range of values to include in the output. Either the range of data from the subsetting level to the max can be selected, or the range of data from the subsetting level to the min of the data.
Output Nodal DataMulti-selectThe Output Nodal Data choice allows the user to select the nodal data to include in the output.
Output Cell DataMulti-selectThe Output Cell Data choice allows the user to select the cell data to include in the output.

Sequence Settings

PropertyTypeDescription
Current StateSequence StateThe current state to be passed to the script.
State ControlChoice: Slider, Combo Box, List BoxThe State Control determines how the user will interact with the created sequence of states.
Allow CyclesBooleanAllows the state control to be cycled in CTWS files.
Sequence Generation PropertiesValue generatorGenerates the list of values for sequencing. Methods: Linear By Step (values from an anchor point at a fixed step size), Linear By Count (a fixed number of evenly-spaced values), User Entries (manually specified values), Per Log Decade (logarithmic spacing with a set number of values per decade).

intersection

The intersection module is a powerful module that incorporates some of the characteristics of plume, yet allows for any number of volumetric sequential (serial) subsetting operations.

The functionality of the intersection module can be obtained by creating a network of serial plume modules. The number of analytes in the intersection is equal to the number of plume modules required.

The intersection of multiple analytes and threshold levels can be equated to the answer to the following question (example assumes three analytes A, B & C with respective subsetting levels of a, b and c):

“What is the volume within my model where A is above a, AND B is above b, AND C is above c?”

image\\boolean.jpg image\\boolean.jpg

The figure above is a Boolean representation of 3 analyte plumes (A, B & C). The intersection of all three is the black center portion of the figure. Think of the image boundaries as the complete extents of your models (grid). The “A” plume is the circle colored cyan and includes the green, black and blue areas. The intersection of just A & C would be both the green and black portions.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main field for input.
OutputOutput FieldFieldThe subset field.
OutputStatusStringText containing the intersection subset information.
OutputOutput ObjectRenderableA renderable object displaying the selected data from the subset.

Properties

PropertyTypeDescription
Allow RunBooleanThe Allow Run Toggle will prevent the module from running. This allows the user to make multiple changes without the module constantly updating.
ExecuteButtonThe Run Once button will cause the module to run one time even if the Allow Run toggle has been turned off.
Map ComponentsMulti-selectThe Map Components value allows the user to select which data components to include in the output after the subsetting has completed.
Map Cell ComponentsMulti-selectThe Map Cell Components value allows the user to select which cell data components to include in the output after the subsetting has completed.
Output StringChoice: First Subset, All Subsets, Last SubsetThe Output String contains the name(s) and value(s) of the intersection subsets.
Above Output StringStringWhen the Include Region is set to Above, the Output String will use this string as its identifier.
Output String DelimiterStringWhen the Output String consists of All Subsets, the Delimiter is the string occurring between each subset text.
Below Output StringStringWhen the Include Region is set to Below, the Output String will use this string as its identifier.

Subsetting Values

PropertyTypeDescription
Subset ListSubset EditorThe list of intersections to create.

union

The union module is a powerful module that automatically performs a large number of complex serial and parallel subsetting operations required to compute and visualize the union of multiple analytes and threshold levels. The functionality of the union module can be obtained by creating a network fragment composed of only plume modules. However as the number of analytes in the union increases, the number of plume modules increases very dramatically. The table below lists the number of plume modules required for several cases:

Number of AnalytesNumber of plume Modules
23
36
410
515
621
728
n(n * (n+1)) / 2

From the above table, it should be evident that as the number of analytes in the union increases, the computation time will increase dramatically. Even though union appears to be a single module, internally it grows more complex as the number of analytes increases.

The union of multiple analytes and threshold levels can be equated to the answer to the following question (example assumes three analytes A, B & C with respective subsetting levels of a, b and c):

“What is the volume within my model where A is above a, OR B is above b, OR C is above c?”

image\\boolean.jpg image\\boolean.jpg

The figure above is a Boolean representation of 3 analyte plumes (A, B & C). The union of all three is the entire colored portion of the figure. Think of the image boundaries as the complete extents of your models (grid). The “A” plume is the circle colored cyan and includes the green, black and blue areas. The union of just A & C would be all colored regions EXCEPT the magenta portion of B.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main field for input.
OutputOutput FieldFieldThe subset field.
OutputStatusStringText containing the union subset information.
OutputOutput ObjectRenderableA renderable object displaying the selected data from the subset.

Properties

PropertyTypeDescription
Allow RunBooleanThe Allow Run Toggle will prevent the module from running. This allows the user to make multiple changes without the module constantly updating.
ExecuteButtonThe Run Once button will cause the module to run one time even if the Allow Run toggle has been turned off.
Map ComponentsMulti-selectThe Map Components value allows the user to select which data components to include in the output after the subsetting has completed.
Map Cell ComponentsMulti-selectThe Map Cell Components value allows the user to select which cell data components to include in the output after the subsetting has completed.
Output StringChoice: First Subset, All Subsets, Last SubsetThe Output String contains the name(s) and value(s) of the intersection subsets.
Above Output StringStringWhen the Include Region is set to Above, the Output String will use this string as its identifier.
Output String DelimiterStringWhen the Output String consists of All Subsets, the Delimiter is the string occurring between each subset text.
Below Output StringStringWhen the Include Region is set to Below, the Output String will use this string as its identifier.

Subsetting Values

PropertyTypeDescription
Subset ListSubset EditorThe list of unions to create.

subset by expression

The subset by expression module creates a subset of the input grid with the same dimensionality. It can receive a field (blue port) model with cells which are points, lines, surfaces and/or volumes and its output will be a subset of the same type of cells.

Subset by expression is different from plume in that it outputs entire cells making its output “lego-like”.

It uses a mathematical expression allowing you to do complex subsetting calculations on coordinates and multiple data components with a single module, which can dramatically simplify your network and reduce memory usage. It has 2 floating point variables (N1, N2) which are setup with ports so they can be easily animated.

Operators:

  • == Equal to
  • < Less than
  • > Greater Than
  • <= Less than or Equal to
  • >= Greater Than or Equal to
  • or
  • and
  • in (as in list)

Example Expressions:

  • If Nodal data is selected:
    • D0 >= N1 All nodes with the first analyte greater than or equal to N1 will be used for inclusion determination.
    • (D0 < N1) or (D1 < N2) All nodes with the first analyte less than or equal to N1 OR the second analyte less than or equal to N2 will be used for inclusion determination.
  • If Cell data is selected:
    • D1 in [0, 2] where D1 is Layer will give you the uppermost and third layers.
    • D1 in [1] where D1 is Layer will give you the middle layer.
    • D1 == 0 where D1 is Layer will give you the uppermost layer
    • D1 >= 1 where D1 is Layer will give you all but the uppermost layer

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use when calculating the expression.
InputInput Number Variable 1NumberA value used as a variable in the expression.
InputInput Number Variable 2NumberA value used as a variable in the expression.
InputInput Z ScaleNumberThe factor for vertical scaling.
OutputOutputFieldFieldThe field created when applying the expression with the result being false.
OutputOutput Number Variable 1NumberA value used as a variable in the expression.
OutputOutput Number Variable 2NumberA value used as a variable in the expression.
OutputOutput ObjectRenderableA renderable object to display.

Properties

PropertyTypeDescription
Allow RunBooleanThe Allow Run toggle will prevent the module from running when unselected.
ExecuteButtonThe Run Once button will cause the module to run one time even if the Allow Run toggle has been turned off.
Z ScaleDoubleThe Z Scale is the vertical exaggeration to apply to the display object.
Subset ByChoice: Nodal Data, Cell DataThe Subset By control allows the user to choose which criteria to use for subsetting cells.
N1DoubleThe N1 value may be passed in via the Input Number Variable 1 port and is usable by the expression.
N2DoubleThe N2 value may be passed in via the Input Number Variable 2 port and is usable by the expression.
Subset ExpressionStringThe Subset Expression is used to determine which node or cell to include in the output. All expressions should resolve to either a true or false for each node (if using a nodal subset) or cell (if using a cell subset).
Nodal Subset VariablesString (read-only)The Variables to use to set the criteria when subsetting by nodal data.
Expression Cells To IncludeChoice: All Nodes Match Criteria, Any Node Matches CriteriaThe Expression Cells To Include value allows the user to include a cell if all nodes in the cell match the expression criteria, or if any of the nodes in the cell match the expression criteria.
Cell Subset VariablesString (read-only)The Variables to use to set the criteria when subsetting by cell data.

footprint

The footprint module is used to create the 2D footprint of a 3D input. It creates a surface at the specified Z Position with an x-y extent that matches the 3D input. The footprint output does not contain data, but data can be mapped onto it with external kriging.

NOTE: Do not use adaptive gridding when creating the 3D grid to be footprinted and mapping the maximum values with krig 2d (as in the example shown below). Footprint will produce the correct area, but krig 2d will map anomalous results when used with 3d estimation’s adaptive gridding.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for creating the subset.
OutputOutput FieldFieldThe footprint field.
OutputOutput BoundaryFieldThe footprint boundary lines.
OutputOutput ObjectRenderableA renderable object to display.

Properties

PropertyTypeDescription
Allow RunBooleanThis toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates.
Gridding MethodChoice: Outline Only, Regular GridControls which method is used to fill the outline of the footprint with points. Outline Only does not output any surface on the footprint port. Regular Grid distributes points in a grid with a spacing defined by the Cell Size option.
Grid Cell SizeDoubleIf the Gridding Method is Regular Grid this defines the spacing of the grid to fill the interior of a footprint outline with points.
Z PositionDoubleZ Position determines the Z location of the output. This allows you to position the output at the most convenient elevation.

Refinement

PropertyTypeDescription
Boundary ToleranceDoubleThe Boundary Tolerance defines the minimum allowable distance - expressed as a percentage of the Grid Cell Size - that an internal grid point must maintain from the boundary to be included in the output. This constraint helps prevent the formation of long, narrow triangles by enforcing spacing between grid points and boundary edges.
Shape ToleranceDoubleThe Shape Tolerance specifies the maximum distance a boundary polygon point may deviate from the imaginary line between its two neighbor points to be considered a distinct point. Points closer than this threshold are treated as collinear and removed to simplify the output. A larger value results in fewer output points and segments but a less accurate footprint.

slope aspect splitter

The slope aspect splitter module will split an input field into two output fields based upon the slope and/or aspect of the external face of the cell and the subset expression used. The input field is split into two fields: one for which all cell orientations are true for the subset expression, and another field for which all cell orientations are false for the subset expression.

All data from the original input is preserved in the output.

Flat Surface Aspect: If you have a flat surface then a realistic aspect cannot be generated. This field lets you set the value for those cells.

  1. To output all upward facing surfaces: use the default subset expression of SLOPE < 89.9. If your object was a perfect sphere, this would give you most of the upper hemisphere. Since the equator would be at slope of 90 degrees and the bottom would be >90 degrees.

(Notice there is potential for rounding errors, use 89.9 instead of 90)

Note: If your ground surface is perfectly flat and you wanted only it, you could use SLOPE < 0.01, however in the real world where topography exists, it can be difficult if not impossible to extract the ground surface and not get some other bits of surfaces that also meet your criteria.

  1. General expression (assuming a standard cubic building):

A) SLOPE > 0.01 (Removes the top of the building)

B) SLOPE > 0.01 and SLOPE < 179.9 (Removes the top and bottom of the building)

  1. Since ASPECT is a variable it must be defined for each cell. In cells with a slope of 0 or 180 there would be no aspect without our defining it with the flat surface aspect field.

  2. Units are always degrees. You could change them to radians if you want inside the expression. (SLOPE * PI/180)

Ports

DirectionNameTypeDescription
InputInput FieldFieldAccepts a data field.
InputInput Number Variable 1NumberAccepts the first numeric value for the slope or aspect expression.
InputInput Number Variable 2NumberAccepts the second numeric value for the slope or aspect expression.
InputInput Z ScaleNumberInputs Z Scale (vertical exaggeration) from other modules.
OutputOutput True FieldFieldOutputs the field which matches the subsetting expression.
OutputOutput False FieldFieldOutputs the opposite of the true field.
OutputOutput Z ScaleNumberOutputs Z Scale (vertical exaggeration) to other modules.

Properties

PropertyTypeDescription
Z ScaleDoubleZ scale is the scaling factor used on the input field.
Flat Surface AspectDoubleThe value to use for Aspect Value over a flat surface.
N1DoubleThe N1 variable usable by expressions.
N2DoubleThe N2 variable usable by expressions.
Subset ExpressionStringThe expression used to subset the input field.
Subset VariablesStringVariables available for determining which field to write output.
Split EdgesBooleanSplit surfaces when the edge between two neighboring cells is sharp. This improves rendering in most cases.
Split Edge AngleDoubleThe Split Edge Angle is the maximum angle allowed between two adjacent faces before they are disconnected to create visually sharp edges.

crop and downsize

The crop and downsize module is used to subset an image, or structured 1D, 2D or 3D mesh (an EVS “field” data type with implicit connectivity). Similar to cropping and resizing a photograph, crop and downsize sets ranges of cells in the I, J and K directions which create a subset of the data. When used on an image (which only has two dimensions), crop removes pixels along any of the four edges of the image. Additionally, crop and downsize reduces the resolution of the image or grid by an integer downsize value. If the resolution divided by this factor yields a remainder, these cells are dropped.

Crop and downsize refers to I, J, and K dimensions instead of x-y-z. This is done because grids are not required to be parallel to the coordinate axes, nor must the grid rows, columns and layers correspond to x, y, or z. You may have to experiment with this module to determine which coordinate axes or model faces are being cropped or downsized.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for subsetting.
OutputOutput FieldFieldThe subset field.
OutputOutput ObjectRenderableA renderable object to display.

Properties

PropertyTypeDescription
Min IIntegerThe Minimum I is the minimum extent for cropping in the I direction.
Max IIntegerThe Maximum I is the maximum extent for cropping in the I direction.
Down Size IIntegerThe Down Size I control will set a factor for decreasing resolution in the I direction.
Min JIntegerThe Minimum J is the minimum extent for cropping in the J direction.
Max JIntegerThe Maximum J is the maximum extent for cropping in the J direction.
Down Size JIntegerThe Down Size J control will set a factor for decreasing resolution in the J direction.
Min KIntegerThe Minimum K is the minimum extent for cropping in the K direction.
Max KIntegerThe Maximum K is the maximum extent for cropping in the K direction.
Down Size KIntegerThe Down Size K control will set a factor for decreasing resolution in the K direction.

select cell sets

The select cell sets module provides the ability to select individual stratigraphic layers, lithologic materials or other cell sets for output. If connected to explode and scale, multiple select cell sets modules will allow selection of specific cell sets for downstream processing. One example would be to texture map the top layer with an aerial photo after one select cell sets and to color the other layers by data with a parallel select cell sets path. This can be accomplished by multiple explode and scale modules, but that would be much less efficient.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main field for input.
OutputOutput FieldFieldThe field with the selected cell sets.
OutputOutput ObjectRenderableA renderable object displaying the selected data from the cell set.

Properties

PropertyTypeDescription
Select Cell SetsMulti-selectThe Select Cell Sets control allows the user to select the cell sets from the Input Field to include in the output.

orthoslice

The orthoslice module is similar to the slice module, except limited to only displaying slice positions north-south (vertical), east-west (vertical) and horizontal. It subsets a structured field by extracting one slice plane and can only be orthogonal to the X, Y, or Z axis. Although less flexible in terms of capability, orthoslice is computationally more efficient.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main field for input.
OutputOutput FieldFieldThe sliced field.
OutputOutput ObjectRenderableA renderable object displaying the sliced field.

Properties

PropertyTypeDescription
AxisChoice: I, J, KThe axis selector chooses which axis (I, J, K) the orthoslice is perpendicular to. The default is I. If the field is 1D or 2D, three values are still displayed. Select the values meaningful for the input data.
Cell Data SelectionChoice: Next Cell, Previous CellThe Cell Data Selection determines which side of the nodal surface the cell data should be taken from. Since orthoslice slices between layers of cells, the data must be selected from one side or the other.
PlaneIntegerThe plane slider selects which plane to extract from the input. This is similar to the position slider in slice but, since the input is a field, the selection is based on the nodal dimensions of the axis of interest. Therefore, the range is 0 to the maximum nodal dimension of the axis.

edges

The edges module is similar to the external edges module in that it produces a wireframe representation of the nodal data making up an unstructured cell data mesh. There is however, no adjustment of edge angle and therefore only allows viewing of all grid boundaries (internal AND external) of the input mesh. The edges module is useful in that it is able to render lines around adaptive gridding locations whereas external edges does NOT render lines around this portion of the grid.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main input field.
OutputOutput FieldFieldThe field with selected data.
OutputOutput ObjectRenderableA renderable object displaying the selected data.

Properties

PropertyTypeDescription
Color ByChoice: Nodal Data, Solid ColorThe Color By choice allows the user to select how to color the output edges.
Nodal Data ComponentChoiceIf Nodal Data is selected in the Color By choice, the Nodal Data Component will allow the user to select the data component to color by.
Object ColorColorIf Solid Color is selected in the Color By choice, the Object Color allows the user to set the color of the output edges.
Vector ComponentIntegerIf the selected Color By component is a nodal data component in a vector form, the Vector Component will allow the user to select to color by the entire vector (-1) or a single component of the vector.
Use Vector MagnitudeBooleanIf the Use Vector Magnitude toggle is selected then the selected nodal component will be treated as a vector and the magnitude of that vector used to create the output datamap.

bounds

The bounds module generates lines and/or surfaces that indicate the bounding box of a 3D structured field. This is useful when you need to see the shape of an object and the structure of its mesh. This module is similar to external edges (set to edge angle = 60), except bounds allows for placing faces on the bounds of a model.

Bounds has one input port. Data passed to the port must contain any type of structured mesh (a grid definable with IJK resolution and no separable layers). Node Data can be present, but is only used if you switch on Data.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe main input field.
OutputOutput FieldFieldThe field with selected output.
OutputOutput ObjectRenderableA renderable object displaying the selected output.

Properties

PropertyTypeDescription
HullBooleanThe Hull, when on, draws a wireframe around the perimeter extents of the mesh.
EdgesBooleanEdges, when on, causes the I Min/I Max, J Min/J Max, K Min/K Max controls to produce a wireframe representation of the mesh grid at that plane.
FacesBooleanFaces, when on, causes the I Min/I Max, J Min/J Max, K Min/K Max controls to produce a solid face representing the location of that plane extent.
I MinBooleanI Min, when on, displays the grid (Edges turned on) or plane (Faces turned on) on the minimum extent of the I facing plane.
I MaxBooleanI Max, when on, displays the grid (Edges turned on) or plane (Faces turned on) on the maximum extent of the I facing plane.
J MinBooleanJ Min, when on, displays the grid (Edges turned on) or plane (Faces turned on) on the minimum extent of the J facing plane.
J MaxBooleanJ Max, when on, displays the grid (Edges turned on) or plane (Faces turned on) on the maximum extent of the J facing plane.
K MinBooleanK Min, when on, displays the grid (Edges turned on) or plane (Faces turned on) on the minimum extent of the K facing plane.
K MaxBooleanK Max, when on, displays the grid (Edges turned on) or plane (Faces turned on) on the maximum extent of the K facing plane.
DataBooleanData, when on, makes bounds copy the selected component’s nodal data values at node points along the output mesh to the output field. Because the data is present, the bounds lines can be colored by the interpolated data values of the selected nodal data component.
Nodal Data ComponentChoiceIf Data has been turned on the Nodal Data Component will allow the user to select the data component to color by.
Object ColorColorIf Data has not been turned on the Object Color allows the user to set the color of the output.