From cc1e1f4b7d8e7513530cca20404b1927c12d54b2 Mon Sep 17 00:00:00 2001 From: Zach Sherman <19153455+zssherman@users.noreply.github.com> Date: Fri, 23 Oct 2026 14:20:42 -0500 Subject: [PATCH 1/4] CI: Attempt to fix deploy merge Refactor GitHub Actions workflow to separate build and deploy jobs with verification steps. --- .github/workflows/deploy.yml | 117 +++++++++++++++++++++++++---------- 1 file changed, 85 insertions(+), 32 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b7fe3c02..1d180fc2 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,7 +1,6 @@ name: deploy on: - # Trigger the workflow on push to main branch push: branches: - main @@ -10,36 +9,90 @@ on: - main workflow_dispatch: -# This job installs dependencies, build the book, and pushes it to `gh-pages` +# Default: all jobs receive read-only repository access. +permissions: + contents: read + +# Avoid competing deployments to the gh-pages branch. +concurrency: + group: github-pages + cancel-in-progress: false + jobs: - build-and-deploy-book: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] - python-version: [3.14] + build-book: + name: Build book + runs-on: ubuntu-latest + + # Explicitly read-only. This job runs for PRs and main pushes. + permissions: + contents: read + steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - # Install dependencies - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade "pip>=26.2.2" "certifi>=2026.10.19" - pip install -r doc-requirements.txt - # Build the book - - name: Build the book - run: | - jupyter-book build . - # Deploy the book's HTML to gh-pages branch - - name: GitHub Pages action - uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 - if: github.ref == 'refs/heads/main' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: _build/html + - name: Check out repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Set up Python + uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 + with: + python-version: "3.14" + + - name: Install dependencies + run: | + python -m pip install --upgrade "pip>=26.2.2" "certifi>=2026.10.19" + python -m pip install -r doc-requirements.txt + + - name: Build the book + run: | + jupyter-book build . + + # This fails here, with a clear message, if Jupyter Book did not + # generate the expected output directory. + - name: Verify generated HTML site + run: | + test -d "_build/html" + test -f "_build/html/index.html" + echo "Generated site:" + find _build/html -maxdepth 2 -type f | head -50 + + # Pass the generated site to the isolated deployment job. + - name: Upload generated site + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + with: + name: jupyter-book-html + path: _build/html + if-no-files-found: error + retention-days: 1 + + deploy-book: + name: Deploy book to gh-pages + needs: build-book + + # A merged PR results in a push to main. + # PR runs and manual workflow runs never receive write access. + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + + runs-on: ubuntu-latest + + # Write access exists only in this deployment job. + permissions: + contents: write + + steps: + - name: Download generated site + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 + with: + name: jupyter-book-html + path: site + + - name: Verify deployment artifact + run: | + test -f "site/index.html" + + - name: Publish site to gh-pages + uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: ./site From 886561badd33f8f2ed48aba8bc6a27dfc2e96989 Mon Sep 17 00:00:00 2001 From: Zach Sherman <19153455+zssherman@users.noreply.github.com> Date: Fri, 23 Oct 2026 14:28:16 -0500 Subject: [PATCH 2/4] Modify Jupyter Book build command for HTML output Updated Jupyter Book build command to include HTML output. --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1d180fc2..4d634dfe 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -45,7 +45,7 @@ jobs: - name: Build the book run: | - jupyter-book build . + jupyter-book build --html # This fails here, with a clear message, if Jupyter Book did not # generate the expected output directory. From 8112d5a1eb99a07a626f3925156a26c9bdfd9e16 Mon Sep 17 00:00:00 2001 From: Zach Sherman <19153455+zssherman@users.noreply.github.com> Date: Fri, 23 Oct 2026 14:39:32 -0500 Subject: [PATCH 3/4] Refactor GitHub Actions for MyST Pages Deployment --- .github/workflows/deploy.yml | 118 ++++++++++------------------------- 1 file changed, 34 insertions(+), 84 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4d634dfe..c9629c60 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,98 +1,48 @@ -name: deploy +# This file was created automatically with `myst init --gh-pages` 🪄 💚 +name: MyST GitHub Pages Deploy on: push: - branches: - - main - pull_request: - branches: - - main - workflow_dispatch: - -# Default: all jobs receive read-only repository access. + # Runs on pushes targeting the default branch + branches: [main] +env: + # `BASE_URL` determines the website is served from, including CSS & JS assets + # You may need to change this to `BASE_URL: ''` + BASE_URL: /${{ github.event.repository.name }} + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read - -# Avoid competing deployments to the gh-pages branch. + pages: write + id-token: write +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: - group: github-pages + group: 'pages' cancel-in-progress: false - jobs: - build-book: - name: Build book + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest - - # Explicitly read-only. This job runs for PRs and main pushes. - permissions: - contents: read - steps: - - name: Check out repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - - - name: Set up Python - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 - with: - python-version: "3.14" - - - name: Install dependencies - run: | - python -m pip install --upgrade "pip>=26.2.2" "certifi>=2026.10.19" - python -m pip install -r doc-requirements.txt - - - name: Build the book - run: | - jupyter-book build --html - - # This fails here, with a clear message, if Jupyter Book did not - # generate the expected output directory. - - name: Verify generated HTML site - run: | - test -d "_build/html" - test -f "_build/html/index.html" - echo "Generated site:" - find _build/html -maxdepth 2 -type f | head -50 - - # Pass the generated site to the isolated deployment job. - - name: Upload generated site - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 + - name: Setup Pages + uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 + - uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0 with: - name: jupyter-book-html - path: _build/html - if-no-files-found: error - retention-days: 1 - - deploy-book: - name: Deploy book to gh-pages - needs: build-book - - # A merged PR results in a push to main. - # PR runs and manual workflow runs never receive write access. - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - - runs-on: ubuntu-latest - - # Write access exists only in this deployment job. - permissions: - contents: write - - steps: - - name: Download generated site - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 - with: - name: jupyter-book-html - path: site - - - name: Verify deployment artifact - run: | - test -f "site/index.html" - - - name: Publish site to gh-pages - uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 + node-version: 22.23.4 + - name: Install MyST Markdown + run: npm install -g mystmd + - name: Build HTML Assets + run: myst build --html + - name: Upload artifact + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_branch: gh-pages - publish_dir: ./site + path: './_build/html' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1 From f49c9a2629e6a0e8456eb96b371705fdcca3601b Mon Sep 17 00:00:00 2001 From: zssherman Date: Fri, 23 Oct 2026 14:54:24 -0500 Subject: [PATCH 4/4] FIX: Add myst config. --- .gitignore | 3 ++ CONTRIBUTING.md | 6 +-- _config.yml | 16 ------ _toc.yml | 84 ------------------------------- myst.yml | 129 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+), 103 deletions(-) delete mode 100644 _config.yml delete mode 100644 _toc.yml create mode 100644 myst.yml diff --git a/.gitignore b/.gitignore index 742b8373..cc51d343 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ _build/ # Jupyter Notebook .ipynb_checkpoints + +# MyST build outputs +_build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9e4312cf..a33d505f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -113,7 +113,7 @@ command line tool for collaborative software version control, while GitHub is an online, web-accessible service that greatly simplifies using the powerful, yet often complex, Git. -```{Note} +```{note} GitHub operates entirely within a web browser. You do not need to install anything, but you will need to set up a free GitHub account. Git is a command line tool that is most likely already @@ -283,7 +283,7 @@ on this later. For further information see the [GitHub docs on forking a repo](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo). -```{Note} +```{note} At this point you should have a local copy of the repository in your current working directory. You can safely make changes to any of the contents. Once you are ready to contribute your changes @@ -347,7 +347,7 @@ $ git commit PATH_TO_NEW_FILE Which will prompt you for a log message. Please provide something informative. If you make lots of changes, it is best to make multiple commits, broken up into related chunks. E.g. “fixed x”, “added documentation”, “added testing”. -```{Note} +```{note} When executing `git commit` after `git add PATH_TO_NEW_FILE`, specifying the path to the new file isn't stricly necessary. However, in other instances the file path argument is required. We include it diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 28cc9df1..00000000 --- a/_config.yml +++ /dev/null @@ -1,16 +0,0 @@ -title: ARM Tutorials -author: ARM Development Team -logo: images/arm_logo.png -execute: - execute_notebooks: "off" -parse: - myst_enable_extensions: - - html_image -repository: - url: "https://github.com/ARM-Development/ARM-Notebooks" # Online location of your book - branch: main # Which branch of the repository should be used when creating links (optional) - path_to_book: ~/ARM-Notebooks/ -launch_buttons: - jupyterhub_url: "https://jupyterhub.arm.gov" - notebook_interface: "jupyterlab" -exclude_patterns: ["VAPs/quicklook/*"] # exclude ipynb files to build diff --git a/_toc.yml b/_toc.yml deleted file mode 100644 index 0fdb6dff..00000000 --- a/_toc.yml +++ /dev/null @@ -1,84 +0,0 @@ -format: jb-book -root: README.md -parts: - - caption: Getting Started - chapters: - - file: getting-started.md - - caption: How to Contribute - chapters: - - file: CONTRIBUTING.md - - file: Templates/notebook-template - - file: Templates/tutorial-schedule - - caption: Intro Tutorials - chapters: - - file: Tutorials/ACT-Python-Tutorial/1-jupyter_intro.ipynb - - file: Tutorials/ACT-Python-Tutorial/2-Python-Basics.ipynb - - file: Tutorials/ACT-Python-Tutorial/2a-scientific_libraries_numpy.ipynb - - file: Tutorials/ACT-Python-Tutorial/2b-scientific_libraries_pandas.ipynb - - file: Tutorials/ACT-Python-Tutorial/2c-scientific_libraries_xarray.ipynb - - file: Tutorials/ACT-Python-Tutorial/3-ACT-Basics.ipynb - - file: Tutorials/ACT-Python-Tutorial/3-ACT-Basics-BNF.ipynb - - file: Tutorials/ACT-Python-Tutorial/3a-ACT-TRACER-Dust.ipynb - - caption: Conference Tutorials - chapters: - - file: Tutorials/README-conf.md - sections: - - file: Tutorials/AAAR-2026-ACT-Tutorial/README.md - sections: - - file: Tutorials/AAAR-2026-ACT-Tutorial/ACT-Basics-DUSTIEAIM.ipynb - - file: Tutorials/AAAR-2026-ACT-Tutorial/PySP2_raw_SP2b_tutorial.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/README.md - sections: - - file: Tutorials/arm-asr-pi-meeting-2023/python_basics_tutorial/python-basics.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/pandas_xarray_tutorial/Pandas_Xarray_intro.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/ACT_tutorial/ACT_Tutorial_TRACER.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/pyart_tutorial/pyart-basics.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/pyart_tutorial/pyart-gridding.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/PySP2_tutorial/PySP2_tutorial.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/EMC2_tutorial/EMC2_ARM_ASR_2023_Tutorial.ipynb - - file: Tutorials/arm-asr-pi-meeting-2023/Presentations/README.md - - file: Tutorials/UPR-ACT-2023/README.md - sections: - - file: Tutorials/UPR-ACT-2023/2-jupyter_intro.ipynb - - file: Tutorials/UPR-ACT-2023/3-Python-Basics.ipynb - - file: Tutorials/UPR-ACT-2023/3a-scientific_libraries_numpy.ipynb - - file: Tutorials/UPR-ACT-2023/3b-scientific_libraries_pandas.ipynb - - file: Tutorials/UPR-ACT-2023/3c-scientific_libraries_xarray.ipynb - - file: Tutorials/UPR-ACT-2023/5-ACT-Basics-2023.ipynb - - file: Tutorials/UPR-ACT-2023/6-ACT-TRACER-Dust.ipynb - - file: Tutorials/UPR-ACT-2023/optional_github_intro.md - - file: Tutorials/UPR-ACT-2023/optional_github_branching.md - - file: Tutorials/Open-Science-Workshop-2022/README.md - sections: - - file: Tutorials/Open-Science-Workshop-2022/tutorials/day1-overview.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/jupyter-intro.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/python-intro.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/day2-overview.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/github-intro.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/forking_cloning.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/branching-forking-github-ui.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/Scientific_Libraries_Numpy.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/Scientific_Libraries_Pandas.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/Scientific_Libraries_Xarray.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/xarray.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/xarray-computation-masking.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/day3-overview.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/ARM-Data-Access.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/act-basics.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/pyart-basics.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/pyart-corrections.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/pyart-gridding.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/day4-overview.md - - file: Tutorials/Open-Science-Workshop-2022/tutorials/MetPy 01 - Overview.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/MetPy 02 - Making a SkewT.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/MetPy 02 - Solutions.ipynb - - file: Tutorials/Open-Science-Workshop-2022/tutorials/EMC2_demo_w_E3SM.ipynb - - caption: Value-added Products - chapters: - - file: VAPs/README.md - sections: - - file: VAPs/squire/intro-to-squire.ipynb - - file: VAPs/vap_notebook_list.md - - caption: Summer School Events - chapters: - - file: Summer-Schools/README.md diff --git a/myst.yml b/myst.yml new file mode 100644 index 00000000..baab1af6 --- /dev/null +++ b/myst.yml @@ -0,0 +1,129 @@ +version: 1 +project: + title: ARM Tutorials + authors: + - name: ARM Development Team + exclude: + - VAPs/quicklook/* + github: ARM-Development/ARM-Notebooks + toc: + - file: README.md + - title: Getting Started + children: + - file: getting-started.md + - title: How to Contribute + children: + - file: CONTRIBUTING.md + - file: Templates/notebook-template.ipynb + - file: Templates/tutorial-schedule.md + - title: Intro Tutorials + children: + - file: Tutorials/ACT-Python-Tutorial/1-jupyter_intro.ipynb + - file: Tutorials/ACT-Python-Tutorial/2-Python-Basics.ipynb + - file: Tutorials/ACT-Python-Tutorial/2a-scientific_libraries_numpy.ipynb + - file: Tutorials/ACT-Python-Tutorial/2b-scientific_libraries_pandas.ipynb + - file: Tutorials/ACT-Python-Tutorial/2c-scientific_libraries_xarray.ipynb + - file: Tutorials/ACT-Python-Tutorial/3-ACT-Basics.ipynb + - file: Tutorials/ACT-Python-Tutorial/3-ACT-Basics-BNF.ipynb + - file: Tutorials/ACT-Python-Tutorial/3a-ACT-TRACER-Dust.ipynb + - title: Conference Tutorials + children: + - file: Tutorials/README-conf.md + children: + - file: Tutorials/AAAR-2026-ACT-Tutorial/README.md + children: + - file: Tutorials/AAAR-2026-ACT-Tutorial/ACT-Basics-DUSTIEAIM.ipynb + - file: >- + Tutorials/AAAR-2026-ACT-Tutorial/PySP2_raw_SP2b_tutorial.ipynb + - file: Tutorials/arm-asr-pi-meeting-2023/README.md + children: + - file: >- + Tutorials/arm-asr-pi-meeting-2023/python_basics_tutorial/python-basics.ipynb + - file: >- + Tutorials/arm-asr-pi-meeting-2023/pandas_xarray_tutorial/Pandas_Xarray_intro.ipynb + - file: >- + Tutorials/arm-asr-pi-meeting-2023/ACT_tutorial/ACT_Tutorial_TRACER.ipynb + - file: >- + Tutorials/arm-asr-pi-meeting-2023/pyart_tutorial/pyart-basics.ipynb + - file: >- + Tutorials/arm-asr-pi-meeting-2023/pyart_tutorial/pyart-gridding.ipynb + - file: >- + Tutorials/arm-asr-pi-meeting-2023/PySP2_tutorial/PySP2_tutorial.ipynb + - file: >- + Tutorials/arm-asr-pi-meeting-2023/EMC2_tutorial/EMC2_ARM_ASR_2023_Tutorial.ipynb + - file: Tutorials/arm-asr-pi-meeting-2023/Presentations/README.md + - file: Tutorials/UPR-ACT-2023/README.md + children: + - file: Tutorials/UPR-ACT-2023/2-jupyter_intro.ipynb + - file: Tutorials/UPR-ACT-2023/3-Python-Basics.ipynb + - file: Tutorials/UPR-ACT-2023/3a-scientific_libraries_numpy.ipynb + - file: Tutorials/UPR-ACT-2023/3b-scientific_libraries_pandas.ipynb + - file: Tutorials/UPR-ACT-2023/3c-scientific_libraries_xarray.ipynb + - file: Tutorials/UPR-ACT-2023/5-ACT-Basics-2023.ipynb + - file: Tutorials/UPR-ACT-2023/6-ACT-TRACER-Dust.ipynb + - file: Tutorials/UPR-ACT-2023/optional_github_intro.md + - file: Tutorials/UPR-ACT-2023/optional_github_branching.md + - file: Tutorials/Open-Science-Workshop-2022/README.md + children: + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/day1-overview.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/jupyter-intro.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/python-intro.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/day2-overview.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/github-intro.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/forking_cloning.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/branching-forking-github-ui.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/Scientific_Libraries_Numpy.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/Scientific_Libraries_Pandas.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/Scientific_Libraries_Xarray.ipynb + - file: Tutorials/Open-Science-Workshop-2022/tutorials/xarray.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/xarray-computation-masking.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/day3-overview.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/ARM-Data-Access.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/act-basics.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/pyart-basics.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/pyart-corrections.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/pyart-gridding.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/day4-overview.md + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/MetPy 01 - + Overview.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/MetPy 02 - + Making a SkewT.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/MetPy 02 - + Solutions.ipynb + - file: >- + Tutorials/Open-Science-Workshop-2022/tutorials/EMC2_demo_w_E3SM.ipynb + - title: Value-added Products + children: + - file: VAPs/README.md + children: + - file: VAPs/squire/intro-to-squire.ipynb + - file: VAPs/vap_notebook_list.md + - title: Summer School Events + children: + - file: Summer-Schools/README.md +site: + options: + logo: images/arm_logo.png + folders: true + template: book-theme