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, Source Dynamics

07a–d

Moment tensor decomposition, radiation patterns, magnitude scales, source dynamics, stress drop, energy budget

8 — Earthquake Dynamics

Nucleation & Dynamic Rupture

08

Nucleation, dynamic rupture

9 — Synthesis & Frontiers

Synthesis & Frontiers

Course synthesis, research frontiers

Optional

Tomography

Tomography, Inversion

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–08, 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#

  • Course structure based on Peter Shearer’s Introduction to Seismology (Cambridge University Press)

  • Built with ObsPy, Jupyter Book, and sphinxcontrib-bibtex

  • Seismic data from Earthscope Consortium via FDSN web services

  • Course was co-edited with a mix of ChatGPT 5.2 and Claude Sonnet 4.6 and Opus 4.6. AI was used to generate toy python examples, to synthesize book chapters, to relate course content to learning materials, to relate foundational course content to relevant scientific literature chosen 2023-2025.

License#

MIT — see LICENSE.

Contact#

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