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
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
If you use this code or associated algorithms, please cite our paper. Thank you!
Galetto, F., Asfora, B., and Pritchard, M. E. (2025). Evaluating steady-state volcanism in Iceland, La Réunion, Hawaiʻi and western Galápagos: Connections with volcanic hazards and future perspectives. Manuscript under review.
Note: this citation will be updated upon publication decision.
@unpublished{GalettoAsforaPritchard2025,
author = {Galetto, Federico and Asfora, Beatriz and Pritchard, Matthew E.},
title = {Evaluating steady-state volcanism in Iceland, La R{\'e}union, Hawai{\textquotesingle}i and western Gal{\'a}pagos: connections with volcanic hazards and future perspectives},
year = {2025},
note = {Manuscript under review}
}
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.