You are on page 1of 101

Block Modelling in

Surpac v6.1

August 2008
Copyright 2008 Gemcom Software International Inc. (Gemcom). 
This software and documentation is proprietary to Gemcom and, except where expressly provided 
otherwise, does not form part of any contract. Changes may be made in products or services at any time 
without notice.  
Gemcom publishes this documentation for the sole use of Gemcom licensees. Without written 
permission you may not sell, reproduce, store in a retrieval system, or transmit any part of the 
documentation. For such permission, or to obtain extra copies please contact your local Gemcom office 
or visit www.gemcomsoftware.com. 
While every precaution has been taken in the preparation of this manual, we assume no responsibility 
for errors or omissions. Neither is any liability assumed for damage resulting from the use of the 
information contained herein. 
Gemcom Software International Inc. Gemcom, the Gemcom logo, combinations thereof, and Whittle, 
Surpac, GEMS, Minex, Gemcom InSite and PCBC are trademarks of Gemcom Software International Inc. 
or its wholly‐owned subsidiaries. 
 
Contributors 
RowdyBristol 
Duncan Hall 
Phil Jackson 
Gemma O’Farrell 
 
Product  Gemcom Surpac 6.1 
Table of Contents
 
Block Modelling .................................................................................................................................... 4 
Objectives ................................................................................................................................................................ 4 
Workflow ............................................................................................................................................. 5 
Setup for This Tutorial .......................................................................................................................... 6 
Setting the Work Directory ...................................................................................................................................... 6 
Task: Set the Work Directory (Windows XP).......................................................................................................... 6 
Task: Set the Work Directory (Windows Vista) ...................................................................................................... 7 
Displaying Toolbars and Menubars .......................................................................................................................... 8 
Task:  Display the Block Modelling Toolbars and Menubars ................................................................................. 8 
Discussion ............................................................................................................................................ 9 
Model Space ............................................................................................................................................................ 9 
Blocks and Attributes ............................................................................................................................................. 10 
Constraints ............................................................................................................................................................. 11 
Estimation .............................................................................................................................................................. 12 
Creating a Block Model ....................................................................................................................... 13 
Create a Block Model ............................................................................................................................................. 13 
Task:  Create a Block Model ................................................................................................................................. 13 
Creating Model Attributes .................................................................................................................. 20 
Create Model Attributes ........................................................................................................................................ 20 
Task:  Create Model Attributes ............................................................................................................................ 20 
Constraints Within a Block Model ....................................................................................................... 23 
Applying Constraints to a Block Model .................................................................................................................. 23 
Task:  Apply Constraints to a Block Model ........................................................................................................... 24 
Estimation or Filling the Block Model .................................................................................................. 27 
Assign Value ........................................................................................................................................................... 28 
Task:  Fill the Block Model Using Assign Value .................................................................................................... 28 
Nearest Neighbour ................................................................................................................................................. 33 
Task:  Fill the BIF Zone Using Nearest Neighbour ................................................................................................ 33 
Inverse Distance ..................................................................................................................................................... 38 
Task:  Fill the Sand Zone Using Inverse Distance ................................................................................................. 38 
Ordinary Kriging ..................................................................................................................................................... 43 
Task:  Fill the QPY Zone Using Ordinary Kriging ................................................................................................... 43 
Block Model Reporting ....................................................................................................................... 49 
Block Model Report ............................................................................................................................................... 49 
Task:  Create a Block Model Report ..................................................................................................................... 49 
Calculated Attributes .......................................................................................................................... 52 
Task:  Create Calculated Attributes ..................................................................................................................... 52 
Partial Percentage Reporting .............................................................................................................. 55 
Simple Partial Percent Reporting ........................................................................................................................... 56 
Task:  Create Partial Percentage Report .............................................................................................................. 56 
Model Reblocking ............................................................................................................................... 62 
Model Reblocking .................................................................................................................................................. 62 
Task:  Perform Model Reblocking ........................................................................................................................ 62 

Page 2 of 102
Table of Contents

Column Processing ............................................................................................................................. 64 
Overview ................................................................................................................................................................ 64 
Task:  Familiarise yourself with the data ............................................................................................................. 64 
Classify Blocks ........................................................................................................................................................ 70 
Task:  Classify Blocks into Ore and Waste ............................................................................................................ 70 
Reduction and Dilution .......................................................................................................................................... 83 
Task:  Calculate Dilution & Reduction .................................................................................................................. 83 
Recoverable Product .............................................................................................................................................. 86 
Task:  Calculate Recoverable Product .................................................................................................................. 86 
Thicknesses ............................................................................................................................................................ 97 
Task:  Calculate Column Thickness ...................................................................................................................... 97 

Page 3 of 102
Block Modelling
Objectives
• To become familiar with Surpac’s block modelling module and the concept of block
modelling.
• To learn to fill a block model from drillhole data from a geological database.
• To learn to constrain a block model to filter out specific blocks.
• To learn to report volume, tonnage and grade from a block model.
• To learn about column processing of a block model.

Page 4 of 102
Workflow Setting the Work Directory

Workflow

Page 5 of 102
Setup for This Tutorial
Overview
In this chapter you will learn about:

• Setting the work directory.

• Displaying the block modelling toolbars and menubars.

Files used in this tutorial are stored in the folder:


<installation directory>\demo_data\tutorials\block_model
where <installation directory> is the directory in which Surpac was installed.

Setting the Work Directory


Task: Set the Work Directory (Windows XP)
1. In the Surpac Navigator, right-click the block_model folder.
2. Select Set as work directory.

The name of the work directory is displayed in the title bar at the top of the Surpac window.
Setup for This Tutorial Setting the Work Directory

Task: Set the Work Directory (Windows Vista)


1. In the Surpac Navigator, right-click the block_model folder.
2. Select Set as work directory.

The name of the work directory is displayed in the title bar at the top of the Surpac window.

Page 7 of 102
Displaying Toolbars and Menubars
Task: Display the Block Modelling Toolbars and Menubars
When working with the Block modelling tools, it is helpful to use the block_model profile. This displays
the Block modelling menubar and toolbar.
1. Right-click in the blank area next to the menus at the top of the Surpac main window.
2. From the popup menu, choose Profiles > block_model.
Discussion Model Space

Discussion
The Block model is a form of spatially-referenced database that provides a means for modelling a 3-D
body from point and interval data such as drillhole sample data. The Block model consists of interpolated
values rather than true measurements. It is a method of estimating volume, tonnage, and average grade
of a 3-D body from sparse drill hole data.

Model Space
3D coordinates spatially define the model extents.
Minimum Northing (Y), Easting (X) and Elevation (Z).
Maximum Northing (Y), Easting (X) and Elevation (Z).

Page 9 of 102
Blocks and Attributes
The centroid of each block defines its’ geometric dimensions in each axis, ie. its coordinates, Y, X, and Z.
Each block contains attributes for each of the properties to be modelled. The properties or attributes
may contain numeric or character string values. Blocks may be of varying size defined by the user once
the block model is created.

Block model of oil sands coloured by attribute values (bitumen).


Discussion Constraints

Constraints
All Block model functions may be performed with constraints. A constraint is a logical combination of one
or more spatial objects on selected blocks. Objects that may be used in constraints are plane surfaces,
DTMs, Solids, closed strings and block attribute values. Constraints may be saved to a file for rapid re-
use and may themselves be used as components of other constraints.

Blocks meet a constraint (eg. below a DTM as in the figures below) if its centroid meets that constraint.
This is true even if part of the block is above the DTM.

Unconstrained block model in relation to a DTM surface.

Same block model but constrained by topography (DTM).

Page 11 of 102
Estimation
Once a Block model is created and all attributes defined, the model must be filled by some estimation
method. This is achieved by estimating and assigning attribute values from sample data which has X Y Z
coordinates and the attribute values of interest.
The estimation methods that may be used are:

Nearest Assign the value of the closest sample point to a block


Neighbour

Inverse Distance Assign block values using an Inverse Distance estimator

Assign Value Assign an explicit value to blocks in the model

Ordinary Kriging Assign block values using Kriging with Variogram parameters developed
from a Geostatistical study

Indicator Kriging Functions concerned with a probabilistic block grade distribution derived
from the kriging of indicators

Assign from Assign data from the description fields of closed segments to attribute
String values of blocks that are contained within those segments extended in
the direction of one of the principal axes (X, Y or Z)

Import Centroids Assign block values from data in a delimited or fixed format text file
Creating a Block Model Create a Block Model

Creating a Block Model


Create a Block Model
Task: Create a Block Model
1. Open ore1.dtm.
The solid of the orebody is displayed.

2. Choose View > Zoom out.


3. Choose Display > 2D grid.

Page 13 of 102
4. Enter the information as shown, and then click Apply.

The orebody with the 2D in grid in plan view is displayed.

5. Click the icon to show the data in section view.


6. Choose Display > 2D grid.
Creating a Block Model Create a Block Model

7. Enter the information as shown, and then click Apply.

The orebody in section view with a 2D grid is displayed.

From the above diagrams you can determine the origin and extents of the block model which will cover
the ore solid.
You can also use the string file ore1.str to determine the origin and extents directly from the data. This
method is described below.
8. Choose Block model > New / Open.

Page 15 of 102
9. Enter the information as shown, and then click Apply.

10. Click Apply to confirm creation of the new block model.

11. Tick the box for Get extents from string file.
12. Choose ore1.str and click Open.
Creating a Block Model Create a Block Model

The models coordinates are filled in based on the values in ore1.str.

Page 17 of 102
13. Adjust the values as shown to create a block model which fully covers the extents of the orebody.

14. Click Apply.


15. Enter the information as shown, and then click Create Model.

The block model is created and its name is displayed in the status bar at the bottom of the Surpac
window.
Creating a Block Model Create a Block Model

16. Click the Reset graphics icon .


17. Choose Block model > Save to save the block model.
18. Choose Display > Display block model.
19. Enter the information as shown, and then click Apply.

The block model is displayed as shown.

20. Choose Block model > Close.

To see all of the steps performed in this task run _01_create_model.tcl 
Note: You will need to click Apply on any forms presented. 

Page 19 of 102
Creating Model Attributes
An attribute contains the information or the properties of the model space. This can be either a number
with decimal places, an integer or a character code.

Create Model Attributes


Task: Create Model Attributes
Before creating any attributes you will look at the information stored in the drillhole database, and decide
what will be extracted in the compositing.

1. Open training.mdl.
2. Open db1.ddb.
3. Right-click in the blank area next to the menus at the top of the Surpac main window.
4. From the popup menu, choose Profiles > geology_database.
5. From the Geology Database menu, choose Edit > View table.
6. Enter the information as shown, and then click Apply.

7. Click Apply on the blank constraints form to look at the entire table._
Creating Model Attributes Create Model Attributes

8. After looking at the data in the sample table, click Apply. This table data is typical of the data
from a geological database that may be used to fill a block model.

9. Choose Database > Close.


10. Right-click in the blank area next to the menus at the top of the Surpac main window.
11. From the popup menu, choose Profiles > block_model.
12. Choose Attributes > New.
13. Enter the information as shown, and then click Apply.

Note: Right click on the row number and select Add to add a new row to the table.

The attribute type can be any of:


Character : Alphanumerics – ORE, BIF, PIT2
Integer : Integer values – no decimals
Real : High precision decimal point numbers.
Float : Lower precision decimal point numbers.
Calculated : Stores a generic expression. The value of a calculated attribute is calculated on demand
and so does not exist until the value is requested. As such, it takes up no space in memory, and is always
fully up to date.

Note: Using real; rather than float will significantly increase the size of the block model. Normally choose float rather
than real whenever the attribute will contain approximately 8 significant digits or less.

14. Choose Block model > Summary.

Page 21 of 102
The summary is displayed.

15. After viewing the form, click Apply.


16. Choose Block model > Save.

17. Click Yes to write the attributes into the block model.
18. Choose Block model > Close.

 
To see all of the steps performed in this task run _02_create_model_attributes.tcl 
Note: You will need to click Apply on any forms presented. 
Constraints Within a Block Model Applying Constraints to a Block Model

Constraints Within a Block Model


Applying Constraints to a Block Model
Constraints are logical combinations of spatial operators and objects. Constraints may be used to control
the selection of blocks from which information may be retrieved and/or into which interpolations may be
made.
It is possible to apply both simple and complex constraints to the block model to assist in all aspects of
modelling including:

• Filling the Block model with values


• Producing reports
• Viewing models in graphics.
• Loading a constrained portion of a model

The choices of spatial operators are:

• ABOVE
• INSIDE
• >
• <
• =

The operator used depends on the nature of the object. In order to reduce the number of spatial
operators, the word NOT is used to imply the opposite of an operation. For example, OUTSIDE would be
represented by the expression NOT INSIDE.

When the word AND is used in a constraint combination, blocks that are common to the ANDed
constraints will be selected. When the word OR is used in a constraint combination, all blocks which
related to either of the ORed constraints will be shown. With the AND statement all conditions must be
met for the constraint to apply to a block. With the OR statement, just one of the conditions needs to be
satisfied.

Create a constraint file


This function allows you to generate constraints without having to perform some other block model
function. The key to working with the Surpac block model is in the mastering of this form.
One constraint at a time may be applied to a model, or a series of constraints can be combined and
saved as a constraint (*.con) file.
The types of constraints supported are:

• Inside/Outside a solid.

• Above/Below a Surface.

• Satisfy the conditions of a block Attribute.

• Inside/Outside a string.

• Above/Below a defined plane.

As each constraint is defined, click Add .


Note: If a Constraint combination is not defined, Surpac will assume the AND statement is to apply to all constraints, ie.
a AND b must be satisfied.

Page 23 of 102
Task: Apply Constraints to a Block Model
1. Open training.mdl.
2. Choose Block model > Display.
Alternatively, click the training button on the status bar at the bottom of the Surpac window and
choose Display from the popup menu.
3. Enter the information as shown, and then click Apply.

The entire block model is shown with no constraints.


4. Choose Constraints > New constraint file.
5. Enter the information as shown, and then click Apply.

Note: Once you have constructed the constraint, save it by filling in the Save constraint to box and then clicking Apply.

6. Drag and drop oxide.con into graphics.


Constraints Within a Block Model Applying Constraints to a Block Model

The blocks below the topography and above the weath_ew1 surface are displayed on the screen.

You will now repeat the above process to create constraints for the transitional zone and fresh rock zone.
trans.con is above weath_fresh1.dtm and below weath_ew1.dtm.
7. Choose Constraints > Remove last graphical constraint.
8. Choose Constraints > New constraint file.
9. Enter the information as shown, and then click Apply.

10. Drag and drop trans.con into graphics.


The blocks in the transitional zone are displayed as shown.

Page 25 of 102
fresh.con is below weath_fresh1.dtm
11. Choose Constraints > Remove last graphical constraint.
12. Choose Constraints > New constraint file.
13. Enter the information as shown, and then click Apply.

14. Drag and drop fresh.con into graphics.


The fresh rock layer is displayed as shown:

15. Choose Block model > Close.

To see all of the steps performed in this task run _03_applying_constaints.tcl 
Note: You will need to click Apply on any forms presented. 
Estimation or Filling the Block Model Applying Constraints to a Block Model

Estimation or Filling the Block Model


There are a variety of methods of estimating and assigning attribute values to the blocks within the
model.

• Inverse distance - interpolate block values using an inverse distance estimator


• Assign value - assign an explicit value to blocks in the model
• Ordinary kriging - interpolate block values using Kriging with Variogram parameters developed
from a geostatistical study)
• Indicator kriging
• Assign from string - assign to all blocks falling within a closed segment, the value from a
description field in that segment.
• Import centroids - import block-centroid based data from a text file directly into the current block
model.
• Nearest Neighbour - assigning the values from the nearest sample point to the block attribute of
interest.

The data to be used for the interpolation/assigning of values will most commonly be in the form of a string
file, with northing, easting and elevation stored in the Y, X and Z fields and the values to be interpolated
stored in the description fields.

Page 27 of 102
Assign Value
Task: Fill the Block Model Using Assign Value
This option can be used to assign a single value to blocks.

1. Open training.mdl.
2. Choose Estimation > Assign value.
3. Enter the information as shown, and then click Apply.

4. Enter the information as shown, and then click Apply.

5. Click Yes.

You will now repeat this process of filling the attribute sg. Assign sg a value of 2.6 inside trans.con and
a value of 2.8 inside fresh.con.
Estimation or Filling the Block Model Assign Value

6. Choose Estimation > Assign value.


7. Enter the information as shown, and then click Apply.

8. Enter the information as shown, and then click Apply.

9. Click Yes on the confirmation form.


10. Choose Estimation > Assign value.
11. Enter the information as shown, and then click Apply.

Page 29 of 102
12. Enter the information as shown, and then click Apply.

13. Click Yes on the confirmation form.


You will now create another constraint for viewing purposes. The file litho.con will contain all the blocks
inside the solids sand1.dtm, bif1.dtm and qpy1.dtm.
Note: Be sure to use the OR statement in the constraint combination box as shown.

14. Choose Constraints > New constraints file.


15. Enter the information as shown, and then click Apply.

You will now colour the blocks based on numerical attributes.


16. Choose Display > Display block model.
17. Drag and drop litho.con into graphics.
18. Choose Display > Colour model by attribute.
19. Enter the values as shown, and then click Reload.
Estimation or Filling the Block Model Assign Value

20. Choose Display > Edge and face visibility and ensure Display block edges is unticked.
The visual effect is much better, as seen in the second figure below.

Page 31 of 102
21. Choose Block model > Close.

To see all of the steps performed in this task run _04_assign_value.tcl 
Note: You will need to click Apply on any forms presented. 
Estimation or Filling the Block Model Nearest Neighbour

Nearest Neighbour
Task: Fill the BIF Zone Using Nearest Neighbour
You will use this function to fill the block model with gold grades within the BIF zone. Downhole
composites are stored in cmpb1.str.
1. Open training.mdl.
2. Choose Block Model > Display.
3. Enter the information as shown, and then click Apply.

4. Choose View > Data view options > View by bearing and dip.
5. Enter the information as shown, and then click Apply.

6. Choose View > Zoom > Out.


The block model is displayed.

Page 33 of 102
7. Choose Constraints > New graphical constraint.
8. Enter the information as shown, and then click Apply.

9. Choose Estimation > Nearest Neigbour.


10. Enter the information as shown, and then click Apply.
Estimation or Filling the Block Model Nearest Neighbour

11. Enter the information as shown, and then click Apply.

12. Enter the information as shown, and then click Apply.

Page 35 of 102
Once the filling has been completed, a report called nearest_neighbour.not is produced.

13. Choose Display > colour by attribute.


14. Enter the information as shown, click Reload and then click Apply.
Estimation or Filling the Block Model Nearest Neighbour

The constrained and coloured block model for the bif1 zone is displayed.

15. Choose Block Model > Save.


16. Choose Block Model > Close.

To see all of the steps performed in this task run _05a_nearest_neighbour.tcl 
Note: You will need to click Apply on any forms presented. 

Page 37 of 102
Inverse Distance
Task: Fill the Sand Zone Using Inverse Distance
You will use this function to fill the block model with gold grades within the BIF zone. Downhole
composites are stored in cmpb1.str.
1. Open training.mdl.
2. Choose Block Model > Display.
3. Enter the information as shown, and then click Apply.

4. Choose View > Data view options > View by bearing and dip.
5. Enter the information as shown, and then click Apply.

7. Choose View > Zoom > Out.


The block model is displayed.
Estimation or Filling the Block Model Inverse Distance

7. Choose Constraints > New graphical constraint.


8. Enter the information as shown, and then click Apply.

9. Choose Estimation > Inverse Distance.


10. Enter the information as shown, and then click Apply.

Page 39 of 102
11. Enter the information as shown, and then click Apply.

12. Enter the information as shown, and then click Apply.


Estimation or Filling the Block Model Inverse Distance

13. Enter the information as shown, and then click Apply.

Once the filling has been completed, a report called training_id.not is produced.

15. Choose Display > colour by attribute.

Page 41 of 102
16. Enter the information as shown, click Reload and then click Apply.

The constrained and coloured block model for the Sand1 zone is displayed.

17. Choose Block Model > Save.


18. Choose Block Model > Close.

To see all of the steps performed in this task run _05b_inverse_distance.tcl 
Note: You will need to click Apply on any forms presented. 
Estimation or Filling the Block Model Ordinary Kriging

Ordinary Kriging
Task: Fill the QPY Zone Using Ordinary Kriging
You will use this function to fill the block model with gold grades within the BIF zone. Downhole
composites are stored in cmpb1.str.
1. Open training.mdl.
2. Choose Block Model > Display.
3. Enter the information as shown, and then click Apply.

4. Choose View > Data view options > View by bearing and dip.
5. Enter the information as shown, and then click Apply.

6. Choose View > Zoom > Out.


The block model is displayed.

Page 43 of 102
7. Choose Constraints > New graphical constraint.
8. Enter the information as shown, and then click Apply.

9. Choose Estimation > Ordinary Kriging.


10. Enter the information as shown, and then click Apply.

11. Enter the information as shown, and then click Apply.


Estimation or Filling the Block Model Ordinary Kriging

12. Enter the information as shown, and then click Apply.

Page 45 of 102
13. Enter the information as shown, and then click Apply.

14. Enter the information as shown, and then click Apply.


Estimation or Filling the Block Model Ordinary Kriging

9. Enter the information as shown, and then click Apply.

When the model has been filled, a report file callled ordinary_kriging.not is produced.

15. Choose Display > Colour model by attribute.

Page 47 of 102
16. Enter the information as shown, click Reload and then click Apply.

The constrained and coloured block model for the QPY zone is displayed.

17. Choose Block Model > Save.


18. Choose Block Model > Close.

To see all of the steps performed in this task run _05c_ordinary_kriging.tcl 
Note: You will need to click Apply on any forms presented. 
Block Model Reporting Block Model Report

Block Model Reporting


Block Model Report
Task: Create a Block Model Report
You will now produce a report for the entire deposit.
1. Choose Block model > Report.
2. Enter the information as shown, and then click Apply.

3. Enter the information as shown, and then click Apply.

Page 49 of 102
The report can be weighted by mass and the specific gravity attribute must be supplied.

Grouping Attributes: The results can be grouped based on any attribute or Y, X, Z. If you are
grouping by more than one attribute then the order in which they are specified will have a major
influence on the format of the report.

In the above example , if the attribute GOLD is reported based on the cutoff values of 0;1;3;5;10;999
and these cutoffs are to be reported on each 50m elevation range between 800 and 1100, you would
enter the Z value first, and the GOLD values second. The results will be divided into 50m rl ranges
within which the numbers are split into grade ranges.

3. Enter the information as shown, and then click Apply.


This will constrain the report to the material within the pit and below the topography.
Block Model Reporting Block Model Report

5. Open total_orebody1.not.
The report is displayed.

To see all of the steps performed in this task run _06_block_model_reporting.tcl 
Note: You will need to click Apply on any forms presented. 

Page 51 of 102
Calculated Attributes
Task: Create Calculated Attributes
It is possible to create attributes within the Surpac block model that are calculated from values within
other attributes, or from standard values. These attributes, called calculated attributes, are very powerful
tools for generating reportable values, and add no memory size to the model.
4. Open training.mdl.
5. Choose Block Model > Display.
6. Enter the information as shown, and then click Apply.

6. Choose View > Data view options > View by bearing and dip.
7. Enter the information as shown, and then click Apply.

7. Choose View > Zoom > Out.


The block model is displayed.
Calculated Attributes Block Model Report

10. Choose Constraints > New graphical constraint.


11. Enter the information as shown, and then click Apply.

12. Choose Display > Colour model by attribute.


13. Enter the information as shown, click Reload and then click Apply.

Page 53 of 102
The constrained and coloured block model for the QPY zone is displayed.

12. Choose Attributes > New.


You will add a new calculated attribute and in the expression field, entering the mathematical formula for
calculating the cut grade.
13. Enter the information as shown, and then click Apply.

Note: To create a calculated top cut, the expression is iif(gold>20,20,gold) translating to if gold is greater than 20, then
make gold 20, else leave as the existing value of gold.

The new attribute is created.


14. Choose Display > View attributes for one block.
15. Click a few blocks from the upper range to see that the top value for au_cut is now limited to 20.

16. Choose Block model > Save.


17. Choose Block Model > Close.
Partial Percentage Reporting Block Model Report

Partial Percentage Reporting


The traditional constraints functions test all blocks to check whether they are inside or outside the
constraint using the centroid position. This test is done on the minimum size blocks in the model (sub-
blocks).
Occasionally, the centroid may fall outside the constraint, yet a significant part of the block may still be
inside the constraint (figure A). Usually, this is not a significant issue - the blocks in question are at the
minimum block size, and some will be inside, some will be outside, and so the model evens itself up.
However, for some reporting, such as volume reconciliation, this is not accurate enough.
The partial percentage function tests these inconclusive blocks and determines a fractional value
between 0 and 1 as to how much the block is inside the constraint, e.g. 0 is totally out, 1 is totally in and
0.4 is 40% inside (figure B). These values are stored inside a specified attribute.

How the percentage is calculated is very simple. With traditional constraints, the model is sub-blocked
down to the minimum block size, and then the inside/outside test is performed on the block centroid. The
partial percentage calculation takes it further. Rather than stopping at the minimum block size, this
function will sub-block further, depending on the Precision Factor that is entered. The higher the
Precision Factor the more times the block will be sub-blocked past the minimum block size.

The function then performs the standard constraint on these smaller blocks, and counts the ones that are
inside and outside the constraint. This count becomes the percentage. The percentage is always stored
in the block at minimum block size. So it becomes a trade-off.

The higher the precision factor, the more precise the partial percentage calculation. However, many more
blocks are created for the higher precision factors, and so the function will be slower. For example, a
percentage calculation with a precision factor of 5 will create 4096 times the number of blocks than a
calculation at precision 1.

Page 55 of 102
Simple Partial Percent Reporting
Task: Create Partial Percentage Report
First you will create an orebody solid.

1. Open training.mdl.
2. Append bif1.dtm, qpy1.dtm, sand1.dtm into the main graphics layer.
Note: DTM’s are appended to a layer by holding down the control key while dragging and dropping the DTMs into
graphics.

The DTMs are displayed.

3. Choose File > Save > string/DTM.


4. Enter the information as shown, and then click Apply to save the results to orebody1.dtm.

5. Choose Attributes > New to create a new attribute to store the partial percentage value.
Partial Percentage Reporting Simple Partial Percent Reporting

6. Enter the information as shown, and then click Apply.

You will now give the new block attribute a value based on its position relative to the orebody.

7. Choose Estimation > Partial Percentage.


8. Enter the information as shown, and then click Apply.

Note: It is possible to use a string, DTM surface, 3D model or several other options for constraint to apply.

The results are a partial percentage volume calculation for the blocks along the edge of the orebody.
The precision option determines how many times the block will be split into smaller blocks for testing to
see if it is in or out of the constraint. As an example, a precision of 2 would split the block into two parts
in each direction, almost as if it were sub blocking, and then testing these smaller blocks against the DTM
surface. A precision of 3 would split the blocks 3 times in each direction, and so on. The larger the
precision value the longer the process will take.
Saving a partial percentage result to a file allows it to be used again without the need for running the
estimation function. It also allows for several variables to be filled at one time.

Page 57 of 102
Once completed, a report can be generated to give the volume in the orebody. This is done by using the
partial attribute as a weighting attribute.
You will now generate two reports to see the difference, once without making use of the partial attribute,
and then a second time using the partial attribute as a weighting field.

9. Select Block model > Report.


10. Enter the information as shown, and then click Apply.

11. Enter the information as shown, and then click Apply.


Partial Percentage Reporting Simple Partial Percent Reporting

This will generate a report for the volume without making use of the partially filled blocks.

12. Enter the information as shown, and then click Apply.

Surpac generates the report and displays it as shown.

Page 59 of 102
13. Choose Block model > Report.
14. Enter the information as shown, and then click Apply.

15. Enter the information as shown, and then click Apply.


Partial Percentage Reporting Simple Partial Percent Reporting

16. Enter the information as shown, and then click Apply.

Note: Make sure that this time you click the checkbox to keep the blocks partially in the constraint at the bottom.

The report is displayed on the screen.

You should see that the difference between the two reports in terms of volume is about 0.6%,
and in terms of the gold content, 0.4 in true value (or 5.2% of the grade). If the blocks were
larger (eg. 20x20x20) partial percentages would show a greater effect on the result.
17. Choose Block model > Save.
18. Choose Block model > Close.

To see all of the steps performed in this task run _08_partial_percentages.tcl 
Note: You will need to click Apply on any forms presented. 

Page 61 of 102
Model Reblocking
Model Reblocking
Task: Perform Model Reblocking
In Surpac you can create a new model with different block sizes from those in the current model by re-
blocking.
In this example, you will re-block the model in all 3 directions.
1. Open training.mdl.
2. Choose Block model > Reblock.
3. Enter the information as shown, and then click Apply.

The model training_reblock is created with the specified block size and becomes the active model.
14. Choose Block model > Summary.
60BModel Reblocking Model Reblocking

The model summary is dislayed. Notice that the new block size is 20 x 20 x 10.

To see all of the steps performed in this task run _09_model_reblocking.tcl 
Note: You will need to click Apply on any forms presented. 

Page 63 of 102
Column Processing
Overview
In this chapter you will take an existing block model and use Surpac's block model column processing
functions to evaluate the economics of the block model.

The data is a block model containing only one attribute, grade, and a DTM representing surface
topography.

You will go through the following processes:

• Classify blocks as ore and waste based on a cutoff grade and minimum mining thickness.
• Apply reduction and dilution at ore/waste contacts.
• Calculate recoverable product.
• Determine bottom of economic ore.
• Calculate economic ore volume, grade and total recoverable product.

Task: Viewing the data

1. Open blockmodel.mdl.
2. Choose Block model > Display.
3. Enter the information as shown, and then click Apply.

4. Choose View > Data view options > View by bearing and dip.
5. Enter the information as shown, and then click Apply.
55BColumn Processing Overview

The block model is displayed.

6. Choose Display > Colour model by attribute.


7. Enter the information as shown, click Reload, and then click Apply.

8. Choose Display > New graphical constraint.

Page 65 of 102
9. Enter the information as shown, and then click Apply.

10. Choose View > Data view options > View by bearing and dip.
11. Enter the information as shown, and then click Apply.

The model is displayed.

The blocks in this model are 35 metres in the x and y dimensions and 3 metres high. Because the
vertical extent of this model is limited compared to the horizontal extent, you will vertically exaggerate this
model by a factor of 5.

12. Choose View > Data view options > View scale factors.
55BColumn Processing Overview

13. Enter the information as shown, and then click Apply.

After exaggerating the model five times, to get the view at a bearing of 330 degrees and a dip of -20
degrees, you need to set the View by Bearing function to a dip of -4; the dip you want divided by the
vertical exaggeration.

14. Choose View > Data view options > View by bearing and dip.
15. Enter the information as shown, and then click Apply.

The model is displayed.

Page 67 of 102
16. Open block_topo1.dtm.
Note the separation between the topography and the highest blocks with any grade. This
separation is called the overburden.

You will now slice the model to see the internal structure.
17. In the Layers pane, right-click on the layer blocktopo1.dtm and choose Delete layer.
18. Choose View > Zoom > All.
This moves the data back to plan view

19. Click the Define section icon .


20. Enter the information as shown below on the Section Method tab.
55BColumn Processing Overview

21. Enter the information as shown on the Section Block Model tab, and then click Apply.

The first section through the block model is displayed.

22. Click the Next section icon to view the following sections (there are 5).
You should now have a good idea of how the block model looks and are ready to start the
economic modelling process.
23. Choose Block model > Close.

24. Click Exit graphics .

To see all of the steps performed in this task run _10_viewing_the_data.tcl 
Note: You will need to click Apply on any forms presented. 

Page 69 of 102
Classify Blocks
Overview
You will now classify blocks into Ore and Waste based on minimum mining thickness and cutoff grade.

The first part of this process is to create surfaces which represent the top and bottom occurrence of
material above the cutoff grade. The reason for this is that you will never mine a block as ore at the top or
bottom of your ore body if its grade is below cutoff grade. Ideally, you will start and stop mining ore at the
first and last occurrence of a block above cutoff grade, for a given column.

It must be stressed that the column processing functions are just that, column processing. They process
each column independently of all other columns and so do not take into account grades in adjacent
columns. This methodology has some applications in determining economic mining depths, but it is only
one dimensional and should in no way be considered as a substitute for a three dimensional pit optimiser
such as Whittle.

The first step is to run Column tops to create surfaces which represent the top and bottom occurrence of
material above cutoff grade. These surfaces will then act as constraints for the ore/waste discrimination.

In this way no sub-grade blocks at the top or bottom of the ore can get grouped in with the ore during the
ore/waste discrimination process.

Task: Classify Blocks into Ore and Waste


1. Open blockmodel.mdl.
2. Choose Column processing > Column tops.
3. Enter the information as shown, and then click Apply.
55BColumn Processing Classify Blocks

4. Enter the information as shown, and then click Apply.

This will search down through the block model extracting a point at the top of the first block in each
column where the grade is greater than 8.

The result will be a string file called top_cutoff1.str. The nominal value above top value from the Tops
of columns form is the default elevation which will be assigned if no blocks in the column satisfy the
constraint.

As a rule of thumb, when extracting upper surfaces, the nominal z elevation should be set to an elevation
below your model and when extracting lower surfaces it should be set to an elevation above your model.

5. Choose Column processing > Column tops.


6. Enter the information as shown, and then click Apply.

This time the search is in the Z direction (positive Z is up) and the nominal elevation is set to 400.

Page 71 of 102
7. Enter the information as shown below, and then click Apply.

You will now use the string files top_cutoff1.str and bot_cutoff1.str to create DTMs.

8. Choose Surfaces > DTM File functions > Create DTM from string file.
9. Enter the information as shown, and then click Apply.

10. Choose Surfaces > DTM File functions > Create DTM from string file.
55BColumn Processing Classify Blocks

11. Enter the information as shown, and then click Apply.

12. Choose Block model > Display.


13. Enter the information as shown, and then click Apply.

14. Choose View > Data view options > View scale factors.

Page 73 of 102
15. Enter the information as shown, and then click Apply.

16. Choose Display > Colour model by attribute.


17. Enter the information as shown, click Reload and then click Apply.

19. Open top_cutoff.dtm and bot_cutoff.dtm.


The block model with top and bottom cutoffs are displayed.
55BColumn Processing Classify Blocks

20. Click the block model button on the status bar at the bottom of the screen.
A popup menu appears.

21. Choose Hide.


You will see the following image which shows the upper and lower cutoff DTM surfaces.

22. Click the block model button on the status bar at the bottom of the screen and choose Display
from the popup menu.
23. Enter the information as shown, and then click Apply.

Page 75 of 102
The block model is redisplayed.
24. In the Layers pane, double click the bot_cutoff1.dtm layer to make it the active layer.
25. Right-click the bot_cutoff1.dtm layer and untick the Visible option from the popup menu.

Notice that the visibility icon changes from to (ie. greyed out) to show that the layer is no
longer visible in graphics.

26. Repeat the above step for the top_cutoff1.dtm layer.


Only the block model is now visible.
The next step is to add two attributes to the model which will be filled in the Ore/Waste discrimination
function.
27. Choose Attributes > New.
28. Enter the information as shown, and then click Apply.
55BColumn Processing Classify Blocks

Note: Right-click on the number 1 to add a row to the table.

The ore_waste_flag is a flag which will signify an ore block if set to 1 and a waste block if set to 0. The
composite_grade attribute will store the grade for a contiguous set of ore and waste blocks in a column.
29. Choose Column processing > Ore/Waste discrimination.
30. Enter the information as shown, and then click Apply.

Note: You are specifying minimum mining thicknesses of ore and waste of 6 metres and a cutoff grade of 8.

This function classifies blocks as ORE or WASTE according to a cutoff grade and minimum thickness
criteria. The ore/waste classification is stored as an integer value in the ore_waste_flag attribute which
facilitates colouring the model on ore/waste. A master attribute is specified (grade) and an attribute to
store the composite grade for each resulting ore and waste layer.

Page 77 of 102
31. Enter the information as shown, and then click Apply.

Note: It is very important that this function be applied using the above constraint. This way no outlying sub-grade waste
blocks will be included in the top or bottom ore layers. This constraint file is saved for future processing.

A summary is shown below.


55BColumn Processing Classify Blocks

You will now colour the model on the ore_waste_flag attribute. Ensure you are viewing only the blocks
within your new constraint file - top_bot_cutoff.con.
32. Choose Constraints > New graphical constraint.
33. Enter the information as shown, and then click Apply.

34. Choose Display > Colour model by attribute.


35. Select ore_waste_flag for Attribute to colour by, and then click Scan.

Page 79 of 102
The form is displayed as shown.

36. Click the down arrow on row 1 to bring up the Colour chooser.
37. Click the Crayola tab, type in blue and then click OK.

The waste blocks are now coloured blue.


38. Click the down arrow on row 2 to bring up the Colour chooser.
39. Click the Crayola tab, type in yellow and then click OK.
The ore blocks are now coloured yellow.
41. Click Apply on the Block Colours form.
55BColumn Processing Classify Blocks

42. Click the toggle display polygon & triangle edges icon to turn edges off.
This will colour the model as shown:

Note that the minimum mining thickness of 6 metres (2 blocks in elevation) has been taken into account.

43. Choose Display > View attributes for one block and click on a block to select it.
The composite grade will be reported. This is the average grade for all contiguous ore or waste blocks in
that column. If you select a block above or below this block in the same layer, it will have the same
composite grade. All ore layers have a composite grade greater than 8 and all waste layers have a
composite grade less than 8.
You will now display waste blocks only so you can see their distribution in the model.
44. Choose Constraints > New graphical constraint.

Page 81 of 102
45. Enter the information as shown, and then click Apply.

The waste blocks are displayed.

46. Choose Block model > Save.


47. Choose Block model > Close.

To see all of the steps performed in this task run _11_classify_blocks.tcl 
Note: You will need to click Apply on any forms presented. 
55BColumn Processing 57BReduction and Dilution

Reduction and Dilution


Overview
Because of the practical realities of mining, it is impossible to mine exactly to an ore/waste contact. There
will be some material blending at the contact. Chances are there will be some ore which will be mined
with the waste, and some waste which will be mined with the ore.

The Reduction Dilution function in the block model allows you to specify your expected reduction and
dilution parameters, and then this function will calculate a diluted grade for each ore and waste layer. This
will give the best estimate of the grade of material actually mined.

The first step is to add another attribute to the model.

Task: Calculate Dilution & Reduction


1. Open blockmodel.mdl.
2. Choose Attributes > New.
3. Add an attribute called diluted_grade as shown:

Page 83 of 102
4. Choose Column processing > Dilution and reduction.
5. Enter the information as shown, and then click Apply.

6. Enter the information as shown, and then click Apply.


55BColumn Processing 57BReduction and Dilution

7. Click Yes on the following form.

The report is displayed.

8. Choose Block model > Close.

To see all of the steps performed in this task run _12_dilution_and_reduction.tcl 
Note: You will need to click Apply on any forms presented. 

Page 85 of 102
Recoverable Product
Overview
This function calculates the volume of recoverable product for each ORE block, and stores this as a ratio
of volume of recoverable product to total volume in that block. Therefore it can be considered as the
volume of recoverable product in one unit of volume, ie. in one cubic metre if working in metric. The value
is stored this way because Surpac dynamically sub-blocks and super-blocks. The aggregate option in the
block model reporting function is then used to produce volume reports showing total volumes of product.

For each ore layer, the function also calculates two ratios. It is these ratios which give a measure of
whether an ore layer at that depth is economic.

The first ratio is the ratio of the total volume of material in that ore layer and the waste layer immediately
above it to the volume of recoverable product in that ore layer. This gives an indication as to whether that
ore layer contains sufficient product to carry the waste layer immediately above it.

The second ratio is the ratio of total volume of material of that ore layer and all ore and waste layers
above it (to surface) to the volume of recoverable product in that ore layer and all ore layers above it. This
gives an indication as to whether mining to that depth is economic. Because even though that ore layer
may carry the waste immediately above it, if, for example, there is a large amount of overburden in that
column, mining to that depth may not be economic.

The economic bottom of ore is then determined as the first ore band encountered when searching up
through the block model where both the individual and cumulative ratios are lower than a specified cutoff
ratio. This cutoff ratio is determined by the economic mining factors, such as commodity price, cost of
mining, cost of processing, etc.

The Recoverable Product function requires that all blocks processed by this function be classified as
either ore or waste. Presently you have overburden on the model which is still unclassified. Before
running the Recoverable Product you must classify the overburden as waste. You do this using the
Assign value function.

Task: Calculate Recoverable Product


1. Open blockmodel.mdl.
2. Choose Estimation > Assign value.
3. Enter the information as shown, and then click Apply.
55BColumn Processing 58BRecoverable Product

4. Enter the information as shown below, and then click Apply.

This will assign those blocks above the top of our ore, and below the topography (ie. the overburden)
blocks to waste.

5. Click Yes.

Before you run the Recoverable product function, you should add the attributes which will store the
results of this function. The attributes do not have to be added ahead of time in this function. If the
attributes specified to store the results do not exist, they will be created.

However it is a better practice to add them first for two reasons:

• If they are added by the function, they are created as real attributes and not floats and therefore
will require double the storage space.
• You have control of the background values when adding them yourself. For data management
reasons you will want to standardize your background values. In this tutorial you are using a
background value of -99.

Page 87 of 102
6. Choose Attributes > New.
7. Enter the information as shown, and then click Apply.

Unlike most other attributes, the ratio attributes are given a high background value. A high value of the
ratio of volume to product denotes less economic material. You will be searching for the first value below
a certain value.
If you picked a low background value, when searching for the first block below a certain value using the
column tops function, you would always find the top or bottom of the model because this is outside of our
constraint and so remains at the background value.

8. Choose Column processing > Recoverable product.


9. Enter the information as shown, and then click Apply.
55BColumn Processing 58BRecoverable Product

The report is displayed.

Note: You would expect an ore layer with only a small amount of overlying waste to have a lower individual ratio than an
ore layer with a higher thickness of overlying waste. Also, you would expect the uppermost ore layer to have the same value
for the individual and cumulative ratios.

10. Choose Block model > Display.


11. Choose View > Data view options > View by bearing and dip.
12. Enter the information as shown, and then click Apply.

13. Choose Display > Colour model by attribute.


14. Select ore_waste_flag for Attribute to colour by, and click Scan.

Page 89 of 102
You will see the Block Colours form as shown.

15. Click Apply.


16. Choose View > Data view options > View scale factors.
17. Enter the information as shown, and then click Apply.

18. Drag and drop top_bot_cutoff.con into graphics.


19. Choose Display > Edit attributes for one block.
20. Click an ore block.
55BColumn Processing 58BRecoverable Product

You should see results similar to those shown below.

The final steps of the process are to extract and create surfaces representing the top and bottom of
economic ore. The bottom of economic ore will be a surface created when searching up through the
model, using the Column Tops function, for the first block where both individual and cumulative ratios are
below a cutoff ratio. For this exercise you will use a cutoff ratio of 12.

18. Choose Column processing > Column tops.


19. Enter the information as shown, and then click Apply.

Page 91 of 102
20. Enter the information as shown, and then click Apply.

21. Choose Surfaces > DTM File functions > Create DTM from string file.
22. Enter the information as shown, and then click Apply.

23. Click and drag bot_ore12.dtm from the Navigator into graphics.
55BColumn Processing 58BRecoverable Product

24. View the block model from below, as shown.


The economic bottom of ore matches the lowest occurrence of ore in all parts of the model
except for the southwest.

The top of the ore will simply be the first occurrence of ore searching down through the model (ie. the
ore_waste_flag =1). If this ore is not economic, as in the southwest of the model, it will be excluded by the
fact that the economic bottom of ore is at an elevation of 400 here. This is a reason why the nominal
values are important when using the Column Tops functions.
23. Choose Column processing > Column tops.
24. Enter the information as shown, and then click Apply.

Page 93 of 102
25. Enter the information as shown, and then click Apply.

26. Choose Surfaces > DTM File functions > Create DTM from string file.
27. Enter the information as shown, and then click Apply.

A block model report can now be generated to calculate volume, tons, average grade and recoverable
product of the economic ore.
55BColumn Processing 58BRecoverable Product

28. Choose Block Model > Report.


29. Enter the information as shown, and then click Apply.

30. Enter the information as shown, and then click Apply.

Note: Right-click on the “a” in the first row to add another row to the table.

Page 95 of 102
31. Enter the information as shown, and then click Apply.

The resulting report is shown.

32. Choose Block model > Close.

To see all of the steps performed in this task run _13_recoverable_product.tcl 
Note: You will need to click Apply on any forms presented. 
55BColumn Processing 59BThicknesses

Thicknesses
Overview
This can be used to produce string files containing thicknesses and average grades of ore and waste.
You will use the Thicknesses function to prepare total ore thickness, total waste thickness and average
diluted ore grade.

Task: Calculate Column Thickness


1. Open blockmodel.mdl.
2. Choose Column processing > Thickness.
3. Enter the information as shown, and then click Apply.

Page 97 of 102
4. Enter the information as shown, and then click Apply.

A report is generated as shown:

In the resultant string file, String 1 contains the ore thickness and average diluted grade in the first and
second description fields.
There is also a string 2 in this file which contains the thickness of all other material (in this case this
represents interburden thickness) and the average diluted_grade.
Note: String 2 must be deleted from this file before you can create a DTM of ore thicknesses and grades, or the values
from string 1 and 2 will be averaged when creating the DTM - giving you meaningless results.

5. Using a text editor, delete string 2 from ore_thickness12.str.


6. Choose Surfaces > DTM file functions > Create DTM from string file.
55BColumn Processing 59BThicknesses

7. Enter the information as shown, and then click Apply.

Contours can now be extracted of the ore thickness.

8. Choose Surfaces > Contouring > Contour DTM file.

Page 99 of 102
9. Enter the information as shown, and then click Apply.

10. Drag and drop the file contour_thickness.str into graphics.


The contours are displayed.

To see all of the steps performed in this task run _14_thicknesses.tcl 
Note: You will need to click Apply on any forms presented. 

You might also like