Skip to main content

Learn how to improve your VOXI Earth Models with impactful constraints.

Start with the basics, and build up to Geologically constrained model.



Kanita Khaled
Geophysicist – Seequent


30 min

See more on demand videos


Find out more about Seequent's mining solution

Learn more

Video Transcript

(relaxing music)

<v ->(Kanita) Okay, we’ll get started here.</v>

So again, welcome to Seequent’s live demo

of VOXI constrained modeling.

My name is Kanita Khaled.

And today we’ll be talking about

how to incorporate constraints into your VOXI model.

We’re going to keep things very practical today,

it’s going to be a very hands-on overview

on how we work our way up from an unconstrained model

and then adding simple constraints,

and then towards more complex geologically constrained model

using drilling data.

We won’t be covering too much theory,

but we’ll start with the basics, and then work our way up.

Okay, introduction.

So my name is Kanita,

I’m a geophysicist based here at North America,

and today I’m joining in from Toronto.

So my training, my background’s in geophysics,

primarily in the mining and exploration field,

and here at Seequent,

I work within our technical team here in North America.

Okay, so let’s dive right into the demo here.

We’re going to jump into the application.

I’m going to turn off my video here just to accommodate

a little bit more bandwidth.

Okay, so here I have an airborne magnetic dataset,

flown over the Mount Palmer gold mine district

in Australia.

And this airborne magnetic data

was collected at Hawaiian spacing of 25 meters spaced apart,

And there are a total of approximately 35 lines

of aeromagnetic data.

I also have a digital elevation model, or typography,

which is what we will be using for the inversion today.

There has also been a drilling program for this project,

and this drilling camp here has successfully identified

two different iron formation zones

that are associated with gold mineralization.

So these iron formation meshes in magenta here,

these are associated with gold.

And still being able to map the geometry,

and the extent of this banded iron formation,

is very critical to this exploration program.

And the purpose of the aeromagnetic survey was to be able

to further delineate the geometry,

and the extent of this banded iron formation.

And really try to better understand

whether these two interpreted units

are separate (intelligible).

is required to understand

whether these are potentially connected has one unit.

So our goal today is to work up,

from an unconstrained model,

to a geologically constrained model,

using these drill hole lithology results,

so that’s our goal.

And to do that, we do start with our drilling data,

and we do have to explicitly model these results

so that we can work them into our inversion.

So our first step to doing that,

we have to carry out a process that’s known as wireframing.

And wireframing is a form of explicit modeling

of your geological data.

You see this magenta body here,

this magenta mesh here, or the iron formation.

How did we get here?

Well, through wireframing.

So I do want to side step a little bit away from VOXI.

I want to show you the wireframing process,

because it is quite powerful.

And the first step of wireframing, or drilling data,

is to start off by creating cross sections.

And you want to create cross sections

that span your entire project area,

so let me minimize this.

And you can see that I’ve created

quite a few cross sections here, I’ve done just that,

and I’ve created several cross sections

that span my project area.

The more you have, the more cross sections you have,

that you can use towards this wireframing process,

the more detail your geological model will have.

So, here’s an example of a cross section and I can,

from here I can go ahead and start digitizing

right on to this cross section.

And to do that,

we would be heading over the section tools,

and creating a new geostring,

we can give that geostring a name,

and then we would have to add the features

that we want to digitize.

So here on the left, you can see two different units,

you see the overburden, and you see that iron formation

that we’re interested in, so we could add those in.

So the overburden is alluvium, we can give it a color,

and let’s call this overburden.

And then similarly,

we also want to digitize your iron formation,

cause that’s where your gold is,

and so you have to add that feature as well.

I’ll call that sedimentary iron formation.

And so now, I have these two features

that I can then go ahead and start to digitize.

And the digitization process

is done right here on this cross section.

Of course, in real life, in practice,

I would do this a lot more carefully,

but just for demonstration, that’s a very quick way

to get go from having separate vocals and vocal apologies

into a nice cohesive unit there,

that’s been digitized right on the section.

So in this manner,

you want to do this for all of your sections,

and let’s open up a more completed digitization process,

just to show you what that looks like.

So, here, now I have multiple cross sections

within which I have my digitized bodies.

So now that I have these digitizations on my cross sections,

I have these nice features that connect my iron layers

and my overburden layers,

carrying out this process on all of my sections,

I can then take it to 3D, and then

wireframe it out into a cohesive body.

Okay, so let’s close out these sections and head into 3D.

So now I have my 3D view here.

And if I were to bring in those interpreted digitizations

into my 3D view, it would look something like this,

turn off my drill hole data here.

So here are those digitized bodies,

right from that section now visualized in my 3D view.

So the next step here would be to close the gap,

between these disparate bodies, into one cohesive unit,

and that is the process of wireframing.

So to do that,

I would select geosurface, wireframing,

and then start wireframing.

And starting the wireframing process

would allow you to connect the dots,

and come up with a cohesive unit

that looks something like this.

So I’ve got my overburden there at the top,

and I’ve got my iron formation in magenta,

here at the bottom.

Okay, so that’s in a nutshell, what wireframing process is,

and now these wireframing bodies, or meshes

for the overburden here in blue,

and the iron formation can be saved as a geo-subsurface file

so that we could use it towards constraining our VOXI model.

So, let me go ahead

and open up a new project for my VOXI model.

So, yeah, that was a bit of a crash course on wireframing,

now we’ll take all of that

and we’ll incorporate it within our VOXI project.

So let’s start a new VOXI project,

we’re going to start with an unconstrained model.

So from the VOXI menu,

we’re going to create a new project from polygon.

You can give your project whatever name you like,

and the polygon file here will be the file

that outlines your area of interest here.

And for your digital elevation model,

you want to use the topography grid

that we saw in the previous Reese’s montage project.

So this is your Topo and the method we are using today

is magnetics.

And the model resolution. We want to keep this 10 meter.

This is a,

a good resolution for recovering some of the features that

we want to see.

And so this is going to create a new VOXI project.

And next it’s going to ask me to add in my data.

So, let’s say yes to that.

And the database that we saw earlier,

the one that contains our data, our mag data,

we can pull that in, and Oasis will automatically,

intelligently, read in the coordinate information,

and you do have to specify your elevation.

The model type we’re working with today

is a susceptibility model.

And the type of data we’re working with today

is a magnetic dataset.

And you do have to point the program towards which channel

in your database contains the actual data.

This is our residual magnetic intensity

that’s ITRF corrected.

So we’ll be using this,

and we’ll go ahead and accept,

we will go ahead and move a linear trend

from the background and finish.

So it’s simple as that.

That is how you’re starting a VOXI project.

You’re adding in the data.

So here is our project space, or our model space,

if you will. And this contains in the,

in the small circles here,

those are our observed data points,

and those are placed within our model mesh.

The model mesh is our model space within which our in

version will, in-version results will converge.

And on the left-hand side here,

I can see a list here of constraints.

I have one constraint that’s in bold.

I’m just go ahead and turn that off for now.

So these are all of the possible constraints that I can add

to my VOXI inversion model before I press ready,

But right now I don’t have any active constraints.

If I did have an active constraint, that would be in bold.

So right now I have none.

So we could go ahead and run just this data as it is,

without any constraints,

and pressing run here would then essentially

upload this data onto the cloud.

This data would then run on the cloud and the results would

then be downloaded onto my computer

and into my VOXI project.

And because this is running on the cloud,

I could close my project up,

work on something else, and then return to my project once

it’s done.

And so that really allows me to free up any computing power,

as all the processing power is not really

being accessed from my local machine.

Okay. So for the sake of time, I have already hit run here,

I’ve run the model,

and I got my unconstrained model results.

So let’s take a look at the unconstrained results from,

from this aeromagnetic data set.

So here is that wireframe body again,

and I want to now look at my unconstrained susceptibility

results versus our drilling results here.

Okay. So here is the unconstrained susceptibility result,

no constraints at all,

and taking our, taking a first look at this,

it’s promising,

we can see that this pink anomaly, where my high is,

we can see that our target is recovered,

where it’s supposed to be, spatially.

So we’re off to a good start.

However, when I clip away at this, at this model here,

when I clip away at the Y axis,

to try to see how it corresponds,

we see that the geometry is not really recovered.

It’s a very smooth build,

and it’s certainly not very compact.

It’s not as compact as the target that I would be expecting

for this particular project,

but that’s essentially what an unconstrained result is.

It’s giving me the smoothest possible results,

so we can improve this.

We can definitely add a little bit more known knowledge,

before running our inversion,

and that’s where this constraint tree comes into handy.

This is where we’ll be adding our constraints from.


So the first constraint we want to add is going to be the

upper bound constraint. And that is exactly as it sounds

we will right click and modify,

and we’ll add an upper bound constraint of one.

So what am I saying here?

By setting an upper bound constraint of one,

we’re saying that everywhere in this model,

we want to limit our inversion results to a value of one.

We don’t want to going higher than that,

because we have that knowledge of this particular area.

That’s what the walks in this area reflect.

We’ll say yes to that.

And similarly, you can do that for a lower bound.

So this is our second constraint,

and we’ll set this to zero, and now I have two things in

bold, meaning they’re both active,

and now we’ve applied two constraints, upper bound,

lower bound, with the upper bound, we set a constraint,

constant constraint,

where anywhere on our project,

the susceptibility value cannot be greater than one,

that’s the upper bound. And anywhere on our project,

our susceptibility cannot be less than zero.

So in this way, it’s very subtle,

but we’re guiding and pushing our solution towards values

That make sense from a geological perspective,

another really good and low effort

constraint is the IRI focus.

So this IRI focus is, again, like it sounds, it is,

it’s a tool that allows you to focus in your results.

It doesn’t require any prior knowledge of your geology or

the geometry of your target.

It stands for iterative, we’re waiting in version.

And what it does is it just,

it sharpens up an otherwise fairly smooth inversion

result, like the one we saw,

and it also improves any contact definition,

so this is helpful for controlling the depth of your target.

And it’s also very helpful in situations where you don’t

know any prior geological information.

So this is what we call a low effort, but high impact tool.

And by default, I have this set to two,

it’s a value that we know works quite well.

Okay. So this is now in bold,

so now I have three active constraints, an upper bound,

lower bound, and then an IRI focus.

The next thing is adding the geologic constraints.

And where is my geologic constraint coming from?

Well, it’s coming from this mesh that I created

earlier on, this wireframed body.

So this is what we now want to incorporate.

Okay. So to do that,

we’re going to be using the VOXI constraint builder.

So from constraints, I’m going to select create,

and then build a model.

And we do need an input template

that is going to be our mesh.

This is exactly this mesh here that’s been exported out.

And the constraint type here is going to be a parameter

reference model,

Excuse me, and for the contact here,

we’re going to be using the geo surface file that we created

from our drilling data.

So we know we have that mesh. And from that mesh,

we’re selecting the iron formation,

and we’re setting outside this iron formation,

anywhere outside this information,

I’m setting a value of zero, and anywhere inside this

formation, I’m setting a value of one.

So essentially, I’m taking that surface and I’m seeing,

and I’m guiding our inversion towards this particular value.

And the beauty of the constraint builder is that you could

keep adding more constraints, geological,

geologic constraints, but for our purpose,

we’ll just use the iron information as our main constraint.

That’s going to go ahead and build that parameter reference

model, which we can then see on our screen.

And if I clip away at it,

I can see that indeed it is that mesh. So we’re,

we’ve now assigned value to that particular mesh from a

physical property that we’ve assigned to that mesh.

So with the parameter reference model,

we don’t just supply the parameter reference.

It’s also paired with a weighting,

and this weighting allows us to define the confidence

in this particular reference model.

So that’s done through the parameter weighting here.

I can right click and modify,

and I’m setting this to a constant value of one.

What does that mean?

So this means that a value of one means that I have a very

high level of confidence in this parameter reference model.

And we have this level of confidence,

because we know this is real drilled data,

so we’re confident in it.

You could also use ABOXOL, which is a 3d body.

So that would then allow you to vary your

level of confidence,

if you had more confidence in certain areas

versus the other, you could specify

that through ABOXOL, as well.

But for today, we’re going to say we’re very confident

everywhere, and press okay.

And so now that is in bold,

so we now have the parameter reference with the mesh, and

we’ve given it a high weighting, or high confidence, of one.

Okay. Our last and final weighting today

will be the gradient weighting.

This, these three here, east, west, north, south,

and vertical gradient weighting.

So when you look at a drill core,

you often see really abrupt changes between two apologies or

your contacts, right?

So, you know, for example,

we know quite confidently that there’s likely a pretty sharp

contact between this iron formation and its surrounding

block units.

And if we wanted to reinforce those contacts

in every direction, east, west, north, south, and vertical,

we would have to apply the gradient weighting constraint.

And this constraint doesn’t require any knowledge,

or any information on physical properties.

You don’t need to know any SI values, or anything like that.

You don’t need any susceptibility values.

You’re just looking at the contacts,

and reinforcing the context, you’re sharpening up the edges.

Okay, so let’s go ahead and do that.

So we’re going to go into constraints, create,

and then gradient weight model,

and our input voxel is going

to be our parameter reference model.

That’s our, that’s the feature that you see

on the screen there.

And it’s asking me,

do you want to create this weighting in all directions?

You want to reinforce contacts in all directions, and I’ll

say yes to all directions and press okay.

And that would, then, go ahead and create separate waiting

voxels for each of those Cardinal directions.

So, we supplied a parameter reference model,

we supplied the weighting

for that parameter reference model.

We’re confident in it, and we’re saying,

take this reference model, and make sure you sharpen up all

of the contacts, and reinforce all of the edges in that

particular model. So, now we see these three now in bold,

meaning that they’re active.

So that was my last constraint, we have a total of

eight constraints,

eight constraints here.

Practically speaking,

I would encourage you to run the model each time you add a

constraint, and then inspect your result,

we’re going towards a solution,

Because if you add all of your constraints at once,

you’re not going to get a good understanding of how each of

these constraints are affecting your model.

So I recommend you to do this in steps, add a constraint,

run a model, add a constraint, run it again, evaluate.

And then I also recommend using the VOXI journal here to

track each step,

and keep a record of how you’re updating the model.

Okay. So I have all my constraints and I’m ready to run.

And just to be mindful of time,

I have run the results of this data set already.

So let’s go ahead and take a look.

So just as a reminder, this was our unconstrained model.

And now we can visualize the constraint,

constrained susceptibility result.

There’s our constrained model.

And, right away we can see that this,

that this model has a lot better,

it’s aligning with the geometry of my target a lot better.

And if I swing it around from this angle here,

I can see that it’s a lot more compact when compared to my

unconstrained model, right?

So again, there’s my unconstrained,

and there’s my constrained.

But when I start to inspect it further,

I do notice that there is this large volume here for the

susceptibility result.

And even after all of this constraints,

the susceptibility result show,

is showing us this large volume.

So, that kind of begs us to stop and question, and maybe

ponder whether these two bodies here

are potentially connected,

rather than the current geological interpretation,

which has these two bodies disconnected.

Even after adding our constraints,

we find that the theory that makes the most sense with our

geophysics is the one where these iron formations

are potentially connected.

And this is perhaps the time when you and your team might

wish to get together and discuss a new hypothesis for your,

for your geological model.

So here is our final model.

It led us to some new questions about our geological model,

and we added a total of eight different constraints.

So quite a rapid process with a lot of steps.

So I’d like to wrap up my presentation with that.

And I’d also like to thank you for your time.

If you have any questions about constraint building in VOXI,

I would be pleased to take them now.

<v ->(other speaker) Thanks Kanita.</v>

If anyone has any questions,

feel free to just type them into the chat panel.

I can see, we have one question already.

Do I need a separate extension

in Oasis montage for wireframing?

<v ->(Kanita) You do not need a separate extension in Oasis</v>

montage for wireframing,

or in target, for that matter.

You can wireframe right out of the 3d view.

Everyone who has OASIS montage has access to that, and

you can access it from geosurface and then wireframe.

<v ->(other speaker) Okay. Thank you.</v>

And one other question,

can I use drilling, or downhole data, to constrain a model?

<v ->(Kanita) Yes, you can use drilling data, definitely.</v>

So if you have either magnetic susceptibility,

if you’re doing a magnetic inversion,

or density data, if you’re doing a gravity inversion,

you can use those.

So if I go back to my VOXI model here,

if I go into constraints, create,

and then drill hole weight model,

this tool is what allows you to incorporate downhole

drilling, downhole geophysical data.

Something to keep in mind, when you’re putting in your

downhole geophysical data,

is that you’re measuring the absolute value

of the property.

Whereas VOXI is modeling contrasts in the property,

so you do need to consider whether maybe a mean background

would need to be removed,

and you can do that from this backgrounded mobile tool,

which we highly recommend.

But yeah, you can use down-hole geophysical data.

<v ->(other speaker) Thanks Kanita.</v>

At this point, I don’t see any other questions.

<v ->(Kanita) Okay, great.</v>

If you think of a question, after the demo,

or you have any questions in general about VOXI,

we’d love for you guys to get in touch,

you can reach me [email protected]

If you have any support, or workflow related questions,

[email protected] can also be reached.

And with that, I would like to end my presentation.

Thank you for joining and have a great weekend.