You are on page 1of 27

1

FILE TOOLS
2
_____________________________________________________________________

Copyright 2005 Surpac Minex Group Pty Ltd. All rights reserved.


This software and documentation is proprietary to Surpac Minex Group Pty Ltd.


Surpac Minex Group Pty Ltd publishes this documentation for the sole use of Surpac
licenses. 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 Surpac Minex Group Office.



Surpac Minex Group Pty Ltd
Level 8 190 St Georges Terrace
Perth, Western Australia 6000

Telephone: (08) 94201383
Fax: (08) 94201350

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.

All brand and product names are trademarks or registered trademarks of there
respective companies.


About This Manual

This manual has been designed to provide a practical guide to the many uses of the
software. The applications contained within this manual are by no means exhaustive
as the possible uses of the software are only limited by the users imagination.
However, it will give new users a starting point and existing users a good overview by
demonstrating how to use may of the functions in Surpac Vision. If you have any
difficulties, or questions whist working through this manual feel free to contact your
local Surpac Minex Group Office.









3

FILE TOOLS

FILES USED..............................................................................................................................................4
DISCUSSION.............................................................................................................................................4
STRING MATHS ......................................................................................................................................5
How to fill out the form......................................................................................................................6
Constraint...........................................................................................................................................6
Field....................................................................................................................................................6
Expression..........................................................................................................................................6
FILE TOOL FUNCTIONS.......................................................................................................................9
APPLYING A BOUNDARY STRING..................................................................................................9
CLASSIFY STRINGS............................................................................................................................9
CLASSIFY STRINGS BY TEXT ..........................................................................................................9
TRANSFORMATIONS .......................................................................................................................10
2D Transformation...........................................................................................................................10
3D Transformation...........................................................................................................................10
POLYGON INTERSECTION..............................................................................................................10
Intersection.......................................................................................................................................13
Outersection .....................................................................................................................................13
Exclusive Outersection - Union.......................................................................................................13
EXERCISES.............................................................................................................................................15
1. USING THE STRING MATHS FUNCTION, ALTER THE RL (Z) OF PIT1.STR BY 123M..............................15
2. USING THE APPLY BOUNDARY FUNCTION, CUT A SOIL SAMPLING FILE TO A BOUNDARY STRING ....17
3. USING THE CLASSIFY STRINGS FUNCTION, CLASSIFY THE SAMP1.STR FILE BASED ON THE D1 FIELD
...............................................................................................................................................................20
4. TRANSFORM THE PIT1.STR AND PIT2.STR USING THE 2D GRID TRANSFORM. ....................................21
Any Z correction...............................................................................................................................22
Transform AB axis ...........................................................................................................................22
Correction factor..............................................................................................................................22
5. COMPLETE A 3D TRANSFORMATION OF AN UNDERGROUND MINE. ..................................................23
6. USING THE POLYGON INTERSECTION FUNCTION, DETERMINE WHICH PARTS OF AN ORE BLOCK FALL
INSIDE AN OPEN PIT. ...............................................................................................................................25

















4
FILE TOOLS
OBJECTIVES
To learn about Surpacs File Tools Functionality
2D Transformation
3D Transformation
Apply Boundary
String Maths


FILES USED
Files used in this lab exercise are found in the following folder:

C:\ FILETOOLS\DATA



DISCUSSION

The string tools module is a collection of functions for manipulating and creating string files. It
is very important to understand the capabilities of the string tools module as these functions
give you a higher level of flexibility when using Surpac software.



















This section will give a broad overview of the
functionality of the following


String Maths

Applying boundary strings

Slices through plans and sections

Classify Strings

Transformations

Polygon Intersection






5


STRING MATHS
The string maths utility allows you to mathematically manipulate string file data.
Some of the uses of this function are to:
Interchange Y,X,Z and description fields
Add, Subtract, multiply or divide individual fields by a constant, or one of the other fields
Set individual fields to a constant or the value of another field
Scale Y,X,Z values about a given datum value
Apply various mathematical functions to individual fields
Calculate areas, lengths and directions of segments
All these functions can be done file based or within the graphics utility on the current active layer, or the
selected portions of the current active layer. All these functions use generic expressions.
Note: These functions are enhanced versions of the older, redundant functions. The older functions are
still available so that any existing macros which use them will still run correctly although the menu
options will invoke the new function instead of the old ones. The old functions that relate to these new
functions are :
STRING MATHS
GRAPHICS STRING MATHS
GRAPHICS SEGMENT MATHS
GRAPHICS POINT MATHS
Choose String Maths from the File Tools menu to display the STRING MATHS form, or select one of
the Edit->(layer/string/segment/point)->Maths functions to display the GRAPHICS STRING MATHS
form.
To convert a pit design in plan view to section view using the pit1.str (located in the training/intro file)
Choose the String Maths from the file tools menu.
Enter the parameters as shown below:

This example swaps the contents of the Y and Z fields by first assigning the Y field to the Z field. Recall
that this operation is not committed at this time because if it were then both the Y and Z fields would
contain the value of the Y field. The Z field is then assigned to Y field. As this is the last operation the
6
results are now committed to the target fields. This approach is necessary as it would be impossible to
swap the contents of fields otherwise.
How to fill out the form
String Range

The range of strings to apply this assignment and the assignments in subsequent rows up to the next
non-blank String Range. A blank value can be used to indicate that the range applies to all strings in the
file.
Each block of assignments for a particular string range is completely processed before the next string
range is considered. In this way it is possible to calculate the average grade for each segment and
assign it to a _segment_Dn field and then use that average grade value in a block of assignments for a
later string range.
Inappropriate use of non-blank string ranges, especially all, can cause very different results to what
might be expected. Results of an operation are committed as soon as the next non-blank range is
encountered, or the last operation is processed. Inappropriate placing of non-blank string ranges may
cause operations to produce unexpected results.
Example.
String Range Constraint Field
Expression
all y x
x y
Constraint
An extra constraint to limit which points will be updated using this assignment. This is a generic
expression which must have a boolean value. As an example the Constraint can be used to limit the
assignment to the first point in each segment, or to only apply the assignment to closed segments.
Field
The field can be one of X, Y, Z, or Dn where n is an integer greater than or equal to one. Dn represents
the nth description field.

As well as these values for the fields of a point they can be prefixed by _segment_ , _string_, or _file_
to update the field for all the points in the segment, string, or file respectively. When these special
prefixed fields are used the expression is calculated at the end of processing for the respective
segment, string or file and then the field in all the associated points is update. That is rows assigning
explicit point fields are completed for each point of the segment, string or file before the expression for
segment, string, or file fields is evaluated. Within the assignments for a given string range it is also
possible to use temporary variables known as _tmp1, _tmp2, to store intermediate values.
Expression
The expression whose result will be assigned to the indicated field. The variables which can be used in
an expression are detailed below:

X The value of the X coordinate of the point
Y The value of the Y coordinate of the point
7
Z The value of the Z coordinate of the point
Dn The value of the nth description field for the point
_tmpn
The value of the nth temporary variable for this string range
grouping
An aggregate value of the form:
_<entity>_<aggregate>_<field>
where:
<entity> is one of file, segment, or
string,
<aggreate> is one of min, max, sum,
ave, or num and
<field> is one of x, y, z, or Dn
For example, the minimum x value in
a string is given by: _string_min_x
Return an aggregate value calculated from the points in a
segment, string or file depending on the first part of the variable
name. Only numeric values are included in the aggregate, so
that, for example, averages do not included blank values. The
second part indicates if the value is the minimum value,
maximum value, sum, the average, or the count of numeric
values of the field indicated in the third part of the variable
name. The aggregate value is calculate before any points are
updated for this string range block.
_file_string_no
Get the position of the string within the file. The first string in
the file is considered to have a position of one.
_file_segment_no
Get the position of the segment within the file. The first
segment in the file is considered to have a position of one.
_file_point_no
Get the position of the point within the file. The first point in the
file is considered to have a position of one.
_string_segment_no Get the position of the segment within the string.
_string_point_no Get the position of the point within the string.
_segment_point_no Get the position of a point within the segment.
_file_location The location of the current input file.
_file_id The ID of the current input file.
_string_id The ID of the current string.
A calculated value of the form:
_<entity>_<value>
<entity> is one of file, segment, or
string, and
<value> is one of area, 2dlen, 3dlen,
or closed.
For example, the area of a segment is
given by: _segment_area
Return a calculated value for the current file, string, or
segment. The values which can be returned are the total area,
2d length, 3d length, or a true/false value depending on
whether or not all the segments are closed.
_first_file_string Return true for the first string within a file.
_first_file_segment Return true for the first segment within a file.
_first_file_point Return true for the first point within a file.
_first_string_segment Return true for the first segment within a string.
8
_last_string_segment Return true for the last segment within a string.
_first_string_point Return true for the first point within a string.
_last_string_point Return true for the last point within a string.
_first_segment_point Return true for the first point within a segment.
_ last_segment_point Return true for the last point within a segment.
_prev_<field>
where:
<field> is one of x, y, z, or Dn.
For example, the x coordinate for the
previous point is given by: _prev_x
Return the value of the field for the previous point in the
segment. This value is before any assignments to the previous
point. If one of these values is used for the first point of a
closed segment it returns the value for the last point in the
segment (excluding the final closing point). If one of these
values is used for the first point in an open segment it returns
zero.
_next_<field>
where:
<field> is one of x, y, z, or Dn.
For example, the x coordinate for the
next point is given by: _next_x
Return the value of the field for the next point in the segment. If
one of these values is used for the last point of a closed
segment (excluding the final closing point) it returns the value
for the first point in the segment before any assignments were
made to the first point. If one of these values is used for the last
point in an open segment it returns zero.
A derived value of the form:
_prev_<value>
where:
<value> is one of az, dip, slope,
vdist, 2dlen, or 3dlen.
For example, the azimuth from the
previous point to this point is given by:
_prev_az
Calculate a value dependent on the previous point in the
segment and the current point. The values which can be
returned are the azimuth, dip, slope, vertical distance, 2d length
(or horizontal distance), and 3d length from the previous point
to the current point. The previous point behaves as for
_prev_<field> above for the first point of an open or closed
segment.
A derived value of the form:
_next_<value>
where:
<value> is one of az, dip, slope,
vdist, 2dlen, or 3dlen.
For example, the azimuth from this
point to the next point is given by:
_next_az
Calculate a value dependent on the current point and the next
point in the segment. The values which can be returned are the
azimuth, dip, slope, vertical distance, 2d length (or horizontal
distance), and 3d length from the current point to the next point.
The next point behaves as for _next_<field> above for the last
point of an open or closed segment.
_clen2d
Calculate the 2D distance from the start of the current segment
to the current point.
_clen3d
Calculate the 3D distance from the start of the current segment
to the current point.
The last point for closed segments is a repeat of the first point. This point is not processed like the other
points in a segment and is set to have the same x, y, z and description fields as the first point in the
9
segment. This allows expressions used to accumulate values to ignore any special processing for the
last closing point in a closed segment. Thus it is not possible to change a closed segment to an open
segment or vice-versa using string maths.
FILE TOOL FUNCTIONS
APPLYING A BOUNDARY STRING

This function allows you to include or exclude those strings that lie inside or outside a boundary string.
The Apply Boundary function is analogous to a pastry cutter.

The boundary is represented as a closed string consisting of one or more closed segments. For the
software to correctly interpret which data is inside or outside a boundary, the boundary string must be
clockwise in direction.
It is important when using this function to distinguish between spot height strings and strings which
represent open or closed features, as each will be treated differently. When applying a boundary string
to spot heights, only those points which lie inside or outside the boundary will be saved. For feature
strings, new points will be created where the string line intersects the boundary.

CLASSIFY STRINGS

It is often useful to be able to classify the strings in a file based on the value contained in a certain field.
This value may be an elevation, or a numeric attribute, e.g. a contaminating or assay grade value, or
any other numeric value you choose to put there. Strings can be classified based on the Y, X, Z or
description fields D1 to D100.
In particular, this is useful to get data classified into separate strings which may then be plotted with
different attributes.
One example is to classify block model centroids into different string numbers based on an element
concentration. This provides a file suitable for further processing (eg. Resource calculations, plotting) as
well as allowing you to display the concentration ranges in different colours in graphics.
CLASSIFY STRINGS BY TEXT
It is often desirable to be able to classify strings based upon text values contained in the description
fields D1 to D100. For example the text values could be assays which signify no sample, or below
detection (eg N/S, <0.1).
You could use Classif1y Strings By Text to write these values to the same string.
String, From and To
This is where you determine the classification of your input files. Nominate an output string number for
each text classification you want to perform.
The From field serves two purposes. If you don't enter a value in the corresponding To field, then an
equals style match will be performed. For example if you enter the text 'N/S' then only descriptions
which contain the text 'N/S' will be classified into this string.
If you want to classify between a range of values enter the start of the text range in the From field and
the end of the range in the To field. For example if you have the range 'A' to 'E' then all descriptions
matching 'A', 'B', 'C', and 'D' will be classified.
You can use standard wildcard characters to match text. The valid characters are:
10
? match any single character.
* match any string of zero or more characters
[..] match any single character from the enclosed set. For example [a-z] would match any
character in the inclusive range 'a' to 'z'. If the first character after the initial bracket is the
exclamation '!' then the effect of the range is negated. For example [!m-n] would match all
characters other than 'm' and 'n'.
The order in which you specify the actual classifications is also important. For example if you wanted to
classify into different strings all points with descriptions beginning with the values 'C*', 'CA*' and put all
other points into another string then you would need to specify the 'From'' value in the following order -
'CA*' then 'C*, and on the next row '*'.

TRANSFORMATIONS
2D Transformation
There are many occasions when coordinates must be transformed from one coordinate system to
another, e.g. from AMG to a local grid and vice versa. In addition, where survey data has been entered
using an incorrect backsight, the data can be corrected by transforming the coordinate system onto the
backsight that was used.
Another important occasion is when oblique sections have been taken through a DTM or string file using
an axis. In this case, the resultant section string files have coordinates relating to the axis used. They
can be easily transformed back to real world coordinates using this function.
This function allows you to perform a 2D transformation on a range of string files.
3D Transformation
This function allows you to perform a 3D coordinate transformation on a range of string files. Generally
this function is used to transform a string file to use the resulting file for plotting to produce a map of the
string data viewed in an orthographic projection.

As this function is used primarily to prepare data for plotting, it will optionally create for you a second
string file which contains strings which define a 3D box surrounding the data to permit easier orientation
of the data on a hardcopy plot.
The 3D transformation involves translation, rotation and scaling of the data. The transformation is
defined by:
1. Entering the direction from the "eye point" to the "view point" as a bearing and dip,
2. Entering the transformation centre point about which any necessary rotations will be
performed, and
3. Entering scaling values individually for the X, Y and Z directions.
It is quite common to exaggerate the scale in the Z direction to produce a more visually impressive plot
but the amount of exaggeration required is data dependant.


POLYGON INTERSECTION

The Polygon Intersection function performs intersections, outersections and exclusive outer sections
(unions) on closed strings. It is a very important function used, for example, to determine the amount of
ore inside an open pit or inside a open stope for monthly reconciliations or reserve calculations.

This function provides a general purpose polygon intersection utility. The purpose of polygon
intersection is to take 2 closed shapes and produce a new closed shape by performing one of the
following three tasks:
11
Intersection, or
Outersection, or
Exclusive outersection (another term for the Union of two shapes).
In the polygon intersection process we refer to one of the closed strings as the intersecting string and
the other as the intersected string. This is important as the order of specifying the strings and the type of
operation performed can have an effect on the resultant string.
Shown below are the results of each of the different types of operations.
Intersection
Intersecting string = A
Intersected string = B
Operation = Intersection
That is, string A intersects string B and the resultant string is shown. Note that the order of defining the
two strings is immaterial for the intersection operation as the result is always the same.

Outersection
Intersecting string = A
Intersected string = B
Operation = Outersection
That is, string A outersects string B and the resultant string is shown. Note that the order of defining the
two strings is important for the outersection operation as the result will be different if the order is
reversed as shown by the second diagram below.
12


Exclusive Outersection or Union
Intersecting string = A
Intersected string = B
Operation = Exclusive outersection
13
That is, string A exclusively outersects string B and the resultant string is shown. Note that the order of
defining the two strings is immaterial for the exclusive outersection operation as the result is always the
same.

To explain some of the uses of polygon intersection some examples are given below.
Intersection
Imagine that the strings used for this example represent a range of mid-bench outlines for a designed pit
(strings A) and a range of orebody outlines on corresponding levels for the same pit (strings B). The end
result required is the volume of ore within the pit boundaries.
Intersection is generally used to determine the area which is common to two closed strings. By
intersecting two closed strings we produce a string which has one or more segments which represent
the area common to the two strings.
If we intersect strings B by strings A for each of the bench levels the result will be a range of files called
strings C. Strings C represents the amount of ore on each bench level which is inside the designed pit
boundary and the volume of ore within the pit can therefore be determined.
Outersection
Imagine that the strings used for this example represent a range of mid-bench outlines for a designed pit
(strings A) and a range of orebody outlines on corresponding levels for the same pit (strings B). The end
result required is the volume of one outside of the pit boundaries to determine what is being missed.
Outersection is generally used to determine the material which might remain after an excavation is
completed, for example the excavation of an open pit.
If we outersect strings B by strings A for each of the bench levels the result will be a range of files called
strings C. Strings C will represent the amount of ore on each bench level after the excavation has been
performed.
Exclusive Outersection - Union
Imagine that the strings used in this example represent a range of mid-bench contours of a designed pit
(strings A) and a range of mid-bench contours of another designed pit (strings B) which is beside the
first pit in such a way that the two pits merge together. The end result required is a new range of strings
which represent the shape of the two pits after they have been joined together.
Exclusive outersection is generally used to join two strings together to represent the total area of both
strings and joining the strings together if necessary wherever they overlap.
14
If we exclusively outersect strings B by strings A for each of the bench levels the result will be a range of
files called strings C. Strings C will represent the shape which results after both pits have been
excavated.
15


EXERCISES

1. Using the string maths function, alter the rl (z) of pit1.str by 123m

2. Using the apply boundary function, cut a soil sampling file to a
boundary string

3. Using the classify strings function, classify the samp1.str file
based on the d1 field

4. Transform the PIT1.STR and PIT2.STR to the same grid system
using a 2D grid transform

5. Complete a 3D transformation on the file und1.str

6. Using the polygon intersection function, determine which parts of
an ore block fall inside an open pit

_________________________________________________________________________________
1. Using the string maths function, alter the rl (z) of pit1.str by
123m

a) Recall the file pit1.str into graphics.
b) Choose String Maths from the File Tools menu.
c) Enter the parameters as shown below and choose Apply.

d) Recall the file pitnew.str and pit1.str into graphics and view the difference
between them.
NOTES
16
There are several ways to complete the string maths function, Similarly, the GRAPHICS
variants all work on the current active layer, or the selected portions of the current active
layer. All these functions also use generic expressions. This string maths is accessed by the
Edit->(graphics part type)->Maths.
Please refer to the online help for a list of the generic expressions available to modify the
data.
Other Examples
To place the accumulated 2d distance along a string in the D1 field, and the complete distance along the
string in the D2 field the following can be used:
String Range Constraint Field Expression
all _first_string_point _tmp1 0
D1 _tmp1
_tmp1 _tmp1 + _next_2dlen
_string_D2 _tmp1
If string 1 has the grade for each point in D1 with missing values being set to -1 then the average
grade for each segment can be calculated to D2 using the first block of expressions below. The
second block places the grade as a percentage of the average grade for the segment in D3 with
missing values set to nothing. Note that the second block is started by a non-blank string range
value and is not processed until after all the points have been processed with the first block.
String Range Constraint Field Expression
1 _first_segment_point _tmp1 0
_first_segment_point _tmp2 0
D1 >= 0.0 _tmp1 _tmp1 + D1
D1 >= 0.0 _tmp2 _tmp2 + 1
_segment_D2 IIF(_tmp2 > 0, _tmp1/_tmp2, 0.0)
1 D1 >= 0 D3 IIF(D2 != 0.0, D1/D2*100.0, 0.0)
D1 < 0 D3 ""
To swap the x and y fields:
String Range Constraint Field Expression
all X Y
Y X
Note that since the fields for a point are not assigned until after all expressions for the point are
calculate it is not necessary to use a temporary when swapping values.
17

2. Using the apply boundary function, cut a soil sampling file
to a boundary string
a) Recall the string file soil1.str which can be found in the training/intro directory.
This file represents soil sampling data over a large area. There are strings representing contours at
100ppm intervals for arsenic and string 1000 representing the sample locations.
b) Select Display | Strings | with string numbers
Displaying string 1000 as a line does not make much sense, as this is only a series of spot heights, or
points. To make sense of the data, we want to display it as points and lines, to do this we need to know
which string numbers represent which features.
c) Identify Point (IP) to determine the string numbers associated with each feature.
d) Display | hide strings | in a layer, and select string 1000 and string 1, This will hide
the spot heights


e) Now to display string 1000 as markers, display | point | markers (or PM)
18


f) Using the recall the file function, load BDY100 into graphics but name the layer
boundary and determine what the string number is. This string number will be used to cut the data to
a boundary.
19


This now places the boundary line within a separate layer to the soil1.str.
This gives you a good understanding of the files that you will be processing within the apply boundary
strings function.
This function is a file tool based function, meaning that the files do not need to be loaded into graphics
for it to process the data.
g) File Tools | Apply Boundary String, and complete the form as shown below
20

h) compare this file soil2.str with the original file soil1.str

3. Using the classify strings function, classify the samp1.str
file based on the d1 field
a) Recall the file samp1.str which contains soil sample data into graphics.
b) View the file as point data with the description fields (d1) visible, to understand the
data. Do this by selecting DISPLAY | Hide EVERYTHING (cs) then select DISPLAY | Point |
Markers (pm) and then apply the blank form. The arsenic concentration for each sample is
stored in the first description field
c) To display the data according to different concentration ranges, select the
FILE TOOLS | CLASSIFY STRINGS BY NUMBERS, and complete the form as shown below.

21
CLASSIFICATION PASSES FOR JORC RESOURCE REPORTING

Number of classification passes: This is the number of distinctly different classification passes that are
required to classify the input data. Most applications will only require one classification pass. This is
typical when the entire input file is classified into a number of classes or grade ranges in the output file.
Therefore the most common entry here is 1.
Use of more than 1 classification pass is common when, for example, the input data is already classified
into more than 1 group. An example of this would be Proven, Possible and Probable classes for an ore
reserve. In this instance, Proven may be represented by string 1, Possible may be represented by
string 2 and Probable by string 3.
By using 3 classification passes, each of these different classes of ore reserves can be sub-classified
into different strings based on grade value. It is therefore possible to achieve something like:
Ore type Input string Output String Grade Range
Proven 1 1 0.0 > grade <= 1.5
2 1.5 > grade <= 3.0
3 3.0 > grade <= 999.0
Possible 2 11 0.0 > grade <= 1.5
12 1.5 > grade <= 3.0
13 3.0 > grade <= 999.0
Probable 3 21 0.0 > grade <= 1.5
22 1.5 > grade <= 3.0
23 3.0 > grade <= 999.0
When using multiple classification passes, whether to classify by segment or point remain constant for
all classification passes.
4. Transform the pit1.str and pit2.str using the 2d grid
transform.
Although these two pits are geographically close, they are in different mine grids. To convert them to
the same grid system:
a) Recall the file PIT1.str and to determine the co-ordinate extents select INQUIRE |
REPORT LAYER EXTENTS (layer extents)
b) Recall the file PIT2.STR and also determine the co-ordinate extents
c) Recall Pit1.str and Pit2.str to view the graphical distance between the two pits
To complete the grid transformation select:
d) The 2D Transformation function under the FILE TOOLS | TRANSFORMATIONS |
2D TRANSFORMATION OF STRING FILE
22

Any Z correction
If you wish to alter the Z values as well as the X and Y coordinates, respond with Y here.

Transform AB axis
An axis will not be transformed unless specifically requested by entering Y here.
(A)ddition or (M)ultiplication

If you specify a Z correction in the preceding question, now specify whether you wish to add a constant
to each Z value, or multiply it by a constant.

Correction factor
If Z corrections are to be applied then the constant which is to be used must be entered here. This can
be a negative number if a constant is to be subtracted.

Apply the form once the parameters have been entered and a confirmation form will be displayed.
These factors should be checked to see if they represent what is expected. If the grids are plane metric
grids the scale factor should be 1.0. Any variation as shown would represent an error. In this case
5mm in 10 metres.

Note: The rotation is displayed in DDD.MMSS format if you have selected DEGREES as your Angle
units, otherwise the rotation is displayed in GRADS.
23
SHIFT X is the difference in easting between X1 (old) and X1 (new) as entered by the user on the first
form. SHIFT Y is the difference between Y1 (old) and Y1 (new) that the user enters. In short, this is the
difference in northing and easting between the coordinates of the first point in the two systems.
e) Return to graphics and view the result of the transformation by recalling both
files transformed_pit1 and Pit2.


5. Complete a 3D transformation of an underground mine.

a) Before completing this function it is best to view the file within graphics applying a 3D
grid of the data to determine the transformation parameters.

Recall the file und1.str into graphics
This is a string file of an underground mine.

Rotate the file to a view that you deem more suitable

Select VIEW | DATA VIEW OPTIONS | VIEW BY BEARING AND DIP



Another way to view that status of the view orientation is to select
VIEW | VIEWING OPTIONS | DISPLAY VIEW AZIMUTH AND DIP

This will provide a status box at the bottom of the screen.

b) Select FILE TOOLS | TRANSFORMATIONS | 3D Transformation of String
file



Create box string file for grid
Enter "Y" if you wish to create a string file
which represents a 3D box encompassing all of
the transformed data otherwise enter "N".
The box string file which is created will be in
the same coordinate space as the transformed
strings. This makes it simple to plot the box
strings and the transformed strings together on
the one map. The box string file contains12
strings which can be plotted as required to
assist in the interpretation of the final map
which is produced.

24
c) Define the annotation intervals Y, X and Z

Enter the annotation intervals required for each of the 3 principal directions. If you are not creating a box
string file then these inputs are redundant.
The values entered for the annotation intervals have some influence on the size of the box which is
created. The size of the box is influenced firstly by the co-ordinate extents of the data, i.e. the box will be
large enough to encompass all the data in the range of string files which are processed. Secondly the
values entered for the annotation intervals also have an influence on the size of the box. This is because
the box is extended in each direction so that each extent of the box is at a whole number increment of
the annotation interval. Therefore it is important that you use appropriate annotation intervals as values
which are too large will create a box which is so large that it is useless.
Note that the annotation interval values are real world units before any scaling effects are applied.
Complete the form as shown above then press apply.



Define the directions from eye to view point

The rotations about the Y, X and Z axes are defined by entering a bearing and dip which together define
the direction from the eye point to the view point.
The eye point is a point in space at which you can consider yourself to be standing.
The view point is the point towards which you are looking from the eye point. The coordinates of the
view point are those which are entered below.

d) Bearing and Dip
Enter the bearing and dip from the eye point to the viewpoint. The values are entered as decimal
degrees. A negative value for the dip indicates that you are looking below the horizontal towards the
view point while a positive dip indicates that you are looking above the horizontal towards the view point
.
e) Define the transformation centre Y, X and Z
Enter the Y, X and Z values of the view point. This is the point about which the rotations are to be
performed. When you are transforming files with different locations for plotting on the same plan it is
imperative that you use the same coordinates for this point to ensure consistency of transformed
coordinates otherwise the strings will plot in different locations.

f) Define the scaling parameters
Enter the scaling parameters which you want to apply to the transformation. The scaling values are
defined independently for each axis. Thus it is possible to exaggerate the Z scale while retaining the
same scale for the Y and X directions.

g) Recall the file 3DT1.str and then BOX1.str to view the results.

25

6. Using the polygon intersection function, determine which
parts of an ore block fall inside an open pit.
a) Select FILE OPEN STRING/DTM and recall the file KBB135.str
This file is the ore blocks at the 135 elevation of an open pit
b) Recall the file CON135.str and append it to the above file
This file is the outline of the open pit at the 135 elevation. Notice how some parts of
the ore blocks lie outside the pit boundary.

c) Choose Intersection Polygon from the FILE TOOLS menu to display the POLYGON
INTERSECTION form.
26

It is important to understand how matches are made between the strings and files which are used in the
intersection process. There are two distinct cases which must be explained.
1. When the intersecting layers consist of a single file which has multiple strings. In this case each
of the specified strings are used individually to find the file with which the intersection process
is to be performed. This is done by taking the Z value of the string and finding a file in the
intersected layer which has this Z value as its ID number. The strings from this file are then
recalled and used in the intersection process.
2. When the intersecting layers consist of a range of files each of which has a single string. In this
case a file which has an ID number which matches the ID number of the intersecting file is
found, the strings are recalled from it and used in the intersecting process.
The end result is similar no matter which alternative is used. It is more for a matter of convenience as
the first case is typically used when evaluating open pit designs as the output from the design process is
a single file which has all the mid-bench level outlines for each bench within the pit design.
Therefore the rules which must apply to the entries which you make here are:
If you enter an ID range for the intersecting layers then you must enter a single string number
for the string range.
If you enter a single ID number as the file ID range then you may enter a string range to define
the intersecting strings.
Polygon operation
The response here will determine the type of intersection operation which will be performed. Valid
responses are:
perform the intersection operation
perform the outersection operation
perform the exclusive outersection or union operation.
Result
The result from this function will be a number of string files with the specified location. The number of
files created is determined by the number of intersecting strings or files, see the discussion above for
more details on this matter. Each file will contain strings which were defined as the intersected strings
after the appropriate intersection operation has been performed.
It is perfectly acceptable for both the intersecting strings and the intersected strings to consist of multiple
closed segments except in the case of performing the ``X'' (union) of strings. In fact it is more common
for this to be the case than otherwise.

27
Known Limitations
The exclusive outersection or union operation has difficulty if either the intersecting string or the
intersected string has multiple segments. This will generally result in duplication of some of the original
strings.
If the intersecting or intersected strings are common with each other considerable local ambiguities will
result. To try and resolve these ambiguities the strings may expand or contract the string by a small
amount. The amount of expansion or contraction will not exceed 0.001 units. If ambiguities still occur
after this adjustment an error is reported. The only solution to this problem is to resolve the ambiguities
before using this function.
Strings which have foldbacks as in the following diagram have the potential to cause problems for the
intersection process. The two diagrams below give examples of the type of problems to which this
refers. The solution in the first case is to remove point 2 from the string and try again. The solution in the
second case is to remove either point 3 or point 4 and try again.


Intersecting strings with anti-clockwise segments inside clockwise segments
The result produced when the strings being intersected have anti-clockwise segments contained inside
clockwise segments is not quite what you might expect.
This is because of the difficulties inherent in a generalised polygon intersection algorithm. The result
DOES NOT contain only those portions of the intersecting segment in the solid portion of the donut
shapes.
The result does however include clockwise and anti-clockwise segments in such a fashion that the net
area of all segments in the resultant string file reflects the nature of the embedded anti-clockwise
segments.
Because of this, you can be confident that any volume reports produced with the result data are correct.

You might also like