27
1 FILE TOOLS

02 File Tools

Embed Size (px)

Citation preview

Page 1: 02 File Tools

1

FILE TOOLS

Page 2: 02 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 user’s 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.

Page 3: 02 File Tools

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

Page 4: 02 File Tools

4

FILE TOOLS OBJECTIVES

• To learn about Surpac’s 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

Page 5: 02 File Tools

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

Page 6: 02 File Tools

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

Page 7: 02 File Tools

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.

Page 8: 02 File Tools

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

Page 9: 02 File Tools

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:

Page 10: 02 File Tools

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:

Page 11: 02 File Tools

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.

Page 12: 02 File Tools

12

Exclusive Outersection or Union Intersecting string = A

Intersected string = B

Operation = Exclusive outersection

Page 13: 02 File Tools

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.

Page 14: 02 File Tools

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.

Page 15: 02 File Tools

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

Page 16: 02 File Tools

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.

Page 17: 02 File Tools

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)

Page 18: 02 File Tools

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.

Page 19: 02 File Tools

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

Page 20: 02 File Tools

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.

Page 21: 02 File Tools

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

Page 22: 02 File Tools

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.

Page 23: 02 File Tools

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.

Page 24: 02 File Tools

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.

Page 25: 02 File Tools

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.

Page 26: 02 File Tools

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.

Page 27: 02 File Tools

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.