I used to hear the question: How can I tell what lithology this sample is in? When your geology and geochemistry are logged at different intervals, or as points (for structures), finding out what lithology your sample occurs in can be tricky. We covered how to do this with a simple database lookup in What interval is this structure in?
Lately the question sounds more like this: What solid is this sample in? where you have a closed 3D solid surface or model and a drillhole database of points or intervals (both have XYZ locations - your interval is most likely represented by the midpoint). Presently, the 3D Math tool does not include database channels as variables, but in the meantime you can still easily fill this in as a new channel in your downhole data in just a few steps.
1. Create new channel in your sample database and fill it. I named my channel "Temp" and filled it with 1's for all selected holes.
2. Create a new voxel where each cell in the voxel represents a sample.
I used Voxel > New Voxel > Direct Gridding with a cell size that roughly matches my sample interval. In this image, the wireframe surface (IBF) is shown in green, the drillhole traces are white, and the blue is the new temp voxel created from the temp channel in step 1.
3. Use the Voxel Math tool to create a second new voxel that fills the closed surface you are interested in. The temp voxel created in Step 2 is the "MasterVoxel".
The new in-IBF-surface voxel is displayed in the 3D View.
In this image, I've adjusted the colour of the new voxel to orange and turned off the other layers.
4. Sample the new voxel back to the drillhole database with Voxel > Utilities > Sample a voxel...
This will fill a new In_IBF channel with 1's where the sample is inside the voxel and solid.
If you like, you can verify your result by plotting 3D Symbols of your new channel.
In this image, the sample locations that are inside the wireframe are plotted as red symbols.
Need a few more? To create a simple channel with the code for the intersecting solids, use a simple conditional statement like this:
In_Code = in_IBF==1?"IBF":(in_OVB==1?"OVB:(in_SST==1?"SST":""))
Finally, you can automate some of these repetitive tasks using Scripting.
Have questions? Join the discussion.