Use a surface representing a region to map data to a field. This allows downstream modules to cut inside or outside of the area.
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.
Map the distance from the a set shape to the nodes of the input field.
Calculate the 2d distance from every node in the input field to the input line and add this distance as a data component.
Calculate the 3d distance from every node in the input field to the input line and add this distance as a data component.
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
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field to map subsetting data onto. |
| Input | Input Area | Field | The area to use for subsetting. |
| Output | Output Field | Field | The subset field. |
Properties
| Property | Type | Description |
|---|---|---|
| Execute | Button | This 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 Run | Boolean | The Allow Run toggle causes the module to run whenever your inputs change. |
| Nested Surface Cutting | Boolean | The Nested Surface Cutting toggle allows you to cut doughnut like shapes if you have polygons inside of other polygons. |
| Boundary Extraction Method | Choice: Edges by Angle, Boundary Edges | The 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 Angle | Double | The 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
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input 3D Field | Field | The field to map data onto. |
| Input | Input Surface | Field | The field to use for adding data to the 3D field. |
| Output | Output Field | Field | The subset field. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates. |
| Execute | Button | This 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 Normal | Boolean | The 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
| Property | Type | Description |
|---|---|---|
| Use GPU For Fast Calculations | Boolean | The 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 GPU | Boolean | The 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 Size | Integer | The 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
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field to add the shape data to. |
| Input | Z Scale | Number | The factor for vertical scaling. |
| Output | Output Field | Field | The field with added shape data. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates. |
| Execute | Button | This 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 Scale | Double | The Z Scale is the vertical scale that has been applied to the input. This is used for determining default extents. |
Shape Settings
| Property | Type | Description |
|---|---|---|
| Shape Type | Choice: Cylindrical, Rectangular | The Shape Type allows the user to select the type of shape to generate data from. |
| X Center | Double | The X Center is the x center of the shape to be generated. |
| Y Center | Double | The Y Center is the y center of the shape to be generated. |
| Z Center | Double | The Z Center is the z center of the shape to be generated. |
| Z Height | Double | The height of the shape to be generated can be set using this control. |
| Cylinder Radius | Double | If Shape Type is set to Cylindrical the radius of the cylinder can be set using this control. |
| X Width | Double | If Shape Type is set to Rectangular the width of the rectangle can be set using this control. |
| Y Length | Double | If Shape Type is set to Rectangular the length of the rectangle can be set using this control. |
| Rectangular Rotation | Double | If 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
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field to use for subsetting. |
| Input | Input Fence Line | Field | The line field used to create the fence. |
| Output | Output Field | Field | The subset field. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates. |
| Execute | Button | This 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 Depth | Boolean | Limit 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 Depth | Double | If the Limit Depth toggle is selected the Z Min Depth is the minimum cut depth. |
| Z Max Depth | Double | If 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
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field to use for subsetting. |
| Input | Input Tunnel Line | Field | The line field used to create the tunnel. |
| Output | Output Field | Field | The subset field. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | This toggle can prevent the module from running. Allowing the user to make changes to large data sets without waiting for updates. |
| Execute | Button | This 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 Radius | Double | The 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
| Direction | Name | Type | Description |
|---|---|---|---|
| Input | Input Field | Field | The field to use for subsetting. |
| Output | Output Field | Field | The subset field. |
| Output | Wall Slope | Number | Wall Slope is the angle measured from vertical whereby 0 is vertical and 90 is horizontal. |
| Output | Buffer Size | Number | Buffer Size is the accuracy level resulting in the amount of excavation outside the subsetting level of interest. |
Properties
| Property | Type | Description |
|---|---|---|
| Allow Run | Boolean | Determines whether the module is allowed to execute. Set to True to allow this module to run. |
| Execute | Button | The Execute button forces the module to run even when Allow Run has been turned off. |
| Wall Slope | Double | Wall Slope sets the angle measured from vertical whereby 0 is vertical and 90 is horizontal. |
| Create Plume Buffer | Boolean | The 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 Size | Double | The 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 Data | Choice | The Nodal Data control lets the user set the analyte of interest. |