Skip to main content

Access volcano monitoring data.

Project description

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 CLIvolcanobench 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aitana-0.2.0.tar.gz (420.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aitana-0.2.0-py3-none-any.whl (426.3 kB view details)

Uploaded Python 3

File details

Details for the file aitana-0.2.0.tar.gz.

File metadata

  • Download URL: aitana-0.2.0.tar.gz
  • Upload date:
  • Size: 420.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for aitana-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6e6498d09e7e6021506d5558c4baa1c9acf36404343c5bba17f0cbe1d41c7d7e
MD5 cfc4165e0780356b29a8d52b33132efe
BLAKE2b-256 20ca6d16c5833b136e61f741021c01c17897930673bb4604221245ad743b3923

See more details on using hashes here.

File details

Details for the file aitana-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: aitana-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 426.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for aitana-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 225180842e5f16242c5b12c74b75f059e965ba792d54459f10755245549c43b2
MD5 4bd8d98896f05ad6b14a8d43484745b0
BLAKE2b-256 60796e4de2476ff88c94109cd8fcc66a985eaa6a9b22948eb529b1f48b007d91

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page