ESS 412/512: Introduction to Seismology#
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 |
02 |
Elastic constants, stress/strain tensors, Hooke’s Law |
|
3 — Body Waves |
03a–c |
P/S polarization, ray tracing (PyKonal), global phases (TauP) |
|
4 — Reflection |
— |
04a–b |
Reflection/transmission coefficients, CMP, NMO, migration |
5 — Surface Waves |
05a–d |
Rayleigh & Love waves, dispersion, ambient noise |
|
6 — Earthquake Sources |
06a |
Earthquake location methods & uncertainties |
|
7 — Moment Tensors & Magnitudes |
07a–d |
Moment tensor decomposition, radiation patterns, magnitude scales |
|
Optional |
— |
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:
Follow the naming convention:
{Module}{Letter}_{Topic}_{Type}.ipynbAdd a Colab badge in the first cell (URL must use
UW-geophysics-edu)Update
_toc.ymlif adding a new fileRun
pre-commit run --all-filesbefore 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 IRIS DMC via FDSN web services
License#
MIT — see LICENSE.
Contact#
Instructor: Marine Denolle · ESS 412/512, University of Washington Repo: UW-geophysics-edu/ess-412-512-intro2seismology