Tutorial 2: Simple Mineral Prospectivity Maps with Kalpa#
In this tutorial, we will use Kalpa to build a mineral prospectivity map. The process utilizes three types of datasets:
Geophysical data (e.g., Bouguer Gravity Anomaly, Magnetic Anomaly)
Geological data (e.g., geological age, folds, faults, lineaments)
Satellite data (e.g., ASTER, SRTM, and LANDSAT)
The goal is to create prospectivity maps for copper deposits based on the known occurrences of 96 mineral deposits in the study region.
We will sample various datasets at the locations of known copper occurrences, create an unlabeled dataset for contrast, and use Random Forest (RF) classifier and regressor to label and map prospectivity.
Dataset Overview#
The dataset can be downloaded here.
Geophysical Data#
Gravity Data:
Observed Gravity
Theoretical Gravity
Bouguer Anomaly
Upward Continued Bouguer Anomaly
Directional Derivatives of Bouguer Anomaly
Magnetic Data:
Observed Magnetism
IGRF
Magnetic Anomaly
Upward Continued Magnetic Anomaly
Directional Derivatives of Magnetic Anomaly
Geological Data#
Tectonic Age
Folds
Faults
Lineaments
Satellite Data#
LANDSAT8 Bands:
Multispectral bands (3 to 8) as NetCDF files
SRTM Elevation Data:
Elevation values from the Shuttle Radar Topography Mission (SRTM)
ASTER Data:
Multispectral bands (1 to 14) as NetCDF files
Mineral Occurrences:
The dataset includes 96 known occurrences of mineral deposits. For this tutorial, we focus on copper deposits.
Workflow#
Step 1: Loading Data and Visualization#
Start Kalpa and choose Cartesian coordinates as the working coordinate system.
Create a new folder named
MineralProspectivity
to save the dataset, figures, etc.
Import Vector Data:
Navigate to:
File -> Import -> Vector
Load the following files:
ShapeFiles/Fault_Tectonic.shp
ShapeFiles/Fold_Tectonic.shp
ShapeFiles/Lineament_Tectonic.shp
ShapeFiles/Tectonic_Framework.shp
Deposits/Deposits.shp
Adjust colormap, feature width, and range as needed.
Import Raster Data:
Navigate to:
File -> Import -> Raster
Load the following files:
GeophysicalProcessed/Raster/BOUGUER_AN_Kriging.nc
GeophysicalProcessed/Raster/MAGNETIC_A_Kriging.nc
GeophysicalProcessed/Raster/Grad_Gravity/*
GeophysicalProcessed/Raster/Grad_Magnetic/*
GeophysicalProcessed/Raster/UC_Gravity/*
GeophysicalProcessed/Raster/UC_Magnetic/*
SatelliteData/SRTM/SRTM_Raj_India.nc
SatelliteData/LANDSAT/Band_3_LANDSAT.nc
toBand_8_LANDSAT.nc
Step 2: Feature Generation#
Generate Positive Labels from Known Deposits:
Go to:
Plugins -> MPM -> Feature Generation
AOI/ROI:
Deposits
Select all layers except Tectonic Framework and Deposits
Layer Config:
Euclidean Distance for vectors: - Fault_Tectonic - Fold_Tectonic - Lineament_Tectonic
Band Value for rasters: - BOUGUER_AN_Kriging.nc - MAGNETIC_A_Kriging.nc - Grad_Gravity/* - Grad_Magnetic/* - UC_Gravity/* - UC_Magnetic/*
Sampling method:
regular
with 100 seed points
Click Generate → Save as:
deposit_sampled.gpkg
Generate Label Column:
Go to:
Tools -> Vector Calculator
Layer:
deposit_sampled
Condition:
== 1
- New column:
Label
- New column:
Click Apply → Save as:
deposit_positive_label.gpkg
Create Bounding Box:
From
Create Bounding Box
, choose layer:BOUGUER_AN_Kriging
Click Create → Save as:
bounding_box.gpkg
Generate Unlabelled (Random) Features:
AOI:
bounding_box
Method:
Random
, 1000 seed points
Layer Config:
Euclidean Distance for: - Fault_Tectonic - Fold_Tectonic - Lineament_Tectonic
Band Value for: - BOUGUER_AN_Kriging.nc - MAGNETIC_A_Kriging.nc - Grad_Gravity/* - Grad_Magnetic/* - UC_Gravity/* - UC_Magnetic/*
Click Generate → Save as:
randomly_sampled.gpkg
This workflow now generates randomly sampled data which in this workflow, the width is set to 1 for visualisation and positive samples as thicker dots with width 3
Label Random Features as 0:
Go to:
Vector Calculator
Layer:
randomly_sampled
Condition:
== 0
Column name:
Label
Save as:
deposits_unlabelled.gpkg
Merge Positive and Unlabelled Datasets:
Remove
deposit_sampled
andrandomly_sampled
layers (optional)- Go to:
Merge Layers
- Go to:
Merge:
deposits_positive_label
+deposits_unlabelled
Save as:
training_data.gpkg
Visualization tip: Set positive samples (label = 1) with width 3, others with width 1
Now you can see that the positive (1) are in green color and unlabelled in brown. You may edit this in cmap
Step 3: Create PU Bagging Model#
Go to:
Plugins -> MPM -> Models -> PU Bagging -> Create New Model
- Training data:
training_data.gpkg
- Training data:
- (Optional) Generate correlation report to examine feature correlation
Click close
Target feature:
Label
- Select all other features as training features (except
Label
)
- Select all other features as training features (except
Enable:
scaled probabilities
Click Start Training
- Save model as:
PU Model
- Save model as:
- Go to:
Plugins -> MPM -> Feature Generation -> Bounding Box
- Go to:
Select all layers except:
Tectonic Framework
Deposit
deposits_positive_label
bounding_box
deposits_unlabelled
training_data
Repeat selection of Band Value for rasters and Euclidean Distance for vectors
Set resolution to:
0.005 degrees
. This may be of your choice- Click Generate → Save as:
predicted_dataset.gpkg
. This may take a while depending on resolution and hardware specs.
- Click Generate → Save as:
Go to:
Plugins -> MPM -> Models -> PU Bagging -> Existing Model
- Choose:
predicted_dataset.gpkg
as prediction input
- Choose:
Click Predict
- Voila! You now have your PU Bagging prediction.
Final Step: Select a colormap of your choice for visualizing predictions.