{"id":352191,"name":"ClimKern","description":"This kernels refer to datasets containing the radiative sensitivities of TOA (or surface) radiation to changes in fields such as temperature, specific humidity, and surface albedo.","url":"https://github.com/tyfolino/climkern","last_synced_at":"2026-04-21T10:30:13.522Z","repository":{"id":173447992,"uuid":"588323813","full_name":"tyfolino/climkern","owner":"tyfolino","description":"Python package for easily computing climate feedbacks using radiative kernels.","archived":false,"fork":false,"pushed_at":"2025-06-30T21:00:56.000Z","size":186,"stargazers_count":26,"open_issues_count":7,"forks_count":12,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2026-03-18T05:27:09.819Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tyfolino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-12T21:15:20.000Z","updated_at":"2025-12-20T16:42:10.000Z","dependencies_parsed_at":"2023-12-06T22:28:08.545Z","dependency_job_id":"741aacb9-84ba-47e1-8b5e-05474185376a","html_url":"https://github.com/tyfolino/climkern","commit_stats":null,"previous_names":["tyfolino/climkern"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/tyfolino/climkern","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyfolino","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32002361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"tyfolino","name":"Ty Janoski","uuid":"31661758","kind":"user","description":"Ph.D. student in the Department of Earth and Environmental Sciences of Columbia University. Mainly interested in Arctic amplification in climate models.","email":"","website":"tylerjanoski.com","location":"Columbia University, NY","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/31661758?u=49cde5ff506fc01efd9e56b444aacdb2498f545a\u0026v=4","repositories_count":1,"last_synced_at":"2023-06-07T21:34:12.988Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/tyfolino","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-06-07T21:34:13.002Z","updated_at":"2023-06-07T21:34:13.002Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyfolino","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyfolino/repositories"},"packages":[{"id":8627667,"name":"climkern","ecosystem":"pypi","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/tyfolino/climkern","keywords_array":[],"namespace":null,"versions_count":6,"first_release_published_at":"2023-12-07T21:03:10.000Z","latest_release_published_at":"2024-08-09T18:53:04.000Z","latest_release_number":"1.1.2","last_synced_at":"2026-04-18T15:47:06.451Z","created_at":"2023-12-07T21:16:49.806Z","updated_at":"2026-04-18T15:47:06.451Z","registry_url":"https://pypi.org/project/climkern/","install_command":"pip install climkern --index-url https://pypi.org/simple","documentation_url":"https://climkern.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"climkern","project_status":null},"repo_metadata":{"id":173447992,"uuid":"588323813","full_name":"tyfolino/climkern","owner":"tyfolino","description":"Python package for easily computing climate feedbacks using radiative kernels.","archived":false,"fork":false,"pushed_at":"2024-08-09T17:14:14.000Z","size":125,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2024-08-09T20:55:34.059Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tyfolino.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}},"created_at":"2023-01-12T21:15:20.000Z","updated_at":"2024-08-09T17:10:55.000Z","dependencies_parsed_at":"2023-12-06T22:28:08.545Z","dependency_job_id":"741aacb9-84ba-47e1-8b5e-05474185376a","html_url":"https://github.com/tyfolino/climkern","commit_stats":null,"previous_names":["tyfolino/climkern"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyfolino","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":214726761,"owners_count":15775912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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_record":{"login":"tyfolino","name":"Ty Janoski","uuid":"31661758","kind":"user","description":"Ph.D. student in the Department of Earth and Environmental Sciences of Columbia University. Mainly interested in Arctic amplification in climate models.","email":"","website":"tylerjanoski.com","location":"Columbia University, NY","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/31661758?u=49cde5ff506fc01efd9e56b444aacdb2498f545a\u0026v=4","repositories_count":1,"last_synced_at":"2023-06-07T21:34:12.988Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/tyfolino","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-06-07T21:34:13.002Z","updated_at":"2023-06-07T21:34:13.002Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyfolino","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tyfolino/repositories"},"tags":[{"name":"v1.1.2","sha":"85dbf19f7127b90c29b5279b96ab565adbe4127b","kind":"commit","published_at":"2024-08-08T18:11:46.000Z","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/v1.1.2","html_url":"https://github.com/tyfolino/climkern/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"ed2e4e1cc0bffdb7a0acb595a2022c3f998a8f2a","kind":"commit","published_at":"2024-04-20T20:17:01.000Z","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/v1.1.1","html_url":"https://github.com/tyfolino/climkern/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"5b9d4221b707afd15bb8729a74a8ac0076a954a0","kind":"commit","published_at":"2024-04-06T18:16:31.000Z","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/v1.1.0","html_url":"https://github.com/tyfolino/climkern/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.1.0/manifests"},{"name":"v1.0.1","sha":"835af0c84f90687fe753615a2ba04ff4686a1e0c","kind":"commit","published_at":"2023-12-18T18:13:09.000Z","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/v1.0.1","html_url":"https://github.com/tyfolino/climkern/releases/tag/v1.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.0.1/manifests"},{"name":"v1.0.0","sha":"57ac5f26be2fb3e66017e85e35322dd780dbe9f6","kind":"commit","published_at":"2023-12-07T20:51:39.000Z","download_url":"https://codeload.github.com/tyfolino/climkern/tar.gz/v1.0.0","html_url":"https://github.com/tyfolino/climkern/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/tags/v1.0.0/manifests"}]},"repo_metadata_updated_at":"2024-08-09T21:24:25.596Z","dependent_packages_count":0,"downloads":121,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":67.07678914585166,"dependent_packages_count":10.141135697755281,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":38.60896242180347},"purl":"pkg:pypi/climkern","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/climkern","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/climkern","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/climkern/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/climkern/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/climkern/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/climkern/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/climkern/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/climkern/codemeta","maintainers":[{"uuid":"tyfolino","login":"tyfolino","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/tyfolino/","role":null,"created_at":"2023-12-18T18:16:42.733Z","updated_at":"2023-12-18T18:16:42.733Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/tyfolino/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":844153,"maintainers_count":360677,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":10948534,"full_name":"tyfolino/climkern","default_branch":"master","total_commits":135,"total_committers":7,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":19.285714285714285,"dds":0.051851851851851816,"past_year_total_commits":8,"past_year_total_committers":4,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":2.0,"past_year_dds":0.5,"last_synced_at":"2026-04-19T09:46:52.382Z","last_synced_commit":"86941ee5fd2da014a2e388bf9655542e10ec1097","created_at":"2025-09-05T13:19:51.072Z","updated_at":"2026-04-19T09:46:47.766Z","committers":[{"name":"Ty Janoski","email":"janoski@ldeo.columbia.edu","login":"tyfolino","count":128},{"name":"Olivia","email":"olli0106@Olivias-Air.lan","login":null,"count":2},{"name":"kaitlyn ✩","email":"118031472+kaitlynwen","login":"kaitlynwen","count":1},{"name":"imitevski","email":"im2527@columbia.edu","login":"imitevski","count":1},{"name":"Olivia","email":"olli0106@Mac.lan","login":null,"count":1},{"name":"Ivan Mitevski","email":"im7908@tiger3.princeton.edu","login":null,"count":1},{"name":"Ivan Mitevski","email":"im2527@pliny.ldeo.columbia.edu","login":null,"count":1}],"past_year_committers":[{"name":"Ty Janoski","email":"tyfolino@gmail.com","login":"tyfolino","count":4},{"name":"Olivia","email":"olli0106@Olivias-Air.lan","login":null,"count":2},{"name":"Olivia","email":"olli0106@Mac.lan","login":null,"count":1},{"name":"Ivan Mitevski","email":"im7908@tiger3.princeton.edu","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-20T00:00:09.037Z","repositories_count":6214616,"commits_count":900275412,"contributors_count":34915673,"owners_count":1143512,"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":"tyfolino/climkern","html_url":"https://github.com/tyfolino/climkern","last_synced_at":"2026-03-02T19:17:35.697Z","status":"active","issues_count":14,"pull_requests_count":28,"avg_time_to_close_issue":2169974.25,"avg_time_to_close_pull_request":3416.4,"issues_closed_count":8,"pull_requests_closed_count":25,"pull_request_authors_count":5,"issue_authors_count":8,"avg_comments_per_issue":0.7857142857142857,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":24,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":5,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":3796127.0,"past_year_avg_time_to_close_pull_request":34459.5,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2025-08-29T12:46:34.703Z","updated_at":"2026-03-02T19:17:35.697Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyfolino%2Fclimkern/issues","issue_labels_count":{"enhancement":4,"bug":4,"documentation":2,"help wanted":1,"good first issue":1,"maintenance":1},"pull_request_labels_count":{"documentation":3,"enhancement":1,"bug":1},"issue_author_associations_count":{"OWNER":6,"NONE":5,"COLLABORATOR":2,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"OWNER":24,"NONE":3,"COLLABORATOR":1},"issue_authors":{"tyfolino":6,"imitevski":2,"claresinger":1,"kls2177":1,"brian-rose":1,"kaitlynwen":1,"aurora-bf":1,"olinke95":1},"pull_request_authors":{"tyfolino":24,"kkawaguc":1,"olinke95":1,"imitevski":1,"kaitlynwen":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-20T00:00:09.428Z","repositories_count":14338000,"issues_count":34433006,"pull_requests_count":112728871,"authors_count":11239494,"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":{"bug":1,"enhancement":1,"help wanted":1},"past_year_pull_request_labels_count":{"documentation":1},"past_year_issue_author_associations_count":{"NONE":3,"COLLABORATOR":1},"past_year_pull_request_author_associations_count":{"NONE":2,"COLLABORATOR":1,"OWNER":1},"past_year_issue_authors":{"brian-rose":1,"claresinger":1,"imitevski":1,"olinke95":1},"past_year_pull_request_authors":{"imitevski":1,"kkawaguc":1,"olinke95":1,"tyfolino":1},"maintainers":[{"login":"tyfolino","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tyfolino"},{"login":"imitevski","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/imitevski"}],"active_maintainers":[{"login":"imitevski","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/imitevski"},{"login":"tyfolino","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tyfolino"}]},"events":{"total":{"ReleaseEvent":1,"DeleteEvent":5,"PullRequestEvent":13,"ForkEvent":2,"IssuesEvent":11,"WatchEvent":12,"IssueCommentEvent":9,"PushEvent":10,"PullRequestReviewEvent":1,"CreateEvent":7},"last_year":{"DeleteEvent":1,"PullRequestEvent":6,"ForkEvent":2,"IssuesEvent":7,"WatchEvent":6,"IssueCommentEvent":8,"PushEvent":4,"PullRequestReviewEvent":1,"CreateEvent":3}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-10-11T18:29:26.875Z","updated_at":"2023-10-11T18:29:26.875Z","repository_link":"https://github.com/tyfolino/climkern/blob/dev/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-10-11T18:29:27.408Z","updated_at":"2023-10-11T18:29:27.408Z","repository_link":"https://github.com/tyfolino/climkern/blob/dev/setup.py","dependencies":[]}],"score":10.24643875525505,"created_at":"2026-04-19T09:47:06.552Z","updated_at":"2026-04-21T10:30:13.580Z","avatar_url":"https://github.com/tyfolino.png","language":"Python","category":"Climate Change","sub_category":"Earth and Climate Modeling","monthly_downloads":121,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# ClimKern: a Python package for calculating radiative feedbacks\n\n[![DOI](https://zenodo.org/badge/588323813.svg)](https://doi.org/10.5281/zenodo.10291284)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Overview\n\nThe radiative kernel technique outlined in [Soden \u0026 Held (2006)](https://journals.ametsoc.org/view/journals/clim/19/14/jcli3799.1.xml) and [Soden et al. (2008)](https://journals.ametsoc.org/view/journals/clim/21/14/2007jcli2110.1.xml) is commonly used to calculate climate feedbacks. The \"kernels\" refer to datasets containing the radiative sensitivities of TOA (or surface) radiation to changes in fields such as temperature, specific humidity, and surface albedo; they are typically computed using offline radiative transfer calculations.\n\nClimKern\n* standardizes the assumptions used in producing radiative feedbacks using kernels\n* simplifies the calculations by giving users access to functions tailored for climate model and reanalysis output\n* provides access to a repository of **11 different radiative kernels** to quantify interkernel spread\n\nThe below information is meant to be a quickstart guide, but all functions and capabilities can be found at ClimKern's [documentation site](https://tyfolino.github.io/climkern/).\n\n## Installation\n\nClimKern is built on the Xarray architecture and requires several other packages for\nregridding and climate model output compatibility. The easiest method is to create a\nnew conda environment using [conda](https://conda.io/projects/conda/en/latest/user-guide/install/index.html) or [mamba](https://mamba-framework.readthedocs.io/en/latest/installation_guide.html):\n\n`conda create -n ck_env python=3.11 esmpy -c conda-forge`\n\nA conda environment is necessary because [ESMPy](https://earthsystemmodeling.org/esmpy/), which is required for regridding kernels, is unavailable via `pip`.\n\nNext, activate the new environment:\n\n`conda activate ck_env`\n\nFinally, install ClimKern with [pip](https://pip.pypa.io/en/stable/#):\n\n`pip install climkern`\n\nOnce installed, ClimKern requires kernels found on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.10223376). These kernels (and tutorial data) are stored separately because of PyPI size limitations. You can download the kernels easily using the download script included in the package:  \n\n`python -m climkern download`\n\nNote: The kernels \u0026 tutorial data are approximately 5 GB.\n\n\u003e **IMPORTANT:** SSL Certificate Errors  \n\u003e It is possible to get an SSL certificate error when trying to run the download script. You may try updating your certificate authorities with `pip install --upgrade certifi`.  \n\u003e  \n\u003e If that does not work, you can manually download the `data.zip` file from Zenodo and unzip it in your ClimKern package directory.\n\n\n\u003ci\u003eOptional\u003c/i\u003e:\n\nYou can test your installation via pytest.\n\n```\npip install pytest\npytest -v --pyargs climkern\n```\n\nAll three tests should pass.\n\n## Basic tutorial\n### Temperature, water vapor, and surface albedo feedbacks\n\nThis brief tutorial will cover the basics of using ClimKern. Please check the [documentation](https://tyfolino.github.io/climkern/) for a more complete list of available functions. We start by importing ClimKern and accessing our tutorial data:\n```python\nimport climkern as ck\n\nctrl, pert = ck.tutorial_data(\"ctrl\"), ck.tutorial_data(\"pert\")\n```\n\nThese datasets have all the necessary variables for computing feedbacks. Let's start with temperature feedbacks.\n```python\nLR, Planck = ck.calc_T_feedbacks(\n    ctrl.T, ctrl.TS, ctrl.PS, pert.T, pert.TS, pert.PS, pert.TROP_P, kern=\"GFDL\"\n)\n```\nTo produce succinct output, let's use ClimKern's spatial average function. Additionally, we will normalize the feedbacks by global average surface temperature change to convert from Wm\u003csup\u003e-2\u003c/sup\u003e, the output of ClimKern functions, to the more commonly used units of Wm\u003csup\u003e-2\u003c/sup\u003eK\u003csup\u003e-1\u003c/sup\u003e.\n```python\n# compute global average surface temperature change\ndTS_glob_avg = ck.spat_avg(pert.TS - ctrl.TS)\n\n# normalize temperature feedbacks by temperature change and take\n# the annual average\nprint(\"The global average lapse rate feedback is {val:.2f} W/m^2/K.\".format(\n    val=(ck.spat_avg(LR)/dTS_glob_avg).mean()))\nprint(\"The global average Planck feedback is {val:.2f} W/m^2/K.\".format(\n    val=(ck.spat_avg(Planck)/dTS_glob_avg).mean()))\n```\nExpected result with the GFDL kernel:\n\u003e `The global average lapse rate feedback is -0.41 W/m^2/K.`\n\u003e \n\u003e `The global average Planck feedback is -3.12 W/m^2/K.`\n\nThe water vapor and surface albedo feedbacks are calculated similarly:\n```python\nq_lw,q_sw = ck.calc_q_feedbacks(ctrl.Q,ctrl.T,ctrl.PS,\n                                pert.Q,pert.PS,pert.TROP_P,\n                                kern=\"GFDL\",method=1)\nalb = ck.calc_alb_feedback(ctrl.FSUS,ctrl.FSDS,\n                           pert.FSUS,pert.FSDS,\n                           kern=\"GFDL\")\n\nprint(\"The global average water vapor feedback is {val:.2f} W/m^2/K.\".format(\n    val=(ck.spat_avg(q_lw+q_sw)/dTS_glob_avg).mean()))\nprint(\"The global average surface albedo feedback is {val:.2f} W/m^2/K.\"\n      .format(\n    val=(ck.spat_avg(alb)/dTS_glob_avg).mean()))\n```\nExpected result:\n\u003e`The global average water vapor feedback is 1.44 W/m^2/K.`\n\u003e\n\u003e`The global average surface albedo feedback is 0.38 W/m^2/K.`\n\n### Cloud feedbacks\nThe cloud feedbacks, calculated using [Soden et al. (2008)](https://journals.ametsoc.org/view/journals/clim/21/14/2007jcli2110.1.xml) adjustment method, require all-sky and clear-sky versions of other feedbacks and the instantaneous radiative forcing.\n\nFirst, we need the longwave and shortwave cloud radiative effects, which ClimKern can calculate.\n```python\ndCRE_LW = ck.calc_dCRE_LW(ctrl.FLNT,pert.FLNT,ctrl.FLNTC,pert.FLNTC)\ndCRE_SW = ck.calc_dCRE_SW(ctrl.FSNT,pert.FSNT,ctrl.FSNTC,pert.FSNTC)\n```\nLet's also read in the tutorial erf.\n```python\nerf = ck.tutorial_data('ERF')\n```\nNext, we need the clear-sky versions of the temperature, water vapor, and surface albedo feedbacks.\n```python\n#_cs means clear-sky\nLR_cs,Planck_cs = ck.calc_T_feedbacks(ctrl.T,ctrl.TS,ctrl.PS,\n                                pert.T,pert.TS,pert.PS,pert.TROP_P,\n                                kern=\"GFDL\",sky=\"clear-sky\")\nq_lw_cs,q_sw_cs = ck.calc_q_feedbacks(ctrl.Q,ctrl.T,ctrl.PS,\n                                pert.Q,pert.PS,pert.TROP_P,\n                                kern=\"GFDL\",method=1,sky=\"clear-sky\")\nalb_cs = ck.calc_alb_feedback(ctrl.FSUS,ctrl.FSDS,\n                           pert.FSUS,pert.FSDS,\n                           kern=\"GFDL\",sky=\"clear-sky\")\n```\nAt last, we can calculate the longwave and shortwave cloud feedbacks.\n```python\ncld_lw = ck.calc_cloud_LW(LR + Planck,LR_cs+Planck_cs,q_lw,q_lw_cs,dCRE_LW,\n                          erf.erf_lwas,erf.erf_lwcs)\ncld_sw = ck.calc_cloud_SW(alb,alb_cs,q_sw,q_sw_cs,dCRE_SW,erf.erf_swas,\n                          erf.erf_swcs)\n\nprint(\"The global average SW cloud feedback is {val:.2f} W/m^2/K.\".format(\n    val=(ck.spat_avg(cld_sw)/dTS_glob_avg).mean()))\nprint(\"The global average LW cloud feedback is {val:.2f} W/m^2/K.\".format(\n    val=(ck.spat_avg(cld_lw)/dTS_glob_avg).mean()))\n```\nExpected result:\n\u003e`The global average SW cloud feedback is 0.38 W/m^2/K.`\n\u003e\n\u003e`The global average LW cloud feedback is 0.03 W/m^2/K.`\n\n## Troubleshooting\n\nIf you are having issues downloading dependencies with `pip`, you can also try adding them to your conda environment with `conda`, i.e.:\n\n`conda install xesmf -c conda-forge`\n\nIf you are having trouble downloading the  kernels and tutorial data using the package's download function, you can also download the data directly from the [Zenodo repository](https://zenodo.org/doi/10.5281/zenodo.10223376) and put it in the climkern/data directory located wherever your conda/mamba environments are stored.\n\n## Other features \u0026 coming soon\nClimKern has several other useful features:\n- Four different methods for calculating water vapor feedbacks.\n- The ability to calculate the \"relative humidity\" version of all feedbacks following [Held \u0026 Shell (2012)](https://journals.ametsoc.org/view/journals/clim/25/8/jcli-d-11-00721.1.xml) and [Zelinka et al. (2020)](https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2019GL085782).\n- Functions to calculate stratospheric temperature and water vapor feedbacks.\n\nWe are continuously updating the package. Please check out the [GitHub issues page](https://github.com/tyfolino/climkern/issues) for this repository for plans for new features.\n\n## Want to help? Get involved!\n\nWe deeply appreciate contributions from other scientists and programmers and are happy to attribute credit accordingly. If you wish to contribute, please read our [CONTRIBUTING.md](.github/CONTRIBUTING.md) for guidelines on how to get started.\n\n**tl;dr**:\n- Work from the `dev` branch, **not** `main`\n- Submit a pull request when ready.\n\n## 📖 How to Cite ClimKern\nIf you use ClimKern in your work, please cite our paper:\n\nJanoski, T. P., Mitevski, I., Kramer, R. J., Previdi, M., \u0026 Polvani, L. M. (2025). ClimKern v1.2: a new Python package and kernel repository for calculating radiative feedbacks. *Geoscientific Model Development*, *18*(10), 3065–3079. https://doi.org/10.5194/gmd-18-3065-2025\n\n\u003cdetails\u003e\n\u003csummary\u003eBibTeX\u003c/summary\u003e\n\n```bibtex\n@article{janoski2025climkern,\n  AUTHOR = {Janoski, T. P. and Mitevski, I. and Kramer, R. J. and Previdi, M. and Polvani, L. M.},\n  TITLE = {ClimKern v1.2: a new Python package and kernel repository for calculating radiative feedbacks},\n  JOURNAL = {Geoscientific Model Development},\n  VOLUME = {18},\n  YEAR = {2025},\n  NUMBER = {10},\n  PAGES = {3065--3079},\n  URL = {https://gmd.copernicus.org/articles/18/3065/2025/},\n  DOI = {10.5194/gmd-18-3065-2025}\n}\n```\n\n\u003c/details\u003e\n\nIf you are citing the software itself (e.g., for reproducibility), use the citation metadata included in our [`CITATION.cff`](CITATION.cff) file. GitHub also provides downloadable citation formats via the \"Cite this repository\" button on the right-hand sidebar.\n\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.10291284","https://doi.org/10.5194/gmd-18-3065-2025"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/352191","html_url":"https://ost.ecosyste.ms/projects/352191"}