Resource Estimation
Turning drill-hole samples into a 3D block model of tonnes and grade. Learn geological domaining, block models, nearest-neighbour and inverse-distance weighting, variograms (nugget, sill, range), ordinary kriging, validation, and resource classification — with a Python IDW implementation.
Drill holes sample a tiny fraction (often < 0.001 %) of a deposit. Estimation interpolates grades into blocks between holes, honouring geology and spatial continuity. The block model is the foundation of mine planning and reserves.
An analogy
Estimating block grades is like guessing the temperature in a town between weather stations: nearby stations matter more, and how fast temperature changes with distance (the variogram) tells you how much to trust them.
Block models
The deposit is divided into blocks (e.g. 10 × 10 × 5 m) each holding rock type, density, grade, and later cost and value. Block size relates to drill spacing and mining selectivity (selective mining unit).
Domaining and statistics
Estimate within geological domains (oxide vs sulphide, vein vs host). Examine histograms, coefficients of variation, and cap (top-cut) extreme values that would spread unrealistically.
Variograms
The variogram measures how grade dissimilarity grows with distance. The nugget reflects short-scale randomness and sampling error; the range is the distance beyond which samples are uncorrelated. Directional variograms reveal anisotropy along strike or plunge.
Kriging and classification
Ordinary kriging uses the variogram to compute optimal, unbiased weights and an estimation variance. Validation: swath plots, global mean comparison, visual checks. Classification into measured/indicated/inferred uses drill spacing, kriging variance and confidence. Conditional simulation quantifies grade uncertainty for risk analysis.
Formulas
- Inverse-distance weighting:
ĝ = Σ (g_i / d_i^p) / Σ (1 / d_i^p) - Experimental variogram:
γ(h) = 1/(2N) Σ [g(x) − g(x + h)]² - Spherical model:
γ(h) = C₀ + C[1.5 h/a − 0.5 (h/a)³], h < a - Kriging:
ĝ = Σ λ_i g_i, Σ λ_i = 1, weights minimise estimation variance
Worked example: IDW estimate
Given: Samples 1.2 % at 10 m, 0.8 % at 20 m, 0.5 % at 30 m; Power 2
Find: Block grade.
- Weights 1/100, 1/400, 1/900 = 0.0100, 0.0025, 0.00111
- Σ w g = 0.01456; Σ w = 0.01361
- ĝ = 1.069 %
Answer: ≈ 1.07 % Cu
Worked example: Reading a variogram
Given: Spherical model: nugget 0.1, sill 1.0, range 100 m
Find: γ at 50 m and interpretation.
- γ(50) = 0.1 + 0.9 × (0.75 − 0.0625) = 0.72
- Nugget = 10 % of sill
Answer: Samples 50 m apart are still correlated; drill spacing ≲ 50–70 m supports indicated resources
Inverse-distance weighting of one block
import numpy as np
# Drill-hole composites: x, y (m) and grade (% Cu)
samples = np.array([
[10.0, 0.0, 1.20],
[ 0.0, 20.0, 0.80],
[-30.0, 0.0, 0.50],
])
block = np.array([0.0, 0.0]) # block centre
def idw(block, samples, power=2):
d = np.linalg.norm(samples[:, :2] - block, axis=1)
if np.any(d < 1e-9): # block sits on a sample
return samples[d.argmin(), 2]
w = 1.0 / d**power
return np.sum(w * samples[:, 2]) / np.sum(w)
for p in (1, 2, 3):
print(f"power {p}: {idw(block, samples, p):.3f} % Cu")
# power 1: 0.964 % Cu
# power 2: 1.069 % Cu
# power 3: 1.135 % CuHigher powers give more weight to the closest sample (approaching nearest-neighbour). Real estimation adds search ellipses aligned to geology, maximum samples per hole, domain boundaries and top-cutting of outliers.
Common mistakes
- Wrong: Estimating across geological boundaries. — Right: Use hard boundaries between domains.
- Wrong: Leaving extreme outliers uncapped. — Right: Top-cut or restrict high-grade influence.
Applications
- Mine planning: Block models feed pit optimisation and scheduling.
- Reserve reporting: Classified resources underpin public statements.
- Grade control: Short-range models from blast-hole data.
Key takeaways
- Block model = tonnes + grade in 3D.
- IDW weights by 1/d^p.
- Variogram: nugget, sill, range.
- Kriging gives optimal weights and variance.
Going further
- Conditional simulation: Multiple realisations quantify grade uncertainty.
- Multiple indicator kriging: Handles skewed, mixed distributions.
- Machine learning: Emerging but must honour geology and validation.