This repository analyzes steady-state volcanism in frequently erupting oceanic hotspots (Iceland, La Réunion, Hawaiʻi, and the western Galápagos). We examine how near-constant long-term eruption rates are punctuated by shorter-term cycles that rebalance erupted volumes, offering insight into maximum expected eruptive output and implications for volcanic hazard assessment
If you use this code or associated algorithms, please cite our paper. Thank you!
Galetto, F., Asfora, B., and Pritchard, M. E. (2026). Evaluating steady-state volcanism in Iceland, La Réunion, Hawaiʻi and western Galápagos: Connections with volcanic hazards and future perspectives. Volcanica 9(1), pp 101–121.
@article{galetto2026eval,
title={Evaluating steady-state volcanism in Iceland, La R{\'e}union, Hawaiʻi and western Gal{\'a}pagos: connections with volcanic hazards and future perspectives},
author={Galetto, Federico and Asfora, Beatriz and Pritchard, Matthew E},
journal={Volcanica},
volume={9},
number={1},
pages={101--121},
year={2026}
}
We want to predict variations in eruptions, given:
- Average steady-state rate (Q)
- Date and volume of previous eruptions (observed data)
- Cumulative volume (sum of previous eruption volumes)
This repo showcases 3 methods:
- Q-Line Fitting
- Deterministic Time Interval
- Stochastic Forecast
volcano/
├── classes
│ ├── basicfun.py
│ ├── collectdata.py
│ ├── eruption.py
│ ├── myplots.py
│ └── subset.py
├── LICENSE
├── plots
│ ├── HistoricalData
│ ├── Method01
│ ├── Method02
│ ├── Method03
├── rawdata
│ ├── TableGalapagos.xlsx
│ ├── TableHawaii.xlsx
│ ├── TableIceland.xlsx
│ └── TablePiton.xlsx
├── README.md
├── requirements.txt
├── scripts
│ ├── historical_data.py
│ └── prediction_data.py
├── tests
│ ├── test_basicfun.py
│ └── test_collectdata.py
└── VolcanoWriteUp.pdf
-
classes/main classes used in the project, in hierarchical order:myplots.pyfunctions for plotting data and results, with preset styles for consistency.collectdata.pycollects, processes and organize data from the xlsx raw files.subset.pydata subset delimited by user-defined first and last eruptions. Contains data (volume and dates) as well as period's limits for eacy access (first/last eruption id, dates, volume), stats, timelines and prediction methods. Official periods are identified by a positive 'label' attribute, while unofficial periods are identified by a negative 'label' attribute.eruption.pycontains theEruptionclass, which is used to represent each volcanic eruption and its properties; used by other classes to pass and retrieve information about a single eruptionbasicfun.pybasic functions used across the project (e.g. computing of stats and error, data transformation functions).
-
scripts/contains the scripts that generate the plots and perform data analysis.historical_data.py: generates plots using historical data collected and processed byVolcanoDataclass.prediction_data.py: generates plots for all three prediction methods. Choose which volcano to plot by setting thevolcano_idon top of the script.
-
tests/contains unit tests scripts for the classes. -
plots/output plots generated by the scripts will be saved here -
rawdata/place raw data files used in the project in this folder.