Skip to content

brian-rose/ClimateLaboratoryBook

Repository files navigation

The Climate Laboratory

DOI Deploy Book Link Checker

A hands-on approach to climate physics and climate modeling

By Brian E. J. Rose, University at Albany

About the book

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)

How to contribute or modify the book

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.

How is the book published

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.