Mine Planning Software
Mining runs on specialised software. Learn the software landscape (geological modelling, mine design, optimisation, scheduling, simulation), the data flow from drill holes to schedules, block model sizes and formats, scripting and automation — with a Python grade–tonnage analysis of a block model.
From Leapfrog geological models to Whittle pit shells, Deswik designs and schedules, Vulcan/Surpac/Datamine block models and Ventsim ventilation models — mining engineers must understand what each tool does, how data flows between them, and how to automate repetitive work with scripts.
An analogy
Mine planning software is like a production line: geology builds the parts (block model), optimisation decides what to build (pit shells), design shapes it (pits, stopes) and scheduling decides when.
Software landscape
Geology: Leapfrog, Vulcan, Surpac, Datamine (drill-hole databases, wireframes, block models). Optimisation: Whittle, Deswik Pseudoflow, MineSight/Hexagon. Design & scheduling: Deswik, MineSched, Vulcan. Simulation: Arena/Haulsim, TALPAC. Specialist: Ventsim, JKSimBlast, Rocscience, FLAC.
Data flow
Drill-hole database (collars, surveys, assays, geology) → wireframes and domains → estimated block model → optimisation shells → designs → schedules → fleet and cost models. Version control and audit trails are required for reserves reporting.
Block models
Regular or sub-blocked models; attributes include grades, density, rock type, costs, recovery. Large models have tens of millions of blocks — memory and processing speed matter.
Automation and integration
APIs and scripts automate repetitive tasks; cloud platforms integrate planning with operational data (e.g. reconciling plans with FMS data). Optimisation increasingly uses MILP and stochastic methods through commercial solvers.
Formulas
- Number of blocks:
N_b = (L_x/b_x)(L_y/b_y)(L_z/b_z) - Block tonnes:
t = b_x b_y b_z × ρ - Memory (dense):
Size ≈ N_b × k × 8 bytes
Worked example: Block model size
Given: Deposit 2000 × 1500 × 800 m; Blocks 10 × 10 × 10 m
Find: Number of blocks and memory for 20 attributes.
- N = 200 × 150 × 80 = 2.4 million blocks
- Memory = 2.4 × 10⁶ × 20 × 8 = 384 MB
Answer: 2.4 M blocks, ≈ 384 MB
Worked example: Grade–tonnage from the script
Given: Synthetic model 270 Mt
Find: Tonnage and metal at 0.3 % cut-off.
- Script output: 202.3 Mt at 0.646 % Cu
- Contained Cu = 1306 kt
Answer: ≈ 202 Mt @ 0.65 % → 1.31 Mt Cu
Grade–tonnage curve from a block model
import numpy as np
# Synthetic block model: 100 000 blocks of 10 x 10 x 10 m, density 2.7 t/m3
rng = np.random.default_rng(42)
grade = rng.lognormal(mean=np.log(0.45), sigma=0.6, size=100_000) # % Cu
tonnes_per_block = 10 * 10 * 10 * 2.7
print("cut-off Mt grade % Cu kt")
for cog in (0.0, 0.2, 0.3, 0.4, 0.5, 0.7):
ore = grade >= cog
mt = ore.sum() * tonnes_per_block / 1e6
g = grade[ore].mean()
cu = mt * 1e6 * g / 100 / 1e3
print(f"{cog:5.1f} {mt:7.1f} {g:8.3f} {cu:8.0f}")
# cut-off Mt grade % Cu kt
# 0.0 270.0 0.538 1453
# 0.2 245.9 0.576 1416
# 0.3 202.3 0.646 1306
# 0.4 155.4 0.735 1142
# 0.5 115.4 0.835 963
# 0.7 62.2 1.044 649Commercial packages produce the same table from real block models. Scripting (Python, VBA, Lua, TCL depending on the package) automates reporting, sensitivity runs and data transfer between tools — a valuable skill for mining engineers.
Common mistakes
- Wrong: Blocks much smaller than drill spacing. — Right: Estimating tiny blocks from sparse data gives false precision.
- Wrong: Manual copy-paste between tools. — Right: Automate transfers and keep an audit trail.
Applications
- Reserve estimation: Integrated resource-to-reserve workflows.
- Life-of-mine planning: Schedules and financial models.
- Automation: Scripts for monthly reporting.
Key takeaways
- Know the tool chain: geology → optimise → design → schedule.
- Block count grows with 1/b³.
- Script repetitive work.
- Keep audit trails for reserves.
Going further
- Open file formats: OMF and CSV interchange between packages.
- APIs: Automating Deswik/Vulcan with scripts.
- Cloud planning: Collaborative, versioned mine plans.