{"id":308106,"name":"CMIP6 Cookbook","description":"This Project Pythia Cookbook covers examples of analysis of Google Cloud CMIP6 data using Pangeo tools.","url":"https://github.com/projectpythia/cmip6-cookbook","last_synced_at":"2026-04-08T13:30:19.655Z","repository":{"id":40775990,"uuid":"507993770","full_name":"ProjectPythia/cmip6-cookbook","owner":"ProjectPythia","description":"Examples of analysis of Google Cloud CMIP6 data using Pangeo tools","archived":false,"fork":false,"pushed_at":"2025-11-24T07:04:41.000Z","size":60156,"stargazers_count":16,"open_issues_count":8,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-01T19:30:37.879Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://projectpythia.org/cmip6-cookbook/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProjectPythia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-27T17:01:34.000Z","updated_at":"2026-02-26T08:15:33.000Z","dependencies_parsed_at":"2023-11-28T17:29:58.951Z","dependency_job_id":"d888da95-8511-4ae7-9f9c-3815439fac32","html_url":"https://github.com/ProjectPythia/cmip6-cookbook","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":"ProjectPythia/cookbook-template","purl":"pkg:github/ProjectPythia/cmip6-cookbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectPythia%2Fcmip6-cookbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectPythia%2Fcmip6-cookbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectPythia%2Fcmip6-cookbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectPythia%2Fcmip6-cookbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProjectPythia","download_url":"https://codeload.github.com/ProjectPythia/cmip6-cookbook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProjectPythia%2Fcmip6-cookbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30057576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"ProjectPythia","name":"Project Pythia","uuid":"75807555","kind":"organization","description":"Community learning resource for Python-based computing in the geosciences","email":"projectpythia@ucar.edu","website":"projectpythia.org","location":"United States of America","twitter":"Project_Pythia","company":null,"icon_url":"https://avatars.githubusercontent.com/u/75807555?v=4","repositories_count":21,"last_synced_at":"2023-03-03T22:51:31.899Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ProjectPythia","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-14T06:14:58.113Z","updated_at":"2023-03-03T22:51:31.927Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProjectPythia","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProjectPythia/repositories"},"packages":[],"commits":{"id":8350690,"full_name":"projectpythia/cmip6-cookbook","default_branch":"main","total_commits":190,"total_committers":7,"total_bot_commits":1,"total_bot_committers":1,"mean_commits":27.142857142857142,"dds":0.5210526315789474,"past_year_total_commits":13,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":6.5,"past_year_dds":0.3076923076923077,"last_synced_at":"2026-04-05T12:02:00.821Z","last_synced_commit":"f5beb490207a02c623f27b07fd9312c815c80354","created_at":"2025-01-20T12:59:40.352Z","updated_at":"2026-04-05T12:01:42.757Z","committers":[{"name":"Robert Ford","email":"50349951+r-ford","login":"r-ford","count":91},{"name":"mgrover1","email":"mgroverwx@gmail.com","login":"mgrover1","count":56},{"name":"Julia Kent","email":"46687291+jukent","login":"jukent","count":22},{"name":"Brian Rose","email":"brose@albany.edu","login":"brian-rose","count":18},{"name":"erogluorhan","email":"erogluorhan@gmail.com","login":"erogluorhan","count":1},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":1},{"name":"Henri Drake","email":"hfdrake@uci.edu","login":"hdrake","count":1}],"past_year_committers":[{"name":"Julia Kent","email":"46687291+jukent","login":"jukent","count":9},{"name":"Robert Ford","email":"50349951+r-ford","login":"r-ford","count":4}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectpythia%2Fcmip6-cookbook/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:11.408Z","repositories_count":6211357,"commits_count":918202048,"contributors_count":35614605,"owners_count":1142620,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"projectpythia/cmip6-cookbook","html_url":"https://github.com/projectpythia/cmip6-cookbook","last_synced_at":"2025-12-08T02:01:14.217Z","status":"active","issues_count":23,"pull_requests_count":75,"avg_time_to_close_issue":5424400.944444444,"avg_time_to_close_pull_request":1143845.5,"issues_closed_count":18,"pull_requests_closed_count":68,"pull_request_authors_count":6,"issue_authors_count":6,"avg_comments_per_issue":1.391304347826087,"avg_comments_per_pull_request":1.8933333333333333,"merged_pull_requests_count":58,"bot_issues_count":0,"bot_pull_requests_count":10,"past_year_issues_count":0,"past_year_pull_requests_count":8,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":4533566.75,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":6,"past_year_merged_pull_requests_count":2,"created_at":"2025-01-20T12:59:40.727Z","updated_at":"2025-12-08T02:01:14.217Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectpythia%2Fcmip6-cookbook","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectpythia%2Fcmip6-cookbook/issues","issue_labels_count":{"content":8,"bug":8,"infrastructure":2,"good first issue":1,"hackathon":1},"pull_request_labels_count":{"github_actions":6,"dependencies":6},"issue_author_associations_count":{"MEMBER":17,"CONTRIBUTOR":4,"NONE":2},"pull_request_author_associations_count":{"CONTRIBUTOR":46,"MEMBER":29},"issue_authors":{"r-ford":13,"mgrover1":4,"brian-rose":3,"chiaweh2":1,"erogluorhan":1,"ktyle":1},"pull_request_authors":{"mgrover1":28,"r-ford":22,"dependabot[bot]":10,"brian-rose":7,"jukent":7,"hdrake":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:09.463Z","repositories_count":14125314,"issues_count":34512336,"pull_requests_count":112714685,"authors_count":11228632,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{"dependencies":6,"github_actions":6},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":6,"MEMBER":2},"past_year_issue_authors":{},"past_year_pull_request_authors":{"dependabot[bot]":6,"r-ford":2},"maintainers":[{"login":"r-ford","count":35,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/r-ford"},{"login":"brian-rose","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/brian-rose"},{"login":"erogluorhan","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/erogluorhan"}],"active_maintainers":[{"login":"r-ford","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/r-ford"}]},"events":{"total":{"DeleteEvent":1,"PullRequestEvent":5,"IssuesEvent":2,"WatchEvent":2,"IssueCommentEvent":6,"PushEvent":87,"CreateEvent":1},"last_year":{"DeleteEvent":1,"PullRequestEvent":3,"IssueCommentEvent":3,"PushEvent":84,"CreateEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/nightly-build.yaml","sha":null,"kind":"manifest","created_at":"2023-10-18T20:28:22.524Z","updated_at":"2023-10-18T20:28:22.524Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/.github/workflows/nightly-build.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/publish-book.yaml","sha":null,"kind":"manifest","created_at":"2023-10-18T20:28:22.562Z","updated_at":"2023-10-18T20:28:22.562Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/.github/workflows/publish-book.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/trigger-book-build.yaml","sha":null,"kind":"manifest","created_at":"2023-10-18T20:28:22.589Z","updated_at":"2023-10-18T20:28:22.589Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/.github/workflows/trigger-book-build.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/trigger-delete-preview.yaml","sha":null,"kind":"manifest","created_at":"2023-10-18T20:28:22.625Z","updated_at":"2023-10-18T20:28:22.625Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/.github/workflows/trigger-delete-preview.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/trigger-link-check.yaml","sha":null,"kind":"manifest","created_at":"2023-10-18T20:28:22.683Z","updated_at":"2023-10-18T20:28:22.683Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/.github/workflows/trigger-link-check.yaml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/trigger-preview.yaml","sha":null,"kind":"manifest","created_at":"2023-10-18T20:28:22.716Z","updated_at":"2023-10-18T20:28:22.716Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/.github/workflows/trigger-preview.yaml","dependencies":[]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2023-11-28T17:29:57.853Z","updated_at":"2023-11-28T17:29:57.853Z","repository_link":"https://github.com/ProjectPythia/cmip6-cookbook/blob/main/environment.yml","dependencies":[{"id":14781074445,"package_name":"act-atmos","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074448,"package_name":"cartopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074449,"package_name":"cftime","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074450,"package_name":"dask","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074451,"package_name":"dask-gateway","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074452,"package_name":"esgf-pyclient","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074453,"package_name":"fsspec","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074454,"package_name":"gcsfs","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074455,"package_name":"globus-compute-endpoint","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074456,"package_name":"globus-compute-sdk","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074457,"package_name":"holoviews","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074458,"package_name":"hvplot","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074459,"package_name":"intake","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074460,"package_name":"intake-esm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074461,"package_name":"jupyter-book","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074462,"package_name":"jupyter_server","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074463,"package_name":"jupyterlab","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074464,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074465,"package_name":"nc-time-axis","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074466,"package_name":"numba","ecosystem":"conda","requirements":"\u003e=0.58.0","direct":true,"kind":"runtime","optional":false},{"id":14781074467,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074468,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074469,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074470,"package_name":"python","ecosystem":"conda","requirements":"\u003c3.12","direct":true,"kind":"runtime","optional":false},{"id":14781074471,"package_name":"seaborn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074472,"package_name":"tqdm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074473,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074474,"package_name":"xesmf","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":14781074475,"package_name":"xhistogram","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]}],"score":5.123963979403259,"created_at":"2025-01-20T12:59:36.794Z","updated_at":"2026-04-08T13:30:19.657Z","avatar_url":"https://github.com/ProjectPythia.png","language":"Jupyter Notebook","category":"Sustainable Development","sub_category":"Education","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# CMIP6 Cookbook\n\n\u003cimg src=\"notebooks/images/cmip6-logo.webp\" width=500 alt=\"CMIP6 logo\"\u003e\u003c/img\u003e\n\n[![nightly-build](https://github.com/ProjectPythia/cmip6-cookbook/actions/workflows/nightly-build.yaml/badge.svg)](https://github.com/ProjectPythia/cmip6-cookbook/actions/workflows/nightly-build.yaml)\n[![Binder](https://binder.projectpythia.org/badge_logo.svg)](https://binder.projectpythia.org/v2/gh/ProjectPythia/cmip6-cookbook.git/main)\n[![DOI](https://zenodo.org/badge/507993770.svg)](https://zenodo.org/badge/latestdoi/507993770)\n\nThis Project Pythia Cookbook covers examples of analysis of Google Cloud CMIP6 data using Pangeo tools.\n\n## Motivation\n\nFrom the [CMIP6 website](https://esgf-node.llnl.gov/projects/cmip6/):\n\n\u003e The simulation data produced by models under previous phases of CMIP have been used in thousands of research papers ... and the multi-model results provide some perspective on errors and uncertainty in model simulations. This information has proved invaluable in preparing high profile reports assessing our understanding of climate and climate change (e.g., the IPCC Assessment Reports).\n\nWith such a large amount of model output produced, moving the data around is inefficient. In this collection of notebooks, you will learn how to access cloud-optimized CMIP6 datasets, in addition to a few examples of using that data to analyze some aspects of climate change.\n\n## Authors\n\n[Ryan Abernathey](https://github.com/rabernat), [Henri Drake](https://github.com/hdrake), [Robert Ford](https://github.com/r-ford), [Max Grover](https://github.com/mgrover1)\n\n### Contributors\n\n\u003ca href=\"https://github.com/ProjectPythia/cmip6-cookbook/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=ProjectPythia/cmip6-cookbook\" /\u003e\n\u003c/a\u003e\n\n## Structure\n\n### Foundations\n\nThis section includes three variations of accessing CMIP6 data from cloud storage.\n\n### Example workflows\n\nThere are currently four examples of using this data to \n- Estimate equilibrium climate sensitivity (ECS)\n- Plot global mean surface temperature under two different [Shared Socioeconomic Pathways](https://unece.org/fileadmin/DAM/energy/se/pdfs/CSE/PATHWAYS/2019/ws_Consult_14_15.May.2019/supp_doc/SSP2_Overview.pdf)\n- Plot changes in precipitation intensity under the SSP585 scenario\n- Calculate changes in ocean heat uptake after regridding with xESMF\n\n## Running the Notebooks\nYou can either run the notebook using [Binder](https://binder.projectpythia.org) or on your local machine.\n\n### Running on Binder\n\nThe simplest way to interact with a Jupyter Notebook is through\n[Binder](https://binder.projectpythia.org), which enables the execution of a\n[Jupyter Book](https://jupyterbook.org) in the cloud. The details of how this works are not\nimportant for now. All you need to know is how to launch a Pythia\nCookbooks chapter via Binder. Simply navigate your mouse to\nthe top right corner of the book chapter you are viewing and click\non the rocket ship icon, (see figure below), and be sure to select\n“launch Binder”. After a moment you should be presented with a\nnotebook that you can interact with. I.e. you’ll be able to execute\nand even change the example programs. You’ll see that the code cells\nhave no output at first, until you execute them by pressing\n{kbd}`Shift`\\+{kbd}`Enter`. Complete details on how to interact with\na live Jupyter notebook are described in [Getting Started with\nJupyter](https://foundations.projectpythia.org/foundations/getting-started-jupyter).\n\n### Running on Your Own Machine\nIf you are interested in running this material locally on your computer, you will need to follow this workflow:\n\n1. Clone the `https://github.com/ProjectPythia/cmip6-cookbook` repository:\n\n   ```bash\n    git clone https://github.com/ProjectPythia/cmip6-cookbook.git\n    ```  \n1. Move into the `cmip6-cookbook` directory\n    ```bash\n    cd cmip6-cookbook\n    ```  \n1. Create and activate your conda environment from the `environment.yml` file\n    ```bash\n    conda env create -f environment.yml\n    conda activate cmip6-cookbook-dev\n    ```  \n1.  Move into the `notebooks` directory and start up Jupyterlab\n    ```bash\n    cd notebooks/\n    jupyter lab\n    ```\n\nAt this point, you can interact with the notebooks! Make sure to check out the [\"Getting Started with Jupyter\"](https://foundations.projectpythia.org/foundations/getting-started-jupyter) content from the [Pythia Foundations](https://foundations.projectpythia.org) material if you are new to Jupyter or need a refresher.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["climate"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/308106","html_url":"https://ost.ecosyste.ms/projects/308106"}