Proximity

  • distance to 2d area

    Use a surface representing a region to map data to a field. This allows downstream modules to cut inside or outside of the area.

  • distance to surface

    Map the distance from a surface to the points in a field as data. This allows downstream modules to cut above or below the surface.

  • distance to shape

    Map the distance from the a set shape to the nodes of the input field.

  • buffer distance

    Calculate the 2d distance from every node in the input field to the input line and add this distance as a data component.

  • distance to tunnel center

    Calculate the 3d distance from every node in the input field to the input line and add this distance as a data component.

  • overburden

    Compute the complete volume required to excavate a plume or ore body given the pit wall slope (measured from vertical) and the excavation digging accuracy (we refer to as buffer size).

Subsections of Proximity

distance to 2d area

distance to 2d area receives any 3D field into its left input port and it receives triangulated polygons (from triangulate polygon, or other sources) into its right input port. It adds a data component to the input 3D field representing the signed distance from the boundary of the input area. Using subsetting modules such as plume shell, you can cut structures inside or outside of the input polygons. Only the x and y coordinates of the polygons are used because distance to 2d area cuts a projected slice that is z invariant. distance to 2d area recalculates when either input field is changed or the “Run Once” button is pressed.

The data values are zero (0.0) at the boundaries of the surface, less than zero (negative) inside the surface, and greater than zero (positive) outside of the surface. To get everything inside, you need to choose “Below Level” in the subsetting modules rather than the default “Above Level”.

distance to 2d area does not cut directly. It provides data with which you can then subset using other modules like plume or intersection. Without the subsetting modules after distance to 2d area, the only effect is the addition of a new nodal data component.

distance to 2d area needs a surface as its input. The surface can be complex, meaning that it can have holes in it, or it can be separate disjoint pieces. If you are starting with lines, they must form a truly closed polyline. Once you have one or more closed polylines, pass those through triangulate polylines to create a TIN surface before connecting to distance to 2d area.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to map subsetting data onto.
InputInput AreaFieldThe area to use for subsetting.
OutputOutput FieldFieldThe subset field.

Properties

PropertyTypeDescription
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.
Allow RunBooleanThe Allow Run toggle causes the module to run whenever your inputs change.
Nested Surface CuttingBooleanThe Nested Surface Cutting toggle allows you to cut doughnut like shapes if you have polygons inside of other polygons.
Boundary Extraction MethodChoice: Edges by Angle, Boundary EdgesThe Boundary Extraction Method determines how the edges are extracted which the signed distances are calculated to. Edges by Angle chooses all edges of cells with an angle greater than the specified angle. Boundary Edges extracts all edges only used by a single cell, which results in edges on the outer boundary of surfaces.
Maximum Edge AngleDoubleThe Maximum Edge Angle is defined as the angle between two faces or cells in the model. Intersections between faces or cells with angles greater than the Maximum Edge Angle will be cut. This should not need to be modified unless your cutting area is highly non-planar (3D). If the cutting results seem aberrant, you should try adjusting this.

distance to surface

distance to surface receives any 3D field into its left input port and it receives a surface (from create tin, surface from horizons, slice, etc.) into its right input port. It adds a data component to the input 3D field referencing the cutting surface. With this new data component you can use a subsetting module like plume to pass either side of the 3D field as defined by the cutting surface, thereby allowing cutting of structures along any surface. The surface can originate from a TIN surface, a slice plane, or a geologic surface. The cutting surface can be multi-valued in Z, which means the surface can have instances where there is more than one z value for a single x, y coordinate. This might occur with a wavy fault surface that is nearly vertical, or a fault surface with recumbent folds.

distance to surface recalculates when either input field is changed or the “Execute” button is pressed.

The general approach with distance to surface is:

  • Create a cutting surface representing either a fault plane, a scouring surface (unconformity), or an excavation.
  • Create a 3D model of the object you wish to cut.
  • Pass the 3D model into the left port of distance to surface, and the cutting surface to the right port of distance to surface and press Execute.

Ports

DirectionNameTypeDescription
InputInput 3D FieldFieldThe field to map data onto.
InputInput SurfaceFieldThe field to use for adding data to the 3D field.
OutputOutput FieldFieldThe subset field.

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.
Reverse Cutting Surface NormalBooleanThe Reverse Cutting Surface Normal toggle flips the normal vector of the cutting surface. In other words, this changes the sign of the surf_cut data component. This is useful for certain applications where you want the distance from the surface to be positive on a particular side.

GPU Options

PropertyTypeDescription
Use GPU For Fast CalculationsBooleanThe Use GPU For Fast Calculations toggle will allow the graphics card of the computer to make certain calculations which can greatly increase the speed of the module. Not all graphics cards can support this. The default for this option can be changed in the options menu.
Force Emulated GPUBooleanThe Force Emulated GPU toggle will allow the system to emulate a more functional graphics card if the computer doesn’t have one which allows certain calculations. The default for this option can be changed in the options menu.
Max Block SizeIntegerThe amount of nodes which will be processed on each GPU pass. Larger numbers run faster, but cause interruptions. Smaller numbers are more likely to succeed on lower end graphics cards.

distance to shape

distance to shape receives any 3D field into its input port and outputs the same field with an additional data component. Using plume shell, you can cut structures with either a cylinder or rotated rectangle. The cutting action is z invariant (like a cookie cutter). Depending on the resolution of the input field, rectangles may not have sharp corners. With rectilinear fields (and non-rotated rectangles), the threshold module can replace plume shell to produce sharp corners (by removing whole cells). plume can be used to output 3D fields for additional filtering or mapping.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to add the shape data to.
InputZ ScaleNumberThe factor for vertical scaling.
OutputOutput FieldFieldThe field with added shape data.

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 scale that has been applied to the input. This is used for determining default extents.

Shape Settings

PropertyTypeDescription
Shape TypeChoice: Cylindrical, RectangularThe Shape Type allows the user to select the type of shape to generate data from.
X CenterDoubleThe X Center is the x center of the shape to be generated.
Y CenterDoubleThe Y Center is the y center of the shape to be generated.
Z CenterDoubleThe Z Center is the z center of the shape to be generated.
Z HeightDoubleThe height of the shape to be generated can be set using this control.
Cylinder RadiusDoubleIf Shape Type is set to Cylindrical the radius of the cylinder can be set using this control.
X WidthDoubleIf Shape Type is set to Rectangular the width of the rectangle can be set using this control.
Y LengthDoubleIf Shape Type is set to Rectangular the length of the rectangle can be set using this control.
Rectangular RotationDoubleIf Shape Type is set to Rectangular the rotation about the center of the rectangle can be set using this control.

buffer distance

buffer distance receives any 3D field into its left input port and it receives polylines (from read lines, import vector gis, import cad, isolines, or other sources) into its right input port. It adds a data component to the input 3D field representing the 2D distance from each node to the input polylines. Using plume shell, you can cut structures along the path of the input polylines. Only the x and y coordinates of the polylines are used because buffer distance creates data to cut a projected region that is z invariant. buffer distance recalculates when either input field is changed or the “Execute” button is pressed. “Thick Fences” can be produced with the output of this module.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for subsetting.
InputInput Fence LineFieldThe line field used to create the fence.
OutputOutput FieldFieldThe subset field.

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.
Limit DepthBooleanLimit Depth allows for setting a Z Min Depth and Z Max Depth thus creating (passing) a fence that only extends to those specified elevations.
Z Min DepthDoubleIf the Limit Depth toggle is selected the Z Min Depth is the minimum cut depth.
Z Max DepthDoubleIf the Limit Depth toggle is selected the Z Max Depth is the maximum cut depth.

distance to tunnel center

The distance to tunnel center module is similar to the distance to surface module in that it receives any 3D field into its left input port, but instead of a surface, it receives a line (along the trajectory of a tunnel, boring, or mineshaft) into its right input port. The distance to tunnel center module then cuts a cylinder, of user-defined radius, along the line trajectory. The algorithm is identical in concept to distance to surface in that it adds a data component to the input 3D field referencing the distance from the line (trajectory). With this new data component you can use a subsetting module like plume volume to pass either portion of the 3D field (inside the cylinder or outside the cylinder), thereby allowing cutting tunnels along any trajectory. The trajectory line can originate from any one of a number of sources such as read lines, import cad, or import vector gis.

The general approach is to subset the distance to tunnel center data component with either constant shell or plume volume. The choice of 1.0 for the subsetting level will result in cutting at the user radius, while less than 1.0 is inside the cylinder wall and greater than 1.0 is outside the cylinder wall.

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for subsetting.
InputInput Tunnel LineFieldThe line field used to create the tunnel.
OutputOutput FieldFieldThe subset field.

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.
Tunnel RadiusDoubleThe Tunnel Radius is measured as a normal to the trajectory line in model units.

overburden

The overburden module computes the complete volume required to excavate a plume or ore body given the pit wall slope (measured from vertical) and the excavation digging accuracy (referred to as buffer size).

overburden receives any 3D field into its input port and outputs the same field with an additional data component. It computes a new data component based on the nodal values in the 3D field and two user-defined parameter values called Wall Slope and Buffer Size. The data component is subset according to a concentration input (based on the subsetting level you want excavated). For example, once overburden has been run for GOLD at a 45 degree pit wall slope, the user would select the overburden data component and subset all data below 1 ppm to render a 45 degree slope pit which would excavate everything higher than 1 ppm concentration. A volumetrics calculation could be made on these criteria which would encompass the excavation and the ore body above 1 ppm.

overburden creates a data component name that includes the wall slope, module name, and original data component (analyte) name.

The overburden data component may be subset by modules such as plume, isosurface, or plume shell.

Notes:

  • It is much safer and more understandable to work at Z Scale = 1. Otherwise, the apparent angle of your pit will be very different than the input angle. As the Z Scale increases, the angle of pit sidewalls looks more vertical, since the tangent of the apparent angle is the tangent of the actual angle multiplied by the Z Scale.
  • The overburden module must be placed before any scaling modules (such as explode and scale) to ensure an accurate slope angle during computations and subsequent visualizations.
  • The grid resolution and resulting cell aspect ratios are very important. You cannot see any pit wall slope differences if those differences create a slope which is less than one cell wide from the bottom of the pit to the top. Therefore, very high resolutions in X-Y are needed for large sites with shallow pits. Expect long run times for overburden.
  • Angles are defined from the vertical and are specified in degrees. A vertical wall pit is created with an angle of zero (0.0) degrees. A 2:1 pitch slope from horizontal would be an angle whose arctangent = 2.0, which is 63.4 degrees from horizontal, so you would enter 26.6 degrees (from vertical).

Ports

DirectionNameTypeDescription
InputInput FieldFieldThe field to use for subsetting.
OutputOutput FieldFieldThe subset field.
OutputWall SlopeNumberWall Slope is the angle measured from vertical whereby 0 is vertical and 90 is horizontal.
OutputBuffer SizeNumberBuffer Size is the accuracy level resulting in the amount of excavation outside the subsetting level of interest.

Properties

PropertyTypeDescription
Allow RunBooleanDetermines whether the module is allowed to execute. Set to True to allow this module to run.
ExecuteButtonThe Execute button forces the module to run even when Allow Run has been turned off.
Wall SlopeDoubleWall Slope sets the angle measured from vertical whereby 0 is vertical and 90 is horizontal.
Create Plume BufferBooleanThe Create Plume Buffer toggle determines if the overburden computations are rigorous and determines the buffer on all sides of the plume (ore body). If this is off, the module runs much quicker.
Buffer SizeDoubleThe Buffer Size sets the accuracy level resulting in the amount of excavation outside the subsetting level of interest. For example, a value of 10.0 would result in 10 feet of over-excavation from the subsetting level of interest.
Nodal DataChoiceThe Nodal Data control lets the user set the analyte of interest.