Drillhole 3DM intersection
This function allows you to perform intersections between drill holes stored in a drill hole database and 3D objects created using solids modelling functions. For example, you may need to extract samples which are inside a particular zone of mineralisation for geostatistical analysis and the only way to define the zone of interest is to intersect the drill holes with a 3DM.
To run this function: Choose Database > Analysis > Drillhole 3DM intersection, or Solids > Solids tools > Drillhole 3DM intersection, or...
The results of the intersection are written to a log file for later inspection. The points of intersection can also be saved to a table in the database with a special code to indicate the portions of the drill hole which are inside the 3DM.
Preparation
Prior to using this function you must have a drill hole database which contains the drill hole data of interest. You must also have created a 3DM by using the 3DM creation functions discussed previously.
Note: If you plan to save the intersection details to the database, the 3DM must be closed and validated. The only way to ensure that this is the case is to use the VALIDATE Neighbours and Validate OBJECT function on the 3DM.
Furthermore, we recommend that if you plan to save the intersection points to the database then you should create a separate table for storing the intersection details. The reason for this is that the since these intersection points are the result of interpretation it is better to not mix them with actual measurements of the drill hole from the logging operation.
From the Solids menu, select Solids tools, then Drillhole 3DM intersection to invoke the function.
The drill holes which are to be intersected with the 3DM are selected by naming the database in which they exist and by defining selection criteria such that only the drill holes of interest are used thus minimising processing time.
Database Name
Enter the name of the drill hole database which contains the drill holes which are to be intersected with the 3DM.
Complete the SELECT DRILLHOLE DATABASE form and choose Apply to display the SELECT DRILL HOLES BY HOLE ID form.
Complete the drill hole selection forms and choose Apply to display the INTERSECT DRILL HOLES AND OBJECTS form.
Define the object number to intersect with
Enter the Object number with which the drill holes are to be intersected. Note that this object must exist in the active layer. Before using this function you will typically recall a file containing the object of interest.
Name the layer for saving the resultant hole trace segments
Layer name
One of the results of this function is to draw on the graphics screen the parts of the drill holes which are found to be inside the 3DM. To do this you must define the name of the layer to which these parts of the drill holes are to be saved. Avoid using a the name of a layer which already exists. The parts of the drill holes which are found to be inside the 3DM are saved to this layer as separate segments of string 1 and are drawn using a line weight of 2 thus giving a thicker than normal line. The colour used is dependant on the drawing styles setting for string 1. If you wish, you may save the strings in this layer to a file for later use.
Save intersection to database
Respond with `Y'es if you wish to save the intersection results to a table in the drill hole database. Respond with `N'o if the results are only to be reported to a log file with no updating of the database tables. The intersection details can only be saved to the database if the object, and all trisolations of it are closed. If you respond with `Y'es and the object is not closed then a warning message is displayed to inform you that it is not possible but processing will continue and the results will only be reported to the log file.
To have the 3DM recognised as being closed you must first apply the VALIDATE Neighbours and Validate OBJECT function to the object in question.
Note: The following three inputs are only required if you responded with `Y'es to the prompt to save the intersection results to the database.
Table name
Enter the name of the database table to which the intersection details will be written. This table MUST be an interval attribute table, that is, a table which has depth_from and depth_to fields.
Field name
Enter the name of the field to which the intersection code will be written. Ideally this field is a character field.
Int code
Enter the code which will be written to the field name entered above to indicate when an intersection between the 3DM and the drill hole is found. An intersection consists of a depth_from and a depth_to which define the part or parts of the drill hole which are inside the 3DM.
When the intersection details are saved to the database a number of special conditions must be considered and dealt with. The conditions and the manner of dealing with them are listed below:
- The drill hole collar is inside the 3DM
This is treated as a depth_from with a value of 0. - The drill hole finishes inside the 3DM
This is treated as a depth_to with a value equal to the length of the drill hole - There are gaps in the samples which presently exist in the table
New samples are created to fill the gaps in where necessary. Because of this you should ensure that the fields in the geology table will permit the entry of nulls as when the new samples are created as the only field which will have a value defined is the field to which the intersection code is being saved. - The intersection depths will cause existing samples to be split
The depth_from and depth_to values of the existing samples are altered and new samples are inserted to maintain the integrity of the existing samples in the table.
Define the log file for results
Enter the Location and ID number to define the `.log' file which will contain the results of the intersections. The results include the drill hole ID, the depth_from and depth_to of the segments of each drill hole which intersects the 3DM and the intersection code which was entered to indicate the 3DM which was intersected.
Boundary conditions
A convention has been adopted for this function so that any portion of the drill hole trace that is exactly coincident with the surface of the trisolation will be considered as being INSIDE the trisolation.
Any intersections between the drillhole trace and the 3DM that constitute a touch only, that is an intersection of zero length, are completely ignored regardless of whether they are an internal touch or an external touch. This treatment will ensure that the lengths of intersection intervals are maximised in length and made contiguous where conditions permit.
Result
The results are saved to a table in the drill hole database if you responded appropriately above. The segments of the drill holes which are inside the 3DM are drawn on the screen to give visual feedback of the intersection function. The strings which represent the drill holes may be saved to a string file for later use. A log file is created which contains a summary of the intersection points.
The heading for the fourth column in the example below is the value which is entered as the field name to which the intersection code is to be stored and the values in this column are the code value which represents the intersections.
Hole ID Depth from Depth To stope ------- ---------- -------- ---------- HOLE1 94 108.57 ST1 HOLE10 0.0 9.5 ST1 HOLE11 96.14 106.68 ST1 HOLE12 92.98 103.9 ST1 HOLE13 70.18 85.85 ST1 HOLE14 45.46 64.06 ST1 HOLE15 36.59 52.83 ST1 HOLE2 75.54 87.46 ST1 |
Errors
Object nnn does not exist
The object number which you have selected for performing the intersections with does not exist. Possible reasons for this are, you recalled a `.str' file rather than a `.dtm' file. The active layer is not the layer which contains the 3DM or you have not yet created the 3DM.
Selected table ``table name'' is not of interval type
The table name which you selected for saving the intersection details to the database is not an interval table and cannot be used for this purpose. Interval tables are identified by the presence of depth_from and depth_to fields.
Note: If any of the trisolations in the object have validated=false, then the function will exit with an error message. If any of the trisolations have not yet had the validated flag set, the WARNING: 3DM NOT YET FORMALLY VALIDATED form is displayed.