From 65c1e7035f88731bf411218fcc4d66d3de006f2a Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 09:45:11 -0600 Subject: [PATCH 01/12] Cache pip to avoid re-downloading --- .github/workflows/gh-page_builder.yml | 4 ++-- requirements.txt | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 requirements.txt diff --git a/.github/workflows/gh-page_builder.yml b/.github/workflows/gh-page_builder.yml index 500145b8..244ec922 100644 --- a/.github/workflows/gh-page_builder.yml +++ b/.github/workflows/gh-page_builder.yml @@ -14,11 +14,11 @@ jobs: uses: actions/setup-python@v6 with: python-version: 3.9 + cache: 'pip' - name: Install Python dependencies run: | sudo apt-get install python3-pip - pip install ghp-import - pip install "jupyter-book<2" + pip install -r requirements.txt PATH="${PATH}:${HOME}/.local/bin" - name: Build book HTML run: | diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..953f0122 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +ghp-import +jupyter-book<2 From d6562b78e4c9832e32f1681481880d47a8348194 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 09:49:07 -0600 Subject: [PATCH 02/12] Trigger build (not publish) on PRs. --- .github/workflows/gh-page_builder.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gh-page_builder.yml b/.github/workflows/gh-page_builder.yml index 244ec922..c00c4021 100644 --- a/.github/workflows/gh-page_builder.yml +++ b/.github/workflows/gh-page_builder.yml @@ -2,7 +2,11 @@ name: JupyterBook #name: Build and Publish JupyterBook to GitHub Pages # on: - [push, workflow_dispatch] + push: + branches: + - main + workflow_dispatch: + pull_request: jobs: build: @@ -24,6 +28,8 @@ jobs: run: | jupyter-book build . - name: Push _build/html to gh-pages + # The below condition allows publication on pushes to main (including PR merges) as well as workflow_dispatch from main. + if: github.ref == 'refs/heads/main' run: | sudo chown -R $(whoami):$(whoami) . git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com" From 53b08893c231b7c899b297bbbbaea143c5a3e800 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 09:53:48 -0600 Subject: [PATCH 03/12] Build/publish workflow now fails on warnings. This is required to catch things that matter (like if you specify something in _toc.yml but it doesn't exist), but unfortunately it also catches things that don't (like skipping from heading level 1 to 3 without a 2 in between). --- .github/workflows/gh-page_builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-page_builder.yml b/.github/workflows/gh-page_builder.yml index c00c4021..096b0389 100644 --- a/.github/workflows/gh-page_builder.yml +++ b/.github/workflows/gh-page_builder.yml @@ -26,7 +26,7 @@ jobs: PATH="${PATH}:${HOME}/.local/bin" - name: Build book HTML run: | - jupyter-book build . + jupyter-book build -W --keep-going . - name: Push _build/html to gh-pages # The below condition allows publication on pushes to main (including PR merges) as well as workflow_dispatch from main. if: github.ref == 'refs/heads/main' From 8e220326a941f3483e05641749a79970085e9190 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:24:18 -0600 Subject: [PATCH 04/12] Exclude notebooks not in any toctree Co-Authored-By: Claude Opus 5.5 --- _config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/_config.yml b/_config.yml index 6731288a..90b00c7f 100644 --- a/_config.yml +++ b/_config.yml @@ -8,6 +8,12 @@ logo: images/ncar_logo.png # Removing CESM2 Porting for 2026 tutorial (need to update to CESM3 in future) exclude_patterns: - notebooks/resources/porting.ipynb + - notebooks/challenge/cam/exercice_overview.ipynb + - notebooks/modifications/xml/copying_cases.ipynb + - notebooks/modifications/xml/run_length/number_of_submissions.ipynb + - notebooks/resources/ncar_hpc_login.ipynb + - notebooks/resources/profile.ipynb + - notebooks/resources/tutorial_specific.ipynb sphinx: config: From 5d70f2a65411634c6de5b07872066c76e5eda2fd Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:25:37 -0600 Subject: [PATCH 05/12] Fix non-consecutive markdown header levels Co-Authored-By: Claude Opus 5.5 --- notebooks/challenge/cam/exercise_3.ipynb | 4 ++-- notebooks/challenge/cism/cism_exercise_2.ipynb | 8 ++++---- notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb | 2 +- notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb | 2 +- notebooks/challenge/ml/ml_exercise_1.ipynb | 4 ++-- .../xml/modify_run_type/hybrid_branch_restart.ipynb | 6 +++--- .../namelist/exercises/exercise_tuning_parameter.ipynb | 6 +++--- notebooks/resources/ncar_hpc_module.ipynb | 6 +++--- notebooks/resources/tutorial_queue_account.ipynb | 6 +++--- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/notebooks/challenge/cam/exercise_3.ipynb b/notebooks/challenge/cam/exercise_3.ipynb index 210ce7ba..913103b6 100644 --- a/notebooks/challenge/cam/exercise_3.ipynb +++ b/notebooks/challenge/cam/exercise_3.ipynb @@ -293,7 +293,7 @@ "\n", "___\n", "\n", - "### **Verify the Configuration**\n", + "## **Verify the Configuration**\n", "\n", "**# Check the Run Type**\n", "```\n", @@ -341,7 +341,7 @@ "\n", "___\n", "\n", - "### **Check your solution**\n", + "## **Check your solution**\n", "\n", "When the run is completed, look at the history files into the archive directory. \n", " \n", diff --git a/notebooks/challenge/cism/cism_exercise_2.ipynb b/notebooks/challenge/cism/cism_exercise_2.ipynb index 596a677b..c3502c7c 100644 --- a/notebooks/challenge/cism/cism_exercise_2.ipynb +++ b/notebooks/challenge/cism/cism_exercise_2.ipynb @@ -46,7 +46,7 @@ "id": "916e2e9b-fd7e-4fc3-83f9-4f69c052a16b", "metadata": {}, "source": [ - "### Loading packages" + "## Loading packages" ] }, { @@ -74,7 +74,7 @@ "id": "071fa04b-c689-4c76-8da6-eed739ca6398", "metadata": {}, "source": [ - "### Set your user name " + "## Set your user name " ] }, { @@ -92,7 +92,7 @@ "id": "177b05f1-ec2b-4086-9f26-2234c19d18c6", "metadata": {}, "source": [ - "### Set the 2 years you would like to compare" + "## Set the 2 years you would like to compare" ] }, { @@ -111,7 +111,7 @@ "id": "e57243eb-3968-4a6d-9e6a-b477507507ed", "metadata": {}, "source": [ - "### Defining the path and filenames " + "## Defining the path and filenames " ] }, { diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb index 8a8ed194..33fe28f3 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb @@ -603,7 +603,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Questions:\n", + "### Questions:\n", "- What is the primary difference in GPP between the IHIST BGC case and the I2000 SP case?\n", "- Why might this be occuring? " ] diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb index c94ad6e7..80f8292e 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_5.ipynb @@ -348,7 +348,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "#### Questions: \n", + "### Questions: \n", "\n", " - How do GPP and LAI track each other through the year? Which leads the other in spring, and does that make physical sense?\n", " - Does LAI fall all the way to zero in winter? What does the residual tell you about the mix of plant functional types at this site? (think back to which PFTs grow at BART.)" diff --git a/notebooks/challenge/ml/ml_exercise_1.ipynb b/notebooks/challenge/ml/ml_exercise_1.ipynb index 65f03df8..c8c4c13c 100644 --- a/notebooks/challenge/ml/ml_exercise_1.ipynb +++ b/notebooks/challenge/ml/ml_exercise_1.ipynb @@ -7,7 +7,7 @@ "source": [ "# CAMulator Exercises: CESM Tutorial: Summer 2026\n", "\n", - "#### **CAMulator** is a global, machine-learned autoregressive emulator trained with data from the Community Atmosphere Model. See the version 1 publication here: https://arxiv.org/pdf/2504.06007\n", + "## **CAMulator** is a global, machine-learned autoregressive emulator trained with data from the Community Atmosphere Model. See the version 1 publication here: https://arxiv.org/pdf/2504.06007\n", "\n", "Camulator was trained and is run using the [CREDIT package](https://github.com/NCAR/miles-credit/tree/main).\n", "\n", @@ -934,7 +934,7 @@ "id": "1b394df9", "metadata": {}, "source": [ - "#### El Niño blob intervention\n", + "### El Niño blob intervention\n", "\n", "Add a Gaussian warm SST anomaly (amplitude `ENSO_AMP` K) centered in the equatorial central-eastern\n", "Pacific — elongated zonally (broad in longitude, narrow in latitude), like a real El Niño — on top of\n", diff --git a/notebooks/modifications/xml/modify_run_type/hybrid_branch_restart.ipynb b/notebooks/modifications/xml/modify_run_type/hybrid_branch_restart.ipynb index 04264dfa..046ba534 100644 --- a/notebooks/modifications/xml/modify_run_type/hybrid_branch_restart.ipynb +++ b/notebooks/modifications/xml/modify_run_type/hybrid_branch_restart.ipynb @@ -29,13 +29,13 @@ "## 1. The three run types\n", "\n", "\n", - "#### - STARTUP\n", + "### - STARTUP\n", "\n", "- In a startup run (the default), all model components are initialized from the basic **default initial conditions**. The coupler does not need an initial file. \n", "\n", "\n", "\n", - "#### - BRANCH\n", + "### - BRANCH\n", "\n", "- In a branch run, all components are initialized using **a consistent set of restart files from a previous run** (determined by the [`$RUN_REFCASE`](./run_variables.ipynb), [`$RUN_REFDATE`](./run_variables.ipynb), and [`$DRV_RESTART_POINTER`](./run_variables.ipynb) variables in env_run.xml). \n", "- The case name is generally changed for a branch run, although it does not have to be. \n", @@ -44,7 +44,7 @@ "\n", "\n", "\n", - "#### - HYBRID\n", + "### - HYBRID\n", "\n", "- A hybrid run indicates that CESM is initialized more like a startup, but uses initialization datasets from a previous case. This is somewhat analogous to a branch run with relaxed restart constraints. \n", "- A hybrid run allows users to bring together combinations of initial/restart files from a previous case (specified by [`$RUN_REFCASE`](./run_variables.ipynb)) at a given model output date (specified by [`$RUN_REFDATE`](./run_variables.ipynb)). Unlike a branch run, the starting date of a hybrid run (specified by [`$RUN_STARTDATE`](./run_variables.ipynb)) can be modified relative to the reference case. \n", diff --git a/notebooks/namelist/exercises/exercise_tuning_parameter.ipynb b/notebooks/namelist/exercises/exercise_tuning_parameter.ipynb index 049a8991..7bc94a0f 100644 --- a/notebooks/namelist/exercises/exercise_tuning_parameter.ipynb +++ b/notebooks/namelist/exercises/exercise_tuning_parameter.ipynb @@ -60,7 +60,7 @@ " \n", "\n", "\n", - "### Where is the Dcs parameter?\n", + "## Where is the Dcs parameter?\n", "\n", "The variable you are looking for is:\n", "\n", @@ -70,13 +70,13 @@ "\n", "It can be modified directly in `user_nl_cam`.\n", "\n", - "### How do I compile?\n", + "## How do I compile?\n", "\n", "```bash\n", "qcmd -- ./case.build\n", "```\n", "\n", - "### Compare this run with the interpolation exercise\n", + "## Compare this run with the interpolation exercise\n", "\n", "Compare this run with the case you created in the previous exercise:\n", "\n", diff --git a/notebooks/resources/ncar_hpc_module.ipynb b/notebooks/resources/ncar_hpc_module.ipynb index 39ccdd14..d4f75ddb 100644 --- a/notebooks/resources/ncar_hpc_module.ipynb +++ b/notebooks/resources/ncar_hpc_module.ipynb @@ -49,7 +49,7 @@ "id": "33d4014c-bc0f-4ab0-aaf3-cf6cf7572f22", "metadata": {}, "source": [ - "### Checking what modules are loaded in your environment\n", + "## Checking what modules are loaded in your environment\n", "\n", "To check what modules you have loaded in your environment, use the following at the command line:" ] @@ -69,7 +69,7 @@ "id": "2a5ec941-4f4a-4a99-a3a0-6e514c448805", "metadata": {}, "source": [ - "### Checking what modules are available\n", + "## Checking what modules are available\n", "\n", "You can see which modules are available on the HPC resources by using the following at the command line:" ] @@ -119,7 +119,7 @@ "id": "65848ac8-1cad-47bf-b680-8b129ce4e25d", "metadata": {}, "source": [ - "### Loading a new module to your environment\n", + "## Loading a new module to your environment\n", "\n", "You can load one of the available modules (here we show loading ncview) using the following at the command line: " ] diff --git a/notebooks/resources/tutorial_queue_account.ipynb b/notebooks/resources/tutorial_queue_account.ipynb index 366b0e5a..afa68006 100644 --- a/notebooks/resources/tutorial_queue_account.ipynb +++ b/notebooks/resources/tutorial_queue_account.ipynb @@ -13,7 +13,7 @@ "id": "4a6f76fe-9658-443c-89a7-9ede364803e5", "metadata": {}, "source": [ - "### Tutorial Project Account\n", + "## Tutorial Project Account\n", "\n", "
\n", "You should have access to project account UESM0016 and use this for your simulations.\n", @@ -30,7 +30,7 @@ "id": "9db9d54e-ef78-44ef-a003-4ddd8a416317", "metadata": {}, "source": [ - "### Special Queues\n", + "## Special Queues\n", "\n", "
\n", "\n", @@ -60,7 +60,7 @@ "id": "d312e6e0-f48b-4f86-a97b-96c255d35d26", "metadata": {}, "source": [ - "### Compiling in the Special Queue" + "## Compiling in the Special Queue" ] }, { From 6fb353c95855bd353ff78365463046b24bdb6441 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:26:03 -0600 Subject: [PATCH 06/12] Convert non-Python code cells to markdown Co-Authored-By: Claude Opus 5.5 --- notebooks/challenge/clm_ctsm/clm_ctsm.ipynb | 13 ++++--------- notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb | 13 ++++--------- notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb | 13 ++++--------- notebooks/resources/text_editors.ipynb | 4 +--- 4 files changed, 13 insertions(+), 30 deletions(-) diff --git a/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb b/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb index 688094a2..52d8af08 100644 --- a/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_ctsm.ipynb @@ -131,19 +131,14 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "id": "06a6c211", - "metadata": { - "vscode": { - "languageId": "shellscript" - } - }, - "outputs": [], + "metadata": {}, "source": [ + "```bash\n", "cd /glade/u/home/$USER/code/my_cesm_code\n", "cime/scripts/query_config --compsets clm | grep \"I2000Clm60Sp \"\n", - "\n" + "```" ] }, { diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb index c79e0f66..c6aaa730 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_2.ipynb @@ -26,19 +26,14 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "id": "b4513705", - "metadata": { - "vscode": { - "languageId": "shellscript" - } - }, - "outputs": [], + "metadata": {}, "source": [ + "```bash\n", "cd /glade/u/home/$USER/code/my_cesm_code\n", "cime/scripts/query_config --compsets clm | grep \"I2000Clm60Sp \"\n", - "\n" + "```" ] }, { diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb index 2d1ccf85..4277406c 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_3.ipynb @@ -60,19 +60,14 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "id": "286afe86", - "metadata": { - "vscode": { - "languageId": "shellscript" - } - }, - "outputs": [], + "metadata": {}, "source": [ + "```bash\n", "cd /glade/u/home/$USER/code/my_cesm_code\n", "cime/scripts/query_config --compsets clm | grep \"I2000Clm60FatesSpCrujraRsGs \"\n", - "\n" + "```" ] }, { diff --git a/notebooks/resources/text_editors.ipynb b/notebooks/resources/text_editors.ipynb index 98e78635..1e24ec9f 100644 --- a/notebooks/resources/text_editors.ipynb +++ b/notebooks/resources/text_editors.ipynb @@ -25,11 +25,9 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "id": "14daecd3-2958-4925-bc37-e8748db4937b", "metadata": {}, - "outputs": [], "source": [ "Emacs is an extensible, customizable, and self-documenting editor. Emacs opens a GUI to your computer and requires X11 forwarding. Once open, it can be used similar to a normal document including scrolling.\n", "\n", From d1e4cc429b0841653a5f2f6e09673bafef21aa9f Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:26:24 -0600 Subject: [PATCH 07/12] Fix quoted image path Co-Authored-By: Claude Opus 5.5 --- notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb index 33fe28f3..4b029fc9 100644 --- a/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb +++ b/notebooks/challenge/clm_ctsm/clm_exercise_4.ipynb @@ -397,7 +397,7 @@ "
\n", "Click here for the solution
\n", "\n", - "![plot example](\"../../../images/challenge/fates_vcmax_diff.png\")\n", + "![plot example](../../../images/challenge/fates_vcmax_diff.png)\n", "\n", "*

Figure: Plotting solution comparing the two FATES simulations.

*\n", " \n", From 7744effbaf0c8d871c9d755a9ba7c24865a91a58 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:26:46 -0600 Subject: [PATCH 08/12] Add missing URL for CICE compset definitions link Co-Authored-By: Claude Opus 5.5 --- notebooks/challenge/cice/cice.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebooks/challenge/cice/cice.ipynb b/notebooks/challenge/cice/cice.ipynb index a6388d05..25f72585 100644 --- a/notebooks/challenge/cice/cice.ipynb +++ b/notebooks/challenge/cice/cice.ipynb @@ -120,7 +120,7 @@ "source": [ "
\n", "\n", - "[Compset Definitions]()\n", + "[Compset Definitions](https://www2.cesm.ucar.edu/models/cesm2/config/compsets.html)\n", "\n", "
" ] From 850080cb453db10ef593b863fb8855b86c39b035 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:27:09 -0600 Subject: [PATCH 09/12] Move MOM horizontal rule out of section start Co-Authored-By: Claude Opus 5.5 --- notebooks/diagnostics/mom/mom.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/notebooks/diagnostics/mom/mom.ipynb b/notebooks/diagnostics/mom/mom.ipynb index 34de77c7..ef2cd82b 100644 --- a/notebooks/diagnostics/mom/mom.ipynb +++ b/notebooks/diagnostics/mom/mom.ipynb @@ -76,7 +76,9 @@ "source": [ "### Exercise 4: Making a profile\n", "\n", - "Here we learn how to plot a temperature profile at a single point on the ocean grid." + "Here we learn how to plot a temperature profile at a single point on the ocean grid.\n", + "\n", + "_______________" ] }, { @@ -84,9 +86,7 @@ "id": "782bebb4-f00e-4362-8738-736ab39a311d", "metadata": {}, "source": [ - "## Advanced Plotting\n", - "\n", - "_______________" + "## Advanced Plotting" ] }, { From e182d498d2b4f0bb4159420732e9d4c286a12b59 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:38:37 -0600 Subject: [PATCH 10/12] Add missing cell ids to cam-chem_waccm notebooks Co-Authored-By: Claude Opus 5.5 --- notebooks/challenge/cam-chem_waccm/cam-chem_waccm.ipynb | 7 +++++++ notebooks/challenge/cam-chem_waccm/exercise_1.ipynb | 5 +++++ notebooks/challenge/cam-chem_waccm/exercise_2.ipynb | 5 +++++ notebooks/challenge/cam-chem_waccm/exercise_3.ipynb | 5 +++++ notebooks/challenge/cam-chem_waccm/visualization.ipynb | 3 +++ 5 files changed, 25 insertions(+) diff --git a/notebooks/challenge/cam-chem_waccm/cam-chem_waccm.ipynb b/notebooks/challenge/cam-chem_waccm/cam-chem_waccm.ipynb index bf416c1c..7610bc69 100644 --- a/notebooks/challenge/cam-chem_waccm/cam-chem_waccm.ipynb +++ b/notebooks/challenge/cam-chem_waccm/cam-chem_waccm.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "a71d9f66-43a6-4dc7-9252-5b2fb07690e3", "metadata": {}, "source": [ "# Atmospheric chemistry" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "2d89d5b4-5af7-4a24-926d-65d8a997ea55", "metadata": { "tags": [] }, @@ -22,6 +24,7 @@ }, { "cell_type": "markdown", + "id": "f60c6c06-4b10-41a0-b3e8-853a59b93f36", "metadata": {}, "source": [ "## CAM-chem and WACCM component sets\n", @@ -42,6 +45,7 @@ } }, "cell_type": "markdown", + "id": "cf000a8d-c6e3-497f-8646-1e16d8988097", "metadata": {}, "source": [ "## CAM-chem and WACCM F component sets\n", @@ -61,6 +65,7 @@ }, { "cell_type": "markdown", + "id": "fe3ca599-d884-4277-b421-2fbaafe4d93a", "metadata": {}, "source": [ "## Overview of the Challenge Exercises for CAM-chem/WACCM\n", @@ -74,6 +79,7 @@ }, { "cell_type": "markdown", + "id": "7dffcef5-b06d-4143-bab6-29cd90aff98a", "metadata": {}, "source": [ "_______________\n", @@ -94,6 +100,7 @@ { "cell_type": "code", "execution_count": null, + "id": "e60af30a-2425-4412-9a67-40ac6656c186", "metadata": {}, "outputs": [], "source": [] diff --git a/notebooks/challenge/cam-chem_waccm/exercise_1.ipynb b/notebooks/challenge/cam-chem_waccm/exercise_1.ipynb index b7d24754..a446dd5c 100644 --- a/notebooks/challenge/cam-chem_waccm/exercise_1.ipynb +++ b/notebooks/challenge/cam-chem_waccm/exercise_1.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "f97c18d1-eee0-4074-96d2-5a62d026ccd7", "metadata": {}, "source": [ "# 1: Control case: running with chemistry" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "4a876c90-5738-47d2-921a-4ba392725130", "metadata": {}, "source": [ "\n", @@ -29,6 +31,7 @@ }, { "cell_type": "markdown", + "id": "a45d3bf8-9b01-4d16-8c7f-36cfad680884", "metadata": {}, "source": [ "\n", @@ -82,6 +85,7 @@ }, { "cell_type": "markdown", + "id": "4226f4d2-98e9-4d4c-8a7e-facb39dac400", "metadata": {}, "source": [ "\n", @@ -227,6 +231,7 @@ { "cell_type": "code", "execution_count": null, + "id": "73087ac0-96a1-4915-a00e-118adab201f7", "metadata": {}, "outputs": [], "source": [] diff --git a/notebooks/challenge/cam-chem_waccm/exercise_2.ipynb b/notebooks/challenge/cam-chem_waccm/exercise_2.ipynb index e2d71f87..68a15c58 100644 --- a/notebooks/challenge/cam-chem_waccm/exercise_2.ipynb +++ b/notebooks/challenge/cam-chem_waccm/exercise_2.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "06e86d57-b628-4ac6-b709-5ce8471e387e", "metadata": {}, "source": [ "# 2: Test case: changing the chemistry" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "9e78e571-ea6c-4017-a309-d880fda4a95c", "metadata": {}, "source": [ "\n", @@ -44,6 +46,7 @@ }, { "cell_type": "markdown", + "id": "0f49fdeb-2f0a-408f-b9ff-ad5e85af714e", "metadata": {}, "source": [ "\n", @@ -84,6 +87,7 @@ }, { "cell_type": "markdown", + "id": "210f69f4-96f6-47ed-b5fc-0422b6996f11", "metadata": {}, "source": [ "\n", @@ -252,6 +256,7 @@ { "cell_type": "code", "execution_count": null, + "id": "1c346bc1-47f4-4bed-b53c-c16d88ee5f00", "metadata": {}, "outputs": [], "source": [] diff --git a/notebooks/challenge/cam-chem_waccm/exercise_3.ipynb b/notebooks/challenge/cam-chem_waccm/exercise_3.ipynb index 03dc5f98..afe690ab 100644 --- a/notebooks/challenge/cam-chem_waccm/exercise_3.ipynb +++ b/notebooks/challenge/cam-chem_waccm/exercise_3.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "e516483d-290b-4a13-b3f2-3c36d74ba443", "metadata": {}, "source": [ "# 3: Test case: changing the emissions" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "fa4eb23f-ced7-4c49-b80e-8e11b35e27d5", "metadata": {}, "source": [ "\n", @@ -29,6 +31,7 @@ }, { "cell_type": "markdown", + "id": "37626595-43cf-490a-908b-23f1f5fe8507", "metadata": {}, "source": [ "\n", @@ -58,6 +61,7 @@ }, { "cell_type": "markdown", + "id": "ee1de48c-2096-4274-be27-3670737e2d99", "metadata": {}, "source": [ "\n", @@ -325,6 +329,7 @@ { "cell_type": "code", "execution_count": null, + "id": "8f7ed79f-be6d-44af-9144-b2cece9013c2", "metadata": {}, "outputs": [], "source": [] diff --git a/notebooks/challenge/cam-chem_waccm/visualization.ipynb b/notebooks/challenge/cam-chem_waccm/visualization.ipynb index 881ee711..e1201765 100644 --- a/notebooks/challenge/cam-chem_waccm/visualization.ipynb +++ b/notebooks/challenge/cam-chem_waccm/visualization.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "fc8f1fa6-d1ee-4140-ba7a-448d827e4b84", "metadata": {}, "source": [ "# 4: Visualization option with GEOV" @@ -9,6 +10,7 @@ }, { "cell_type": "markdown", + "id": "90c45506-cd94-4c2d-948e-b1d6e5b16719", "metadata": {}, "source": [ "\n", @@ -55,6 +57,7 @@ { "cell_type": "code", "execution_count": null, + "id": "9e3ed3d5-d6c0-4365-9cdb-93b6e7cccb99", "metadata": {}, "outputs": [], "source": [] From 3e26c750c41ee7b703955b9fe4831ee3508a85e0 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:38:57 -0600 Subject: [PATCH 11/12] Replace duplicate cell ids in paleo notebooks Co-Authored-By: Claude Opus 5.5 --- notebooks/challenge/paleo/exercise_2.ipynb | 8 ++++---- notebooks/challenge/paleo/paleo.ipynb | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/notebooks/challenge/paleo/exercise_2.ipynb b/notebooks/challenge/paleo/exercise_2.ipynb index 696cb074..b4ffdb6f 100644 --- a/notebooks/challenge/paleo/exercise_2.ipynb +++ b/notebooks/challenge/paleo/exercise_2.ipynb @@ -264,7 +264,7 @@ }, { "cell_type": "markdown", - "id": "b90d4773-7ca0-4131-ab07-517608a3e976", + "id": "f8bc766b-27eb-4ce3-bf4b-9a0673e6b965", "metadata": {}, "source": [ "\n", @@ -295,7 +295,7 @@ }, { "cell_type": "markdown", - "id": "65b2cbda-2d54-48ee-898b-4c391f16ca79", + "id": "96cc3045-4d2e-4592-a245-925bf3073205", "metadata": {}, "source": [ "\n", @@ -332,7 +332,7 @@ }, { "cell_type": "markdown", - "id": "7dd602b7-372d-4f36-b6d1-df8e22ba1646", + "id": "2de64fb5-a10b-4fe1-a856-9ecc70d11962", "metadata": {}, "source": [ "\n", @@ -452,7 +452,7 @@ }, { "cell_type": "markdown", - "id": "65b2cbda-2d54-48ee-898b-4c391f16ca79", + "id": "1d486a2a-f04a-408f-8116-7765cf92ad7b", "metadata": {}, "source": [ "\n", diff --git a/notebooks/challenge/paleo/paleo.ipynb b/notebooks/challenge/paleo/paleo.ipynb index 71e9a2c7..f7f52d0a 100644 --- a/notebooks/challenge/paleo/paleo.ipynb +++ b/notebooks/challenge/paleo/paleo.ipynb @@ -43,7 +43,7 @@ }, { "cell_type": "markdown", - "id": "b6f4905b-cd2a-454e-89cf-ccc585c90247", + "id": "5e03df41-d471-4e34-9f23-9a5388a2af10", "metadata": { "tags": [] }, @@ -53,7 +53,7 @@ }, { "cell_type": "markdown", - "id": "346cbd7b-3b8e-41f0-b120-b369ab20f6cc", + "id": "32b4de57-03c7-48f0-9659-c7f183a0e134", "metadata": {}, "source": [ "- This exercise uses the same code base as the rest of the tutorial. \n", @@ -63,7 +63,7 @@ }, { "cell_type": "markdown", - "id": "b6f4905b-cd2a-454e-89cf-ccc585c90247", + "id": "0529a0fa-6b06-40e9-a89b-56a9d99dacd9", "metadata": { "tags": [] }, @@ -73,7 +73,7 @@ }, { "cell_type": "markdown", - "id": "346cbd7b-3b8e-41f0-b120-b369ab20f6cc", + "id": "5e7e1bc0-e7d2-4f31-b7e8-f8ffc47e7a86", "metadata": {}, "source": [ "- This exercise uses a different code base from the rest of the tutorial (isotope-enabled CESM1.3). \n", From ed69e27bb297651450e3a0a545263bfc5377cd22 Mon Sep 17 00:00:00 2001 From: Sam Rabin Date: Thu, 15 Oct 2026 10:49:29 -0600 Subject: [PATCH 12/12] Convert a very long H2 to normal text. --- notebooks/challenge/ml/ml_exercise_1.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebooks/challenge/ml/ml_exercise_1.ipynb b/notebooks/challenge/ml/ml_exercise_1.ipynb index c8c4c13c..6f38ed82 100644 --- a/notebooks/challenge/ml/ml_exercise_1.ipynb +++ b/notebooks/challenge/ml/ml_exercise_1.ipynb @@ -7,7 +7,7 @@ "source": [ "# CAMulator Exercises: CESM Tutorial: Summer 2026\n", "\n", - "## **CAMulator** is a global, machine-learned autoregressive emulator trained with data from the Community Atmosphere Model. See the version 1 publication here: https://arxiv.org/pdf/2504.06007\n", + "**CAMulator** is a global, machine-learned autoregressive emulator trained with data from the Community Atmosphere Model. See the version 1 publication here: https://arxiv.org/pdf/2504.06007\n", "\n", "Camulator was trained and is run using the [CREDIT package](https://github.com/NCAR/miles-credit/tree/main).\n", "\n",