An interactive JupyterNotebook/Google Colab application for balancing priorities (e.g., mineral potential, economic viability, and environmental, social & governance (ESG) factors) using Pareto ranking to support sustainable exploration decisions.
This tool implements multicriteria Pareto ranking for critical mineral exploration prioritisation, allowing decision makers to evaluate and visualise trade offs across competing objectives (e.g., critical mineral potential, economic viability, and ESG risk), without needing to assign subjective weights to individual criteria. The application includes a variety of data for Canadian critical mineral prospectivity and pre-loaded ESG spatial layers, but is fully compatible with any user-supplied geospatial datasets. It is intended as a pre-competitive, high level decision support tool for mineral exploration and regional land-use planning.
There are two versions of this tool:
- Online version hosted by Natural Resources Canada Access the online tool here. This version is limited to the supplied stock data layers for mineral prospectivity, economic constraints, and ESG layers.
- Downloadable JupyterNotebook which allows for users to upload their own data layers.
Both versions have similar plotting and visualization functionalities, and it only the ability for users to provide their own data layers (downloadable JupyterNotebook/Colab).
Traditional approaches to multi-objective decision-making require decision-makers to assign subjective weights or thresholds to criteria (e.g., weighted criteria optimisation), which can introduce bias. Pareto ranking avoids this by identifying the set of options that are not dominated by any other across all criteria simultaneously. Spatially, this can be thought of comparing all points on the map in terms of the chosen criteria. Some areas may be more favourable for exploration, and others more favourable for reducing environmental risk. By comparing all points, a range of choices exist. This allows exploration targets to be prioritised based on balanced performance rather than optimised performance on any single dimension.
This application implements the methodology described in:
Walsh, S.D.C., Haynes, M.W. & Wang, C. (2024). Multicriteria resource potential mapping: balancing geological, economic & environmental factors. Exploring for the Future: Extended Abstracts. Geoscience Australia. doi:10.26186/149250
Other examples of this workflow are included in:
Lebre et al. (2025). ESG mapping of the Australian mining sector β The state of play on mobilising spatial datasets for decision making Resources Policy. doi:10.1016/10559
The Pareto algorithm is an iterative ranking algorithm, where the locations are ranked from 0 β n and rank 0 are the most extreme combinations of the modeled priority layers. A location is Pareto optimal or on the Pareto frontier (Rank 0) if no other location outperforms it across all criteria simultaneously. Locations are then ranked by their "distance" from the Pareto frontier. This ranking does not require user-defined weighting criteria. For full algorithmic detail, see Walsh et al. (2024).
- β Pareto ranking engine β fast implementation supporting 1M+ points, handling both positive criteria (higher = better) and negative criteria (higher = worse)
- β Stock Canadian Critical minerals prospectivity and ESG data β pre-loaded mineral potential and ESG layers (see below)
- β Custom data support β upload any geospatial raster or vector data to run your own analysis (JypterNotebook features)
- β Interactive trade-off visualisation β scatter plots of the Pareto frontier coloured by average relative rank under varying criteria weightings
The online version is hosted by Natural Resources Canada and provides access to pre-loaded datasets without requiring local installation. Access the online tool here.
Google Colab (Recommended for Cloud):
- Open the read-only version: Link to Colab notebook
- Make your own copy: File β Save a copy in Drive
- Run setup cells: Execute the package installation cell first
- Use the interface: Select mineral type, priorities, and optionally upload custom data
- Process and visualize: Click "Upload & Process" to run the analysis
Local Jupyter/VS Code:
- Download the notebook:
ESG_Priority_Mapper.ipynb - Open in Jupyter Notebook/Lab or VS Code
- Install dependencies: Either run the package installation cell in the notebook or install from
requirements.txt - Start analysis: Follow the interface prompts
Note: The notebook automatically detects your environment and configures paths accordingly.
Minimum Requirements:
- Python 3.10 or higher
- 8 GB RAM (16 GB recommended for large datasets)
- 2 GB free disk space for temporary files and outputs
Recommended for Large Datasets (>1M points):
- 16+ GB RAM
- Multi-core CPU
- SSD storage
Core Technologies:
- Python 3.10+ β Primary programming language
- Jupyter Notebook β Interactive development environment
- Pareto Ranking Algorithm β Custom implementation with vectorized operations
Online Version Infrastructure:
- AWS Amplify β Static web hosting
- AWS S3 β Cloud storage for pre-loaded datasets and results (accessed via pre-signed URLs)
- HTML/JavaScript β Web interface using GCWeb (Government of Canada design system)
- MapLibre GL JS β Interactive mapping
- Plotly.js β Interactive charts and visualizations
boto3==1.40.4
geopandas==1.1.1
ipyfilechooser==0.6.0
ipywidgets==8.1.7
matplotlib==3.10.5
numpy==2.3.1
pandas==2.3.1
plotly==6.3.0
pyproj==3.7.1
rasterio==1.4.3
scipy==1.16.1
shapely==2.1.1
pyogrio==0.11.0
The notebook includes an automatic installation cell that handles all dependencies
Option 1: virtual environment
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtOption 2: conda environment
conda create -n esg_mapper python=3.10 -y
conda activate esg_mapper
pip install -r requirements.txt- Launch and Setup β Open the notebook and run the setup cells to prepare the environment.
- Input Selection β Select built-in layers and optionally add your own raster datasets.
- Data Processing:
- Raster reprojection and alignment
- Percentile normalization
- Pareto ranking algorithm
- Visualization:
- Static matplotlib outputs
- Interactive dashboard with MapLibre GL
- Plotly scatter plots for trade-off analysis
- Export β GeoJSON, GeoTIFF, and HTML outputs
The application ships with the following pre-loaded data layers:
| Layer | Layer Type | Source | Geo.ca Link | Dataset Link |
|---|---|---|---|---|
| Clastic-dominated zinc deposits | Mineral prospectivity model | Lawley et al., 2022 | Link | Link |
| Magmatic nickel deposits | Mineral prospectivity model | Lawley et al., 2021 | Link | Link |
| Mississippi Valley-type zinc deposits | Mineral prospectivity model | Lawley et al., 2022 | Link | Link |
| Carbonatite-hosted REE and Nb deposits | Mineral prospectivity model | Parsa et al., 2024 | Link | Link |
| Li-Cs-Ta pegmatite deposits | Mineral prospectivity model | Parsa et al., 2025 | Link | Link |
| Predictive model of graphite | Mineral prospectivity model | Zhang et al., 2025 | Link | Link |
| Road and powerline cost | Economic model | Lawley et al., 2026 | Road: Link Power Grid: Link |
|
| Percentage of ecoregion protected | ESG model | Lawley et al., 2022 | Link | |
| Critical habitat | ESG model | Lawley et al., 2022 | Link | Link |
You can replace or supplement the built-in layers with any geospatial datasets in standard formats in the Juypter Notebook version.
Input Formats:
- Rasters: GeoTIFF (.tif, .tiff)
- Coordinate Systems: Any valid EPSG code. Built-in layers are reprojected to EPSG:3978 for Canada. When using only custom uploaded rasters, the first uploaded raster defines the reference grid, and subsequent layers are reprojected and aligned to match it.
The notebook produces the following outputs:
Maps
- Static and interactive maps of the study area
- Highlighted Pareto frontier locations
Plots
- 2D scatter plot of any two criteria, with points coloured by Pareto rank - filterable by user selection
Exports
- GeoJSON / CSV of all points with assigned Pareto ranks or Pareto frontier locations
- PNG figures for all plots
This project is developed by Natural Resources Canada.
Data Licensing:
- Mineral prospectivity models: Open Government License - Canada
- ESG layers: Various (see individual dataset links)
- Custom data: Responsibility of user to ensure appropriate usage rights
Code Licensing:
- Apache 2.0