ESS 412/512: Introduction to Seismology#

License: MIT Deploy Jupyter Book

Computational labs and lectures for ESS 412 (undergraduate) and ESS 512 (graduate) seismology at the University of Washington by Marine Denolle. Materials supplement Peter Shearer’s Introduction to Seismology with hands-on Python exercises using real seismic data.

📖 Course site: https://uw-geophysics-edu.github.io/ess-412-512-intro2seismology/

Course Modules#

Module

Lecture

Labs

Topics

1 — Data Foundations

01

FDSN data access, ObsPy, Fourier analysis, filtering

2 — Stress & Strain

Stress & Strain

02

Elastic constants, stress/strain tensors, Hooke’s Law

3 — Body Waves

Ray Theory

03a–c

P/S polarization, ray tracing (PyKonal), global phases (TauP)

4 — Reflection

04a–b

Reflection/transmission coefficients, CMP, NMO, migration

5 — Surface Waves

Surface Waves

05a–d

Rayleigh & Love waves, dispersion, ambient noise

6 — Earthquake Sources

Inverse Problem

06a

Earthquake location methods & uncertainties

7 — Moment Tensors & Magnitudes

Moment Tensors, Radiation Patterns, Magnitudes

07a–d

Moment tensor decomposition, radiation patterns, magnitude scales

Optional

Tomography

Travel-time tomography, surface wave inversion

Each notebook includes a Colab badge — click it to run in Google Colab with no local setup.

Quick Start#

See INSTALL.md for full setup details.

# Option 1: Conda
git clone https://github.com/UW-geophysics-edu/ess-412-512-intro2seismology.git
cd ess-412-512-intro2seismology
conda env create -f environment.yml
conda activate ess412

# Option 2: Pixi (preferred for development)
pixi install

Repository Structure#

notebooks/          Jupyter labs (01–07, named {Module}_{Topic}_{Type}.ipynb)
lectures/           MyST Markdown lecture notes
homework/           Assignments (midterm)
solutions/          Instructor solutions
scripts/            Validation & maintenance scripts
references.bib      Shared BibTeX bibliography
_toc.yml            Table of contents
_config.yml         Jupyter Book configuration
pixi.toml           Pixi tasks & dependencies
environment.yml     Conda environment

ESS 412 vs 512#

  • ESS 412: Core exercises, provided code templates, physical interpretation

  • ESS 512: Additional analytical depth, implement algorithms from scratch, literature connections, paper presentation

Graduate-only sections are clearly marked in each notebook.

References & Citations#

All references live in references.bib. Cite in MyST Markdown with:

{cite:t}`Shearer2009`            → Shearer (2009)
{cite:p}`Shearer2009`            → (Shearer, 2009)
{cite}`Shearer2009,AkiRichards2002`  → multiple

Add a bibliography block at the bottom of any page that uses citations:

```{bibliography}
:filter: docname in docnames
```

Contributing#

See CONTRIBUTING.md for notebook conventions, naming, and validation steps. Quick checklist:

  1. Follow the naming convention: {Module}{Letter}_{Topic}_{Type}.ipynb

  2. Add a Colab badge in the first cell (URL must use UW-geophysics-edu)

  3. Update _toc.yml if adding a new file

  4. Run pre-commit run --all-files before committing

Acknowledgments#

License#

MIT — see LICENSE.

Contact#

Instructor: Marine Denolle · ESS 412/512, University of Washington Repo: UW-geophysics-edu/ess-412-512-intro2seismology