Skip to content

Creating Interpolated Block Models and Grade Shell Meshes

bsomps edited this page Jan 4, 2025 · 13 revisions

RBF Block Model

This operator uses Radial Basis Function (RBF) interpolation to create a volumetric block model from spatial data points. The block model operator is very basic in its functionality, many limitations exist and it is not recommended for any resource estimation at this stage.

RBF_BlockModel.mp4

Overview

The RBF Interpolated Block Model operator allows users to:

  • Select a collection containing objects with spatial data and custom properties (numerical attributes).
  • Define a bounding box object to set interpolation extents.
  • Choose data properties (e.g., geochemical values) for interpolation.
  • Customize grid resolution, interpolation functions, and normalization settings.
  • Visualize results as a structured volumetric block model organized into collections.

Key Features

  1. Collection-Based Input

    • Select objects from a chosen collection for interpolation.
    • Extract spatial (x, y, z) and data (d) properties automatically.
  2. Bounding Box Extents

    • Define interpolation boundaries using a bounding box object.
  3. Grid Control

    • Set grid size to control model resolution.
  4. RBF Function Options

    • Choose from multiple RBF kernels: multiquadric, inverse, gaussian, linear, cubic, quintic, and thin_plate.
  5. Normalization and Outlier Control

    • Normalize scalar field values and manage outliers using the Interquartile Range (IQR).
  6. Dynamic Visualization

    • Generate a structured block model organized into 10 collections based on interpolated values.
    • Apply color gradients derived from Matplotlib's Spectral_r colormap.

Input Data

  • Collection: Choose the collection holding your data objects (can be mesh objects or curve objects) must have valid spatial (x, y, z) and numerical (data_property) properties.
  • Bounding Box: A Blender object (e.g., cube) defines the model extents.
  • Data Property: Select the numerical property for interpolation from the custom object properties.

Step-by-Step Guide

1. Select Input Collection

  • Go to the GeoModeller Panel → Numerical Modelling → RBF Interpolated Block Model.
  • Use the Choose Collection dropdown to select your data collection.

2. Set Bounding Box

  • Create a cube object in the scene.
  • Position and scale it to enclose the area of interest.
  • Select this cube in the Bounding Box Object dropdown.

3. Choose Data Property

  • Select a numerical property (e.g., Zn_ppm, Au_ppm) from the Data Property dropdown.

4. Configure Grid and Interpolation

  • Set Grid Size to control interpolation resolution (higher values = finer grid).
  • Choose an RBF kernel from the RBF Function menu.
  • Adjust Epsilon Value or leave it to auto-calculate average point distance.

5. Enable Normalization (Optional)

  • Check Normalize Colormap to scale values based on IQR.
  • Adjust IQR Scaling Factor if needed.

6. Generate the Block Model

  • Click Generate Block Model to run the interpolation and visualization process.

Visualization and Output

  • Structured Collections: Blocks are grouped into 10 collections based on scalar field value ranges.
  • Object Properties: Each block retains spatial (x, y, z) and interpolated value (d) data.
  • Color Mapping: Colors are assigned dynamically using Spectral_r colormap.

RBF Grade Shell Mesh

The RBF Grade Shell Mesh operator generates a mesh representing an isosurface derived from spatially distributed data points. It uses Radial Basis Function (RBF) interpolation combined with a marching cubes algorithm to create a smooth, continuous surface.

Overview

The Grade Shell Mesh operator allows user to:

  • Select a collection containing spatial data points.
  • Define a bounding box object to constrain interpolation extents.
  • Choose a numerical property (e.g., grade values) for interpolation.
  • Specify a cutoff value to define the isosurface.
  • Customize interpolation parameters and grid resolution.
  • Visualize the isosurface as a single mesh object.

Key Features

  1. Collection-Based Input

    • Uses objects from a specified collection containing any numerical (data_property) data.
  2. Bounding Box Extents

    • Define interpolation boundaries using a bounding box object (cube object).
  3. Cutoff Value for Isosurface

    • Specify a threshold value to represent the grade shell.
  4. RBF Interpolation Parameters

    • Choose from multiple RBF kernels: multiquadric, inverse, gaussian, linear, cubic, quintic, and thin_plate.
  5. Marching Cubes Algorithm

    • Efficiently generate a smooth isosurface mesh.
  6. Dynamic Visualization

    • The resulting isosurface mesh is directly added to the Blender scene.

Input Data

  • Collection: Objects must have valid spatial (x, y, z) and numerical (data_property) properties.
  • Bounding Box: A Blender object (e.g., cube) defines the model extents.
  • Data Property: Select the numerical property for interpolation (e.g., Zn_ppm, Au_ppm).
  • Cutoff Value: Specify an isosurface threshold value.

Step-by-Step Guide

1. Select Input Collection

  • Go to the GeoModeller Panel → Numerical Modelling → RBF Grade Shell Mesh.
  • Use the Choose Collection dropdown to select your data collection.

2. Set Bounding Box

  • Create a cube object in the scene.
  • Position and scale it to enclose the area of interest.
  • Select this cube in the Bounding Box Object dropdown.

3. Choose Data Property and Cutoff Value

  • Select a numerical property (e.g., Zn_ppm, Au_ppm) from the Data Property dropdown.
  • Enter a numerical value for the Cutoff Value (e.g., 10.0) to define the isosurface threshold.

4. Configure Grid and Interpolation

  • Set Grid Size to control mesh resolution (higher values = finer mesh). 50 is a good starting point.
  • Choose an RBF kernel from the RBF Function menu.
  • Adjust Epsilon Value (for non-linear) or leave it to auto-calculate average point distance.

5. Generate the Grade Shell Mesh

  • Click Generate Grade Shell Mesh to start interpolation and mesh generation.

Visualization and Output

  • Mesh Object: The isosurface is generated as a single mesh object and added directly to the Blender scene.
  • Object Properties: The mesh retains spatial extents defined by the bounding box and interpolation grid.

Example Output Naming Convention

  • Zn_ppm_Interpolant
  • Au_ppm_Interpolant

Comparison: Block Model vs. Grade Shell Mesh

Feature Block Model Grade Shell Mesh
Output Type Structured voxel blocks Continuous isosurface mesh
Primary Use Volumetric visualization Threshold-based surfaces
Grid Control Adjustable resolution Adjustable resolution
Visualization Organized into collections Single mesh object
Processing Time Moderate to High Low

Notes and Limitations

  • Currently, there are no options for anisotropy or advanced variogram parameterization. (These features are hopefully planned for the next version.)
  • Grid Size vs. Performance: For block models, larger grid sizes significantly increase processing time. Any grid size over 25 will take a considerable amount of time and result in laggy blender scenes. For a grade shell mesh, a grid size of 50 is pretty fast.
  • Outlier Handling: Use IQR normalization to minimize the impact of extreme values.
  • Bounding Box Validity: All data points do not need to lie within the bounding box extents. The bounding box will clip the data to what it encompasses.
  • Console Feedback: Monitor progress and error messages in Blender's Console (Window → Toggle System Console).

Tips for Efficient Modeling

  1. Data Validation: Ensure selected objects have consistent spatial and data properties.
  2. Bounding Box Adjustment: Keep extents tightly bound to the region of interest.
  3. Grid Optimization: Start with a lower grid size for testing, then increase resolution.

For more advanced details about RBF interpolation, refer to the Scipy Documentation.