Config-driven geospatial ML pipeline for natural hydrogen prospectivity mapping
Project description
XaiGis
Introduction
XaiGis is a config-driven geospatial machine learning software pipeline for natural hydrogen prospectivity mapping from Sentinel-2 imagery. It converts raw SAFE products into analysis-ready feature stacks, rasterized training labels, sampled pixel datasets, trained classification models, prediction GeoTIFFs, and explainability outputs.
The software is designed for reproducible, end-to-end execution from the command line, with each stage exposed as a dedicated CLI command (prepare, train, predict, explain, report) and orchestrated by JSON configuration. This makes it practical both for one-off research runs and repeatable operational workflows across new areas of interest.
The framework supports both classical and quantum machine learning (QML) workflows. Classical models include SGD, Random Forest (RF), XGBoost, and LightGBM. The paper-evaluation QML workflows use PennyLane-based Variational Quantum Classifier (VQC), Quantum Neural Network (QNN), and Quantum Kernel SVM (QKernel-SVM) models.
Production-oriented implementation of the XaiGis workflow includes:
- Sentinel-2 SAFE ingestion and 10 m harmonization
- 22-feature stack generation (13 bands + 5 indices + 4 texture proxies)
- Polygon-to-raster label creation
- Pixel dataset extraction with tile-aware sampling
- Model training and evaluation (classical: SGD/RF/XGBoost/LightGBM; QML: VQC/QNN/QKernel-SVM)
- GeoTIFF probability and threshold masks
- Explainability outputs (model importances with SHAP fallback)
- Metrics and markdown reporting
Backend Software Stack
XaiGis runs as a Python CLI backend (file-based geospatial/ML pipeline). The backend stack includes:
- Language/runtime: Python (
>=3.10) - Geospatial processing:
rasterio,geopandas - Scientific/data stack:
numpy,pandas,scipy - Classical ML:
scikit-learn,xgboost,lightgbm - Quantum ML:
pennylane,autoray - Explainability:
shap - Packaging/build:
setuptools,wheel
Dependency constraints are defined in pyproject.toml.
Quick Start
cd /path/to/XaiGis
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
xaigis init-config --out configs/default.json
xaigis prepare --config configs/default.json
xaigis rasterize-labels --config configs/default.json
xaigis sample-dataset --config configs/default.json
xaigis train --config configs/default.json
xaigis predict --config configs/default.json
xaigis explain --config configs/default.json
xaigis report --config configs/default.json
Install from PyPI (after release):
pip install xaigis
Notes
- Update
configs/default.jsonpaths as needed for your local inputs. - The pipeline is designed for large rasters and uses tile/window processing where relevant.
pip install xaigisinstalls the full dependency set (classical ML, SHAP, and QML packages).
Related Work Citation
If this codebase supports your work, please also cite the upstream scientific study:
@Article{Wayo2026,
author = {Wayo, Dennis Delali Kwesi and Goliatt, Leonardo and Hazlett, Randy and Fustic, Milovan and Leila, Mahmoud},
title = {Integrated pixel-wise remote sensing and explainable machine learning for natural hydrogen exploration in southeastern part of Pricaspian Basin, Western Kazakhstan},
journal = {Scientific Reports},
year = {2026},
month = {Feb},
day = {26},
issn = {2045-2322},
doi = {10.1038/s41598-026-41845-0},
url = {https://doi.org/10.1038/s41598-026-41845-0}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xaigis-0.1.1.tar.gz.
File metadata
- Download URL: xaigis-0.1.1.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f6be88c3e332720c8d6992c0d4b2977dfd26b0ad36dc5a63d56792dbbad5ea8
|
|
| MD5 |
38f3795114566a163816927f7b1afce0
|
|
| BLAKE2b-256 |
66f90bea7be7940ecee4d057aa33763019c104963b5ca5c97d61f912f1a2cb20
|
Provenance
The following attestation bundles were made for xaigis-0.1.1.tar.gz:
Publisher:
publish-pypi.yml on DennisWayo/XaiGis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xaigis-0.1.1.tar.gz -
Subject digest:
2f6be88c3e332720c8d6992c0d4b2977dfd26b0ad36dc5a63d56792dbbad5ea8 - Sigstore transparency entry: 1340391161
- Sigstore integration time:
-
Permalink:
DennisWayo/XaiGis@449e93242b5506c85d673ef03c96f2dff8be419f -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/DennisWayo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@449e93242b5506c85d673ef03c96f2dff8be419f -
Trigger Event:
push
-
Statement type:
File details
Details for the file xaigis-0.1.1-py3-none-any.whl.
File metadata
- Download URL: xaigis-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9340b15584b57ee753f604b65dbb1cab187cad6e49595323c6f0f0288d88cca1
|
|
| MD5 |
94a2f542306655bf55d7ae70417f4013
|
|
| BLAKE2b-256 |
7ee8f64755dbb1c172599e33b317562e3d3099706e5f4c1b1daa96f773a74ba9
|
Provenance
The following attestation bundles were made for xaigis-0.1.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on DennisWayo/XaiGis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xaigis-0.1.1-py3-none-any.whl -
Subject digest:
9340b15584b57ee753f604b65dbb1cab187cad6e49595323c6f0f0288d88cca1 - Sigstore transparency entry: 1340391270
- Sigstore integration time:
-
Permalink:
DennisWayo/XaiGis@449e93242b5506c85d673ef03c96f2dff8be419f -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/DennisWayo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@449e93242b5506c85d673ef03c96f2dff8be419f -
Trigger Event:
push
-
Statement type: