Skip to main content

Aitana: volcano monitoring benchmarking framework

Aitana (named after the great football midfielder Aitana Bonmati) is a Python library intended as a prototype implementation of a validation and benchmarking framework for AI/ML in volcano monitoring.

Operational uptake of machine learning in volcano observatories remains limited because of three structural problems: no community-accepted benchmark datasets, poor reproducibility, and insufficient uncertainty quantification. Aitana is a prototype addressing these gaps.

What is implemented

  • Data access — time-series data from three New Zealand volcanoes (Ruapehu, Whakaari/White Island, Taupo) via the GeoNet TILDE API and WFS, with transparent disk caching and incremental date-range updates.
  • Pre-processing — RSAM access for Ruapehu and Whakaari; seismic waveform retrieval, validation, gap-filling, and instrument response removal (seismic_waveforms.py); moving-window earthquake rate and gradient estimation (util.py).
  • Evaluation — ROC curves, threshold evaluation (TP/FP/TN/FN), and forecasted-rate computation with pre-eruption windows (scoring.py).
  • State-space models — Kalman-filter models for multi-sensor SO2 fusion and trend estimation (assimilate.py).
  • Benchmarking CLI — volcanobench drives Snakemake workflows for end-to-end benchmarking (download → feature extraction → model training → forecast scoring). One workflow is bundled: a Bayesian network vs decision tree benchmark for Whakaari/White Island.

What is planned / in progress

  • Shared implementations of DSAR, spectrograms, and swarm detection.
  • Temporal cross-validation schemes.
  • Proper scoring rules (log-likelihood, CRPS, reliability diagrams).
  • Containerised or environment-locked pipelines (Docker / Apptainer / pixi).
  • Semantic versioning of datasets and evaluation protocols.
  • Integration with community tools (SeisBench, WOVOdat formats).

Dependencies

  • pandas, requests, matplotlib, statsmodels
  • obspy (seismic waveform processing)
  • snakemake (workflow execution)
  • tonik

Installation

pip install -U aitana

Documentation

Learn more in the official documentation.
Try out a Jupyter notebook.

volcanobench CLI

The volcanobench command drives Snakemake benchmarking workflows bundled with Aitana or registered by third-party packages via the volcanobench.workflows entry-point group.

Commands

Command Description
volcanobench list List all registered workflows (name, volcano, description).
volcanobench run <volcano> <outdir> Run every registered workflow for a volcano.
volcanobench clean <volcano> <outdir> Delete all outputs produced by the workflow.

volcanobench run accepts --cores N (default 1) to control Snakemake parallelism.

Examples

# See what workflows are available
volcanobench list

# Run the Whakaari Bayesian-network benchmark, writing results to ./results
volcanobench run whakaari ./results

# Run with 4 parallel cores
volcanobench run whakaari ./results --cores 4

# Remove all outputs
volcanobench clean whakaari ./results

Bundled workflows

Name Volcano Description
egu2026 whakaari Bayesian network vs decision tree benchmark for Whakaari/White Island (EGU 2026)

Registering your own workflow

Any Python package can register a workflow by exposing a WorkflowDescriptor instance under the volcanobench.workflows entry-point group:

# pyproject.toml
[project.entry-points."volcanobench.workflows"]
my_workflow = "my_package.workflows:my_workflow"
# my_package/workflows.py
from pathlib import Path
from aitana import WorkflowDescriptor

my_workflow = WorkflowDescriptor(
    name="my_workflow",
    volcano="ruapehu",
    description="My custom eruption forecast model",
    workflowdir=Path(__file__).parent / "snakemake",
    outputs={
        "forecast": "results/forecasts.nc",
    },
)

The workflow directory must contain a Snakefile. Aitana copies it into outdir before execution, so the original is never modified.

Get in touch

Report bugs, suggest features, view the source code, and ask questions on GitHub.

Release files for aitana 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aitana 0.2.0
File Size Uploaded
aitana-0.2.0.tar.gz 420.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aitana 0.2.0
File Interpreter ABI Platform
aitana-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 846.9 kB

Release files / aitana-0.2.0.tar.gz

Download URL aitana-0.2.0.tar.gz
Size 420.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6e6498d09e7e6021506d5558c4baa1c9acf36404343c5bba17f0cbe1d41c7d7e
BLAKE2b-256 checksum
How to use checksums
20ca6d16c5833b136e61f741021c01c17897930673bb4604221245ad743b3923
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / aitana-0.2.0-py3-none-any.whl

Download URL aitana-0.2.0-py3-none-any.whl
Size 426.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
225180842e5f16242c5b12c74b75f059e965ba792d54459f10755245549c43b2
BLAKE2b-256 checksum
How to use checksums
60796e4de2476ff88c94109cd8fcc66a985eaa6a9b22948eb529b1f48b007d91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.12

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page