Skip to main content

In this webinar, Robin Simpson, Principal Consultant, SRK Consulting (Russia) demonstrates how Leapfrog Geo and Edge can create twinned pairs of data from each sampling type, and then analysing the statistics of the paired grades. The example dataset is an open pit gold deposit, and the core drilling and blast hole samples will be compared.

Mining geologists usually work with drill hole databases that represent multiple generations and types of sampling. An assessment of the relative biases that may exist between the main sources of grade information should be a key component of any data review.

Comparing summary statistics for grades from each type of sampling is often misleading, because the various sampling types are usually clustered quite differently, and even standard declustering techniques may not adequately resolve these spatial differences.

A more sophisticated approach would be to prepare separate estimates based on each main sampling type, but choosing optimal parameters for multiple estimates is likely be time-intensive, and the test estimates themselves may be sensitive to input assumptions and domaining.

This webinar will demonstrate a third option: using Leapfrog Geo and Edge to create twinned pairs of data from each sampling type, and then analysing the statistics of the paired grades. The example dataset is an open pit gold deposit, and the core drilling and blast hole samples will be compared. The same general approach can be applied to other comparisons, such as drilling vs channel samples, and historical drilling vs new drilling.



Robin Simpson
Principal Consultant – SRK Consulting


40 min

See more on demand videos


Find out more about Seequent's mining solution

Learn more

Video Transcript

<v Carrie>Hello, and welcome to today’s webinar.</v>

Here at Seequent, we pride ourselves

in providing software solutions

that solve complex problems, manage risk,

and help you make better decisions on your projects.

So I’m delighted to introduce Robin Simpson

as our presenter in this webinar

about creating and analyzing quasi-twins

in Leapfrog Geo and Edge.

Robin is a highly respected geologist

with over 25 years experience in the mining industry.

And rightly so, as a competent person under the JORC code

and a qualified person under NI 43-101.

He grew up in Christchurch, New Zealand,

where he also studied geology.

After which, he started his career in Australia

for various gold mining and exploration companies.

After a few years working there,

he decided to continue his education

and he headed to Leeds University in the UK

where he completed a master’s degree in geo statistics.

Australia beckoned him back after his Masters

and he went to work for SRK Consulting in Perth,

back in 2005.

And he has remained with SRK since,

but has also done a stint in Cardiff, Wales,

and is now based at the Moscow office in Russia.

With all this experience across multiple continents,

he has gathered an immense amount of expertise

from discovery to production

and across most commodities you can think of.

Today’s topic for this webinar

is creating and analyzing quasi-twins

in Leapfrog Geo and Edge.

And Robin is going to take us through his workflow

that he uses to do a statistical analysis

on different drill hole datasets,

which is a common challenge in resource estimation.

A quick note on housekeeping,

all attendees will be muted during the webinar,

but we will be taking questions at the end

where Robin will be answering them.

Robin, it’s over to you.

<v Robin>Right. Thanks, Carrie.</v>

This presentation is about a method

that I found useful on quite a few projects

at the data analysis stage.

I’ve called it Quasi-twins.

Pseudo-twins or something like that

could also be the name.

Hopefully, it’s clear from the title,

gives you an approximate idea of what it’s about,

but I’ll go on and explain what the problem is

and where this might be useful.

So typically when working with any real database,

it’s going to contain a mixture of different types

and generations of sampling.

And at the data review stage,

before we get too deeply into geological modeling

or estimation.

Now we should really check for any relative biases

between those different types of generations.

So the problem is, how do you make this check

when inevitably the different types of data

will be concentrated in different parts of the deposit

and not be equally distributed everywhere?

Now the potential solutions range from simple,

just doing summary statistics

and possibly to de-clustering those,

through to quite complex,

where you effectively generate alternative models

by including or excluding certain datasets.

But that can be a very powerful approach,

the alternative models,

but it can also be very time consuming

and you can get bogged down in all the,

the work you need to do

to generate domains, and optimize estimation parameters

and fit very rare models.

So sometimes, at the end of all those alternative models,

the differences between the datasets can be hidden

by differences between your estimation setup.

Now the third option, or a third option

which I’m presenting here,

is somewhere in between in terms of complexity.

It’s still so reasonably quick,

but it has some advantages and reveals some detail

that summary stats de clustering doesn’t.

So this option is where we create

these quasi-twins by pairing composites,

and then analyze the statistics of the twin pairs.

There’s not a whole lot of theory to,

to explain with this,

so I’ll just go straight to the Leapfrog project

and show how it’s done in practice.

Now, the dataset I’m using,

the client’s asked me not to reveal the name of the deposit,

so I’ve decided it’s open pit gold deposit.

It’s a mixture of core drilling and blast hole samples.

And we have some mining topography surfaces

that represent the pit position at the end of each quarter.

So based on these topography surfaces,

the geological model I’ll be using is actually

a model of the different increments of depletion.

So we can look at the blast hole samples

through different time increments.

So I’m focusing here on an example that’s

blast hole data versus core data,

which is a very common problem,

or a very common aspect you need to analyze

when reviewing gold deposits.

But the same technique, I think you will see,

could be applied to diamond core versus RC,

or to drilling versus channel sampling,

different campaigns of drilling

or to actual twin holes where perhaps the twin holes

have been colored on different elevations

and you’re looking for a way to match those twins in space.

The statistical technique I’ll come back to

is the QQ Plots function in Leapfrog,

but I’ll talk more about what a QQ Plot actually is

when we get to that stage.

So go into the Leapfrog project now.

There’s the starting point, assuming that you’ve got

your drill hole database already set up.

And you’ve got some sort of filter on the color table

that will allow you to split the different data types

or different campaigns.

So, showing you this database here.

Which you can see, there’s a lot of blast holes,

tens of thousands or maybe even hundreds of thousands.

And then you’ve got the,

the resource holes

on a fairly regular grid,

but with some areas with closer spacing.

On the color table, we’ve got filters set up

that split the database into two types,

the gray control holes, the blast holes,

and the resource holes,

which are mostly diamond holes with a few RC.

The other thing I’m assuming that’s already been set up

is whatever geological model you want to use

for dividing up the analysis.

Potentially you can do this type of analysis

completely unconstrained,

that may be useful at the very early stage.

Just about always though,

statistical analysis is improved

if you are constrained by some simple domain.

As I said, the geological model in this case

that we’re using to split the analysis

is not really geology at all.

It’s a series of depletion topographies,

so in particular we’re going to look at

well that’s showing how all the depletion so far looks.

And then within that we’ve got volumes

representing different increments of depletion.

Now the first step,

assuming that database geological model are in place,

is to decide on the appropriate compassing width


It may be useful to go to the

essay element of your drill hole database

and statistics.

Sorry, I’m not on, not on the actual gold value itself

for the statistics on the main file,

the interval link statistics.

And that will show you a histogram of,

multiple links and you can potentially filter that

just by one of the data types.

So for these, these blast hole samples,

you can see that there’s really two,

two peaks in the distribution,

one at six meters and one at nine meters

and perhaps a smaller peak at about 12 meters.

Now, I know from looking at this earlier,

that in the area that I’m really interested in,

it’s almost entirely nine meters.

So there’s that peak there applies.

So, the composite length we’ll use for,

for the comparison is going to be mid nine meters.

But the idea is we’re going to standardize the,

the blast holes, which are generally on nine meters

with the resource holes,

which are obviously sampled in something smaller,

but to equalize the support

or approximately equalize the support,

we will composite the diamond hole to nine meters.

So the next step is to, in the composites folder,

a new numeric composite,

and it’s a simple entire drill hole

without any domain applied.

Choose nine meters as the length,

but then whatever rules

you might think will be appropriate for residuals.

Oh, just make something up for now.

And it’s just the gold value from the essay table.

I know now compositing in the drill hole database here

doesn’t give you the option of any filter,

so it’s going to even composite everything,

including the blast holes to nine meters.

And given that there’s I think

hundreds of thousands of blast holes there,

When we run this,

it can take quite a bit of processing time

to do a nine meter composite of the entire database.

If your database is a

mixture of both ground control and resource,

there are workarounds to speed that up.

For now I’ll just say let’s, let’s wait it out.

Or I’ll take a shortcut and tell you

that I’ve already prepared the composites earlier.

So you don’t have to

spend 20 minutes waiting for me to process that.

So it’s assuming we’ve generated those composites

then from that composites of everything in the database,

one way to just get the resource whole composites,

which is what we’re going to use

as part of our pairing analysis

is to go to the points folder.

New interval mid points,

and then we select our nine meter composites,

and then we put on that filter that just selects the

resource holes.

The alternative would be to, you can,

at this stage use the blast holes,

or just select the blast holes.

I would recommend in terms of processing time

for the workflow I’m demonstrating here.

You, you choose the composites that are the smaller group

or the one with a fewer composites.

So which in this case is the resource holes.

So I’ve, that’s quite quick to process

and I’ve generated this points file from the mid points

of just the diamond holes.

Now onto that file while we’re here,


and whatever geological model you might be using

to divide your analysis,

you evaluate that onto this point’s file.

So in this case, it’s a mining depletion model.

The other preparatory step you can do at this stage

is to create a capped value.

So that’s under calculations and filters.

Numeric calculation,

I’m going to tap it at four.

And then it’s, when you’re creating a text like this

,by using an if statement.

So if you aspire to in four that’s four


it’s just a year

and save that.

So that’s prepared our points file with the,

the resource or the mostly diamond composites.

Now the other part of the pairing,

we will now go to estimation

and we’ll work with the blast holes.

So select domain, this is where you can

choose one of the domains from your geological model.

It’s that one, or if you wanted to do unconstrained pairing,

you can just choose the boundary.

There is a shortcut to

a meeting the requirement for having

something in the domain, but, but effectively,

including the entire volume of your model

when the trial volume of the deposit.

Choose that that option there,

and the inputs will be,

are you from the sample table

with the pride control filter on,

I’m going to say no compositing newer,

because freight control samples

are already on a fairly standard length.

So, we’ve created a new estimation,

and then in that estimation, down estimators,

new nearest neighbor estimator,

and this might have to wait for the processing to happen.

All right, well, I’ll go to the ones I prepared earlier.

So we don’t have to wait for that

and show you how it’s done.

Here is estimators,

new nearest neighbor estimator

value clipping.

So this is where we can put on some capping.

It’s the same capping we put on the diamond composites

and where it says ellipsoid.

This is where you are effectively choosing

a maximum pairing distance for creating these paired,

these paired composites.

So you use quite a tight search ellipsoid.

And in this case,

it might get a simple sphere with radius tin.

So this means that for the pairing

where we’re going to be creating peers

that are no more than 10 meters apart in any direction.

And that’s all we need to specify there.

And once you’ve created that estimator,

then you go back to the points file

with the diamond composites

and you evaluate that estimator

onto the points.

That evaluation should be quite quick.

So now with, on that points file, we have

both the information from the diamond composites

and the original points, and we got,

got the peered values from the blast soul samples

for via this evaluation.

There are a couple more filters we need to set up

before we can get to the analysis.


I’ll show you the stats on the slope work.

If you, if you look at the statistics for the evaluation,

you will notice there are a lot of negative one values

in there.

This cause LeapFrog’s inserting negative one,

where it’s not finding a,

a blast hole sample

within that 10 meter search range

of the diamond composite and midpoint.

So for further evaluation, further analysis,

we want to exclude those negative ones.

And we also probably want to set up a filter,

that’s going to divide it

according to the domains from a geological model.

So tidy this up and close a few windows.

Back to calculations and filters.

New filter,

and we’ll call this


and the

quarter 12 domain”

Really two parts to this filter.

So in the mining depletion

from the Von mining depletion evaluation,

it’s that equals

before quarter 12.

And the other part is

the nearest neighbor evaluation

must be greater zero.

So let’s sit up now.

We’ll see how those

points look in 3D.

So the,

here are the, all the

diamond composites in her file,

kept at four,

we can filter it.

So it’s just

the pairs that are in that particular

lump of depletion

and have blast holes


10 meters.

Check that, so that’s the nearest neighbor evaluation.

That’s what it looks like in 3D.

And then we can start making statistical comparisons.

And the, the simplest is just to look

at the uni variant stats.

So on our

kept diamond composites,

we have

5,937 composites

that meet that condition of being

within that particular zone of depletion

and paired with a,

a blast hole grade.

So the mean value of those is about 0.6.

And similarly,

we can look at these statistics for the period values.

So the main value is about 0.61.

So there’s,

there’s not much difference in mean

just from those quick comparison

of histograms and summary statistics,

but a more, more informative comparison is,

is the QG plot.

For those of you who may not be familiar with this tool,

I’ll, I’ll explain briefly

how it works.

So, a QQ plot

can be used wherever you have two sets of data.

The two sets of doubt don’t have to be of the same size.

Now, in the case, we’re using it here.

They are of the same size because of they’re pairs,

but QQ plot doesn’t rely on that pairing link.

Then once you have the two sets of data,

then you calculate quantiles,

which happens by ranking each to data set in order

and then picking you out numbers

at certain points in the ranking

that correspond to quantiles.

Now usually the quantiles are talking about a percentiles

in this very quick, rough example shown here

I’m using deciles.

So, so every, points are at 10% increments of the data.

So this, how I see it has 10 values.

This has 20 values.

So when we do our quantiles, we’re using all of those.

And when we’re using the quantile or the decile

or somebody said for 20 values for using every second value.

So after ranking and

doing these selection based on the certain percentages,

then we plot the quantiles against each other.

And that’s,

that’s what gives us a chart that looks like this.

Now, normally we’re dealing with much larger data sets,

but this simple example shows,

shows the mechanics of what’s going on.

So I go back to the LeapFrog project.

Now this happens and LeapFrog.

So you would click on


Right click on the file, the points file statistics,

QQ plot,

the X input will say the,

the kept grades from the diamond composites.

We put on that filter restricted

to the certain name we’re interested in

the wides, the nearest neighbor evaluation.

Again, with the filter,

and we get a chart that looks like this,

and you can put it on the one-to-one line

for information as well.

So, so in that case, that example,

there is showing that there is actually a,

quite a good relationship between the blast hole samples

and the diamond core samples.

If you’ve done as a simple scatter plot,

which we can also do,

and using the same sort of inputs,

you get a bit of a mess, and it might be difficult to read,

anything matched into that, but with the QQ plot

and the way it’s ordering and ranking by percentiles,

it shows that the distribution of

diamond composites within this domain

is very similar to the distribution of blast holes,

which can actually be a surprising result.

If you’ve seen blast hole sampling done in practice,

it often looks awful

and many cases,

You wonder how you can possibly get a representative sample

from it, but for this deposit,

it seems actually to be working quite well.

That was just one of those depletion increments.

In this case, I’ll use the file I prepared earlier.

I’ll show you what it looks like when preps, the,

the two sets of data don’t match up so well

for this quarter 12.

Now show the quarter 13. Okay. So.

If you look at that QQ plot,

you can see that

the low values and the high values of the distributions

match up reasonably well.

But in between, it seems as though the,

the curve is dropping below the one-to-one line,

which in this case means that the,

the diamond information diamond core information is

biased higher relative to the blast hole.


that was quarter 13,

quarter 12.


so the diamond composite information is on the X

Blast holes on the Y.

This is showing you an example where

you have a things reasonably good up to about 1.3, 1.4.

And then we start to see the blast holes

being somewhat biased high relative to the diamond core.

So those are reasonably real examples of what

QQ plots can look like.

And the QQ plots revealing a bit more than,

than just the, the univariate sort of sets,

or looking at the means of the two sets about it would.

So that’s, that’s the workflow up to using QQ plots.

There would be other types of analysis you can do,

or just do a summary of what’s happened.

Okay, so the workflow that’s mentioned

before starting you seem that you had the database set up

geological model set up,

and you had filters on the Color table

that divide your data into different types.

And you choose the composite length you’re going to use for

the analysis.

In this particular case, the influenced statistics tool

on the essay table can be useful.

And the composites folder of your database

make numeric composites at that length.

And then the way we split out a one,

one data type from those composites

is to use the interval midpoints option

in the points folder.

And at that stage, I recommend choosing as your valor type,

this first stage is one of the fewer holes.

Evaluate the geological model onto those points.

Potentially set up a capping grade on those points,

and then go to the estimation folder

and set up a new domain destination

where the input will be any domain

you want to use to constrain,

and you filter be the composites of samples five,

whatever the second data type is

within the estimation credit, nearest neighbor estimator

with a reasonably tight search distance

and set a capping on that estimator.

And then you evaluate that nearest neighbor estimator

onto the midpoints that contain the,

the first part of pairing

with that file with the,

the paired points and the paired points

for the nearest neighbor evaluation.

Set up filters to split by domain

and to exclude

anywhere where there’s been a default negative one assigned,

which will mess up your statistics.

Once you’ve done all that,

then you can go and start analyzing the pairs

with either various statistics

or the QQ plot can be quite useful.

So headed back to Carrie for any questions.

<v Carrie>Thank you, Robin.</v>

Thank you for your presentation.

Robin is available to take questions.

So if you have any questions,

please type them in the questions box,

and then we can.

Give it to Robin to answer them.

I, I don’t see any questions in the box at the moment,

but Robin, I’ll ask you a couple of my own here.

So for similar examples to the case study,

what are some approaches that could be used

if the grade control and resource drilling data,

not already combined into one database?

<v Robin>You know, well Carrie the,</v>

if they are in one database,

sometimes it can actually cause a problem

because of the, the compositing of everything.

So, it can be very slow.

And if it has to churn through

hundreds of thousands of blast hole samples.

So, if your database just has the reasonable samples,

it may be possible to import the blast hole samples,

from another database, just as X, Y, Z points.

Not as input tables,

and if those blast holes are already standard lengths,

you don’t need to do anymore depositing

so, just importing the midpoints

through the holes will be sufficient.

Another thing is that with the latest version of LeapFrog

I see there’s an option for a lot more databases.

I haven’t used this much myself yet,

but this may also make it, the process work better

because if you have the blast holes in a separate database

then when you do the general depositing

on the resource holes,

that depositing doesn’t need to run

through blast holes as well.

<v Carrie>Sure, great. Thank you. Thanks for that</v>

We do have a question,

from one of the attendees now, from Evan

He asked, “Did you make the nearest neighbor estimation

on all data or only on the blast holes?”

<v Robin>Yeah so the way I set up,</v>

the nearest neighbor estimation was

the blast holes is the inputs

and then evaluate that onto the diamond composite

as the output.

It will be possible to do it in reverse as well.

To do a similar analysis, with using the resource

as the input and the blast holes as the output.

I often stand to practice, that it runs a bit faster

if you choose the,

the input

for the nearest input

the more circles in it.

So I hope that answers the question.

It didn’t run it’s nearest neighbor

on everything all at once.

We did separate

the diamonds and blast holes

based on the filters we did on the color table.

<v Carrie>Great, thank you.</v>

So Evan, I hope that answers your question.

Oh, I’ll ask you another one from myself here.

So in the case study, 9 meter composite length was used

assessing of the QQ plot comparison,

so does this choosing of the relatively long length

for the diamond drilling composites,

have any barring of the composite length

that would then actually be used for

setting up the rigging estimate.

<v Robin>Oh, it doesn’t need to, I mean</v>

the 9 meter length was necessary to make the support

to the break control information for this analysis.

9 meters is certainly a long length.

It would be what most people would use

for resource estimation diamond,

or one or two meter diamond ore.

Like diamond samples.

But once you’ve done this assessment

and decided whether or not there’s any bias.

They can be entirely separate with how you proceed

with the reasonable estimation, using only the blast hole.

Without using the resource holes.

And you’d probably revert to it.

Probably, a one or two meter composite length for that.

<v Carrie>Yeah, sure I think, yeah, some good advice there.</v>

Last question from me.

So don’t see any more questions in the question box.

So in the case study, you did the analysis by domain.

Is this always necessary,

or could you do on the deposit scale?

what would be your thought process on deciding, you know,

to what scale you would do the study on?

<v Robin>It depends on how,</v>

how much information available

and whether your domains are prepared yet.

Or you can go ahead with this analysis

even before you’ve prepared any domains

and just do it as unconstrained,

and then repeat it as you develop and test your domains,

somewhat constrained by you need probably

several hundred pairs to get a useful QQ plot.


which domains you use

and what level of detail and remaining

you apply to this that does depend on that constraint of

making sure you actually capture enough pairs

to make it worthwhile

that the pairing can be adjusted by,

by playing with the, the search distance.

I use 10 meters that example,

and you might move that up or down by a few meters,

so that the process isn’t dependent on domains,

but like most statistical analysis

things are improved by

using domains as much as possible.

<v Carrie>Yeah, sure. Yeah. Yeah. I guess, yeah.</v>

It’s depending on the amount of data.

Great. Thank you.

We had a question come in from Laura.

She asked, “Is this method to create the twin pairs

still efficient with another estimator,

such as Coke rigging.

<v Robin>At this stage, I’m just,</v>

just doing it as a very simple pairing exercise, not,

not trying to bring any vary grams or,

or weighted estimates in.

Sense of using

the nearest neighbor,

just as a method of making pairs.

It’s not really as a, as an estimator itself,

if going to bring in techniques like Coke rigging.

Now that implies that you’ve already done some details,

statistical analysis and interpreted

variant vary grams across vary grams,

Whereas, I’m seeing this method had been more useful earlier

in the analysis process.

<v Carrie>Okay. All right.</v>

Hopefully that answers your question. Laura,

has anyone got any other questions?

I don’t have any from my side,

so there’s no more questions we’ll, we’ll finish up.

So I don’t think there’s anything more coming through here.

So just lastly then to, to round off,

thank you for attending today.

And I hope that, you know,

you find this will find this,

a useful technique that you will try in the future.

If you want to get in touch with anyone here at Seequent or

with, if you want to contact Robin, SRK

Robin is on [email protected]

And at Seequent, you can support us, oh sorry,

contact us at [email protected]

for your technical queries or more kind of a licensing

and sales queries are at [email protected]

Okay, well, thanks very much, Robin.

Thank you as a great presentation

and thank you for answering the questions as well,

and I wish you all a good day.