A hands-on approach to climate physics and climate modeling
By Brian E. J. Rose, University at Albany
This book is powered by JupyterBook, and aims to be all of the following:
- self-reproducing (most figures are self-generating in the notebooks)
- free and open (permissive license, sources and content available through github)
- interactive (integration with JupyterHub and Binder will allow readers to run and modify code examples)
- a living document (content will continue to evolve, and collaboration is welcome)
The material is mostly based on lecture notes for ENV 415: Climate Laboratory and ATM 623: Climate Modeling at the University at Albany.
To view the book online, go here. The JupyterBook source and all book content (mostly Jupyter Notebook files) are all in this github repository.
Much of the content is made possible by climlab, an open-source Python toolkit for interactive, process-oriented climate modeling. Brian Rose is the principle developer of climlab as well as the author of this book.
The contents of this book are licensed for free and open consumption under the following license: Creative Commons Attribution 4.0 International (CC BY 4.0)
The source repository on github contains everything you need to build your own local version of the book.
From a local clone of the source, set up a self-contained conda environment with
conda env create --file environment.yml
conda activate climlab-courseware
This environment contains all dependencies for both building the book and running all the code in the book.
To build a local copy of the book, do this from the source root
jupyter-book build .
You will then find the built book in _build/html/
, which you can open in a web browser e.g. with
open _build/html/index.html
Note that building the book creates the html from the *.md
and *.ipynb
sources, but does not re-run the notebooks. When building the book, we assume that all notebooks are already up-to-date!
(You can change this behavior by modifying the execute_notebooks
flag in _config.yml
, but beware that some of the notebooks take a very long time to execute.)
Anyone is welcome to suggest edits or improvements by opening pull requests on the github repository. If you are editing any code in a notebook, please make sure you execute the modified notebook cleanly before submitting the PR.
The book is just the rendered html that results from running jupyter-book build
. A new build is triggered on GitHub Actions whenever the sources are updated on the github repository, and the successful build is deployed to the gh-pages
branch of the repo.