Skip to content

About

Demo of modern mineral prospectivity analysis inspired by crowdsourced gold prospecting using geological data

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Mineral Prospectivity Machine Learning

Demonstrating data science techniques for mineral exploration using Canadian gold data

Python 3.11 License: MIT

Overview

This project demonstrates modern machine learning approaches to mineral prospectivity mapping, inspired by successful crowdsourcing competitions like:

  • Goldcorp Challenge (2000): Red Lake, Ontario - Led to discovery of $6B+ in gold
  • Integra Gold Rush (2015-2016): Val-d'Or, Quebec - 1,000+ participants, ML-driven targeting
  • OZ Minerals Explorer Challenge (2019): Mount Woods, SA - Multi-data fusion approaches

Gold rush

What You'll Learn

โœ“ How to access and process Canadian geological survey data
โœ“ Feature engineering for geospatial mineral exploration
โœ“ Machine learning for imbalanced geological datasets
โœ“ 3D visualization of prospectivity models
โœ“ Integration of multiple data types (geology, geophysics, geochemistry)

Project Structure

mineral-prospectivity-ml/
โ”œโ”€โ”€ README.md                          # This file
โ”œโ”€โ”€ requirements.txt                   # Python dependencies
โ”œโ”€โ”€ environment.yml                    # Conda environment
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ raw/                          # Downloaded raw data
โ”‚   โ”œโ”€โ”€ processed/                    # Cleaned, processed data
โ”‚   โ””โ”€โ”€ README.md                     # Data sources and licenses
โ”œโ”€โ”€ notebooks/
โ”‚   โ”œโ”€โ”€ 01_data_acquisition.ipynb     # Download and explore data
โ”‚   โ”œโ”€โ”€ 02_data_preprocessing.ipynb   # Clean and standardize
โ”‚   โ”œโ”€โ”€ 03_exploratory_analysis.ipynb # Statistical analysis
โ”‚   โ”œโ”€โ”€ 04_feature_engineering.ipynb  # Create predictive features
โ”‚   โ”œโ”€โ”€ 05_ml_modeling.ipynb          # Train ML models
โ”‚   โ””โ”€โ”€ 06_prospectivity_mapping.ipynb # Generate target maps
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ data_loader.py                # Data acquisition utilities
โ”‚   โ”œโ”€โ”€ preprocessing.py              # Data cleaning functions
โ”‚   โ”œโ”€โ”€ feature_engineering.py        # Feature generation
โ”‚   โ”œโ”€โ”€ models.py                     # ML model implementations
โ”‚   โ””โ”€โ”€ visualization.py              # Plotting utilities
โ””โ”€โ”€ tests/
    โ””โ”€โ”€ test_data_loader.py           # Unit tests

Quick Start

Option 1: Using Conda (Recommended)

# Clone the repository
git clone https://github.com/yourusername/mineral-prospectivity-ml.git
cd mineral-prospectivity-ml

# Create conda environment
conda env create -f environment.yml
conda activate mineral-prospectivity

# Launch Jupyter
jupyter notebook

Option 2: Using pip + virtualenv

# Clone the repository
git clone https://github.com/yourusername/mineral-prospectivity-ml.git
cd mineral-prospectivity-ml

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Launch Jupyter
jupyter notebook

Data Sources

This project uses publicly available Canadian geological data:

Primary Source: Quebec SIGEOM

  • Drilling Data: 150+ years of exploration drilling
  • Geochemistry: Rock and soil samples
  • Geology: Lithology, structures, mineral occurrences
  • Geophysics: Magnetic, gravity, radiometric surveys

Access: https://sigeom.mines.gouv.qc.ca/

Study Area: Val-d'Or Gold District

  • Location: Abitibi Greenstone Belt, Quebec
  • Historical production: 4.5+ million ounces
  • Active exploration area
  • Similar to Integra Gold Rush Challenge site

Additional Sources

  • Natural Resources Canada: National geoscience data
  • Ontario Geological Survey: Red Lake area (Goldcorp Challenge site)
  • Geoscience Australia: ASTER geoscience maps (methodology reference)

Key Technologies

Geospatial Analysis

  • geopandas: Vector data manipulation
  • rasterio / rioxarray: Raster data processing
  • pyproj: Coordinate transformations
  • shapely: Geometric operations

Geoscience Tools

  • harmonica: Geophysical data processing
  • verde: Spatial interpolation and gridding
  • pyvista: 3D geological visualization

Machine Learning

  • scikit-learn: Random Forest, SVM, ensemble methods
  • xgboost / lightgbm: Gradient boosting
  • imbalanced-learn: Handle class imbalance (critical for mineral deposits!)

Data Analysis

  • pandas / numpy: Data manipulation
  • xarray: N-dimensional labeled arrays
  • matplotlib / seaborn / plotly: Visualization

Notebooks

1. Data Acquisition

  • Download SIGEOM datasets
  • Define study areas
  • Load drilling, geology, geophysics data
  • Initial data quality assessment

Run time: ~10-15 minutes (includes ~500MB download)

2. Data Preprocessing

  • Handle missing values
  • Standardize coordinates
  • Clean geochemical data
  • Merge multiple data sources

3. Exploratory Data Analysis

  • Statistical analysis of gold grades
  • Spatial clustering of deposits
  • Correlation analysis
  • Data visualization

4. Feature Engineering

  • Distance to geological features (faults, contacts)
  • Geophysical derivatives (TMI, gravity anomalies)
  • Geochemical ratios and pathfinders
  • Spatial density calculations

5. Machine Learning Modeling

  • Handle imbalanced datasets (SMOTE)
  • Random Forest classification
  • Model evaluation and cross-validation
  • Feature importance analysis
  • Hyperparameter tuning

6. Prospectivity Mapping

  • Generate prediction grids
  • Create 3D visualizations
  • Identify drill targets
  • Export results

Techniques from Competition Winners

Data Integration

Winning teams consistently emphasized multi-data fusion:

  • Combine geology, geophysics, geochemistry
  • Weight different data types appropriately
  • Handle data at different scales and resolutions

Feature Engineering

Critical features identified by winners:

# Proximity features
- Distance to known deposits
- Distance to favorable lithologies
- Distance to major structures (faults, shear zones)

# Geophysical derivatives
- Vertical derivatives of TMI
- Upward continuation
- Tilt angle
- Analytic signal

# Geochemical indicators
- Element ratios (Au/Ag, Cu/Au)
- Multi-element anomalies
- Pathfinder elements (As, Sb, Te)

Machine Learning Approaches

Random Forest (most common winner):

  • Handles mixed data types
  • Robust to outliers
  • Provides feature importance
  • Less prone to overfitting

Key considerations:

  • Class imbalance: Mineral deposits are rare! Use SMOTE or class weights
  • Spatial autocorrelation: Use spatial cross-validation
  • Feature scaling: Not always necessary but can help
  • Ensemble methods: Combine multiple models

Validation Strategy

# Don't use random splits!
# Use spatial cross-validation to avoid data leakage

from sklearn.model_selection import GroupKFold

# Group by geographic location
gkf = GroupKFold(n_splits=5)
for train_idx, test_idx in gkf.split(X, y, groups=spatial_groups):
    # Train and evaluate
    pass

Example Results

After completing the notebooks, you'll be able to:

  1. Load and integrate geological data from multiple sources
  2. Engineer features that predict gold mineralization
  3. Train ML models with >85% accuracy (competition-level)
  4. Generate prospectivity maps showing high-potential areas
  5. Identify drill targets ranked by probability

Contributing

Contributions are welcome! Areas of interest:

  • Additional data sources (geophysics, remote sensing)
  • Advanced ML techniques (deep learning, transfer learning)
  • 3D geological modeling integration
  • Alternative study areas
  • Documentation improvements

References

Competitions

Tools and Resources

Scientific Papers

  • Rodriguez-Galiano et al. (2015): "Machine learning predictive models for mineral prospectivity"
  • Carranza & Laborte (2015): "Random forest predictive modeling of mineral prospectivity"
  • Zuo & Xiong (2018): "Big Data Analytics of Identifying Geochemical Anomalies"

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Quebec Ministry of Natural Resources: For SIGEOM data access
  • Natural Resources Canada: For national geoscience data
  • Competition organizers: Goldcorp, Integra Gold, OZ Minerals for demonstrating the power of open innovation
  • Richard Scott: For the comprehensive mineral-exploration-machine-learning resource compilation

Contact

Questions? Open an issue or reach out via:


Disclaimer: This project is for educational and research purposes. Always verify geological interpretations with qualified professionals before making exploration decisions.



๐Ÿ“ You are here - but the journey continues... ๐Ÿš‚โœˆ๏ธ๐Ÿš—

This mini-project POC is part a larger umbrella project: ๐ŸŒ Around the World (of Analytical Modelling) in 81 Repos - A journey through numerical research, powered by human creativity and AI collaboration

That repo collection is an experiment in rapid numerical research acceleration using the latest LLMs. It demonstrates how humans and AI can collaborate to explore diverse analytical domainsโ€”from quantum computing to economics, from statistical mechanics to financial modelling.

About

Demo of modern mineral prospectivity analysis inspired by crowdsourced gold prospecting using geological data

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages