DH Assay Sum Calculation

Richard S 2 years ago in General updated by Gary Brabham 2 years ago 7


I am trying to cumulate assay data downhole and create a collar file with the results. For example, hole DH001 has 1m DH assays of 1.0, 1.0 ,5.0, 1.0 = 8.0. 

Then, I need to make this 2.1 value merge with the collar. 

Does anyone have any tips on completing the task please? Thanks,  

Apologies, I made an error in the Question. The resulting value should be 8.0, not 2.1. 



Hi Richard

If all your sample intervals are the same length, use Drillhole|Calculations|Extraction.  Input is your assay file, select constant field to be Hole ID and extraction type to be sum.  This will write a file with one record for each hole with the grade field being the sum of assays in the hole.  Make sure the field width in the source assay file is big enough to contain the resulting numbers.  Make a new field in your collar file for the sum of assays and merge from the results file into the collar file using Hole ID as the key field.  Job done.

If your sample intervals are not constant you can use the weighted average extraction type to create a weighted average grade for each hole, then multiply that by the eoh depths to get the sum of grades for each hole.

There are also ways to achieve the same result using the compositing functions.



Hi Gary, 

Thank you for taking the time to answer my Question. I achieved the result I was after. 

Cheers, Richard

Hi Richard,

Can you use this process for non-numeric data also? I.e., if I wanted to calculate the % of a certain type of lithology within a drillhole or even over several drillholes i.e. within a planned pit design?


Hi Richard

You can use the Drillhole|Compositing|Geology function to do that.  You first need to flag what logging intervals lie within the pit using the wireframe assign or DTM assign function.  If you have very long lith logging intervals that overlap the pit limits you might have to first generate file with shorter "composited down" lith intervals.  The use a filter in the compositing function so that it only considers intervals flagged as being within the pit.  Use your lith logging field as the Geology variable in the compositing form.  It will output From - To intervals for each run of each lith code flagged as lying within the pit.  You can then generate another file using the field you have used to flag intervals in the pit as the Geology variable in the compositing function.  That will generate a file with From - To intervals for the total length of each hole within the pit.  Use Merge and maths functions to generate the percentage of each lithology logged in each hole within the pit volume.  That will approximate the percentage of each lithology within the pit PROVIDED your drill pattern in fairly uniform.

A better way to approach this problem is to use indicator kriging to create a model representing the proportion of the lithology of interest in each block of a model.  Estimate indicators into panels with X-Y dimensions that approximate the drill hole spacing.

Gary B

Hi JohnC,   If only interested in one lithology I would think you could achieve that by filtering for that particular lithology in the filter of the Input section of the Drillhole Extraction function.  You would then just use sum, but the crucial bit is that the "extraction field" that you would be summing would be the interval length (a pre calculated field of depth to - depth from, if it doesn't already exist in your file).  This would extract the total interval length of that lithology for the hole, and if you merge that onto your collar file where you have the total hole depth, then it becomes an easy calculation to generate a % from the two values.  

If interested in the % of multiple lithologies, you could repeat this process many times, or there are two other options.

1 - use the lithology as "Constant Field 2".  I think however the output of this would not be particularly useful as it gives you a new line in the output file for every lithology as it is encountered (so they get repeated).

2 - with a bit more pre-conditioning of the data this function should be able to give you a total metres for each lithology in its own column.  You would need to write an expression calculation that separates out the lithologies first, and puts the interval length of each interval into the respective lith column.

=if ([LITH] = "MDY" ) then

If you repeated this for each lithology of interest, examples below, and then ran this expression calculation on your lith file.

You could then use those new "_int" fields as the "Extraction fields" for the extraction function.  You can also specify multiple extraction fields with this option so you only have to run the function once.

The output is a single line per Hole, but with the sum of each lith in it's own field.  These fields can then be merged to the collar (or the collar depth merged to this file) and then the percentages calculated.

Final though, as a database administrator, I know that this sort of aggregation and calculation would be 1000% quicker/easier in an SQL database, so if the data is coming from a database then consider asking the DBA to write a script to do this there.



Jon, by using eoh depths in the collar file you have not considered that some portions of some drill holes may not be within the pit volume.  Indicator kriging the superior option Richard, if you're familiar with it.  That will give you not only the proportion of lithology of interest but also a model of its (approximate) location.

Gary B