My implementation of the EIV IGP model in numpyro/JAX. Used for calculating bayesian estimates for rates of sea level change. The rates are integrated to produce the sea level curves. The original code was implemented in R/JAGS.
- 🚀 Enables running MCMC on the GPU
- ⚡ Supports SVI estimates for extremely fast posterior inference
- 🐍 Clean, pythonic interface
- 🧠 Easy to understand codebase (my biased opinion)
- Make sure you have uv installed on your system.
- Update
main.pyto point to your data file. - Run
uv run main.pyin your terminal.
This will run the full EIV IGP model on your data with 2 MCMC chains in parallel.
If you want to include a GIA rate, change the
gia_rateargument in thedata.preprocesscall.
To have a quick look at the workflow and some figures, look at the ./example.ipynb notebook. It has other useful examples - data processing, MCMC, and SVI estimates.
On my M2 pro chip, CPU performance on a single chain with the default NYC dataset takes ~6 min. The same thing takes ~20 min in the original code.
Data plotting
Sea level curve
Sea level rate
Model render


