Skip to main content

A numerical laboratory for Bayesian Seismology

Project description

HMC Lab

Andrea Zunino, Lars Gebraad, Andreas Fichtner

codecov license Code style: black GitHub releases

HMC Lab is a numerical laboratory for research in Bayesian seismology, written in Python and Julia. Jump to Docker one-command setup.

It provides all the ingredients to set up probabilistic (and deterministic) inverse problems, appraise them, and analyse them. This includes a plethora of prior distributions, different physical modelling modules and various MCMC (and other) algorithms.

In particular it provides prior distributions, physics and appraisal algorithms.

Prior distributions:

  • Normal
  • Laplace
  • Uniform
  • Arbitrary composites of other priors
  • Bayes rule
  • User supplied distributions

Physics:

  • Linear equations
  • Straight ray tomography
  • 3d source location
  • 2d elastic full-waveform inversion
  • User supplied physics

Algorithms:

  • Hamiltonian Monte Carlo (and variations)
  • Random Walk Metropolis Hastings
  • Stein Variational Gradient Descent
  • Gradient descent
  • Interfaces to non-linear optimization methods from SciPy
  • Animated versions of various algorithms

Docker one-command setup

To get staerting with the tutorial and example notebooks, one can use a single command in Docker. This will pull a Docker image based on the Jupyter Datascience stack. The final container is approximately 5GB.

    docker run -p 9123:9123 larsgebraad/hmclab \
    start-notebook.sh --NotebookApp.token='hmclab'  \
    --NotebookApp.port='9123' --LabApp.default_url='/lab/tree/Home.ipynb'

Then either copy-past the link from your terminal, or navigate manually to http://127.0.0.1:9123/lab/tree/Home.ipynb?token=hmclab.

Online tutorial notebooks

All tutorial notebooks can also be accessed online in a non-interactive fashion. Simply use https://python.hmclab.science or use the following links:

Tutorials:

Demos:

The long way around: installing the package on your system

For full installation instructions, including creating a proper Python environment, see the installation instructions.

Start with making sure that you have HDF5 or h5py installed properly.

Directly to your environment:

pip install -e git+git@github.com:larsgeb/hmclab.git@master#egg=hmclab

From the project root directory:

pip install -e .

Development dependencies

If you want to develop within this repo, we recommend a few extra packages. They can also be installed using pip.

In Bash:

pip install -e git+git@github.com:larsgeb/hmclab.git@master#egg=hmclab[dev] # from github repo
pip install -e .[dev] # from local clone

... or Zsh (which requires escapes for brackets):

pip install -e git+git@github.com:larsgeb/hmclab.git@master#egg=hmclab\[dev\] # from github repo
pip install -e .\[dev\] # from local clone

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

hmclab-1.0rc1.tar.gz (97.1 kB view details)

Uploaded Source

Built Distribution

hmclab-1.0rc1-py3-none-any.whl (72.1 kB view details)

Uploaded Python 3

File details

Details for the file hmclab-1.0rc1.tar.gz.

File metadata

  • Download URL: hmclab-1.0rc1.tar.gz
  • Upload date:
  • Size: 97.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for hmclab-1.0rc1.tar.gz
Algorithm Hash digest
SHA256 c26425387c6fd8ddbdbc919d26c1945ffea2d427a9e5b7b4cd4be05e3a2f5092
MD5 662c0f71388d5ec0bce9e025cc0b737b
BLAKE2b-256 b2f1e2dfe486fae15477c0b5bd918406ff2ac3bf800c7fb42b5f682d64e41a46

See more details on using hashes here.

File details

Details for the file hmclab-1.0rc1-py3-none-any.whl.

File metadata

  • Download URL: hmclab-1.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 72.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for hmclab-1.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 2299628cab13472559cae1c42f71f1c54676030711df813b636e44b823222de2
MD5 75221ae31c10f9cdf28224eb64099e3f
BLAKE2b-256 2426b3ea3b2db4a4da15d2a6c343cd09ca1839a6f39cb9fb372ebd73fe5d55b3

See more details on using hashes here.

Supported by

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