{"id":352719,"name":"CHEEREIO","description":"The CHEmistry and Emissions REanalysis Interface with Observations is a set of Python and shell scripts that support data assimilation and emissions inversions for arbitrary runs of the GEOS-Chem chemical transport model via an ensemble approach.","url":"https://github.com/drewpendergrass/cheereio","last_synced_at":"2026-05-01T01:00:36.259Z","repository":{"id":38329121,"uuid":"400506254","full_name":"drewpendergrass/CHEEREIO","owner":"drewpendergrass","description":"This repository contains the code for CHEEREIO, which supports data assimilation and emissions inversions for arbitrary runs of the GEOS-Chem chemical transport model via an ensemble approach (i.e. without the model adjoint).","archived":false,"fork":false,"pushed_at":"2026-03-21T17:42:02.000Z","size":81683,"stargazers_count":19,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-24T11:49:20.909Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cheere.io","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/drewpendergrass.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"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":"2021-08-27T12:45:24.000Z","updated_at":"2026-04-24T11:40:32.000Z","dependencies_parsed_at":"2025-10-02T23:36:22.220Z","dependency_job_id":null,"html_url":"https://github.com/drewpendergrass/CHEEREIO","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/drewpendergrass/CHEEREIO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drewpendergrass","download_url":"https://codeload.github.com/drewpendergrass/CHEEREIO/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32481554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: 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":"drewpendergrass","name":"Drew","uuid":"67594247","kind":"user","description":"","email":"","website":"http://drewpendergrass.com/","location":"Cambridge, MA","twitter":null,"company":"Harvard University","icon_url":"https://avatars.githubusercontent.com/u/67594247?u=7eca3d14cb922332ef1e86bbce1f47245e3d27d7\u0026v=4","repositories_count":1,"last_synced_at":"2023-03-06T18:34:38.670Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/drewpendergrass","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-16T20:05:38.499Z","updated_at":"2023-03-06T18:34:38.690Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drewpendergrass","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drewpendergrass/repositories"},"packages":[],"commits":{"id":11725980,"full_name":"drewpendergrass/CHEEREIO","default_branch":"master","total_commits":1692,"total_committers":17,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":99.52941176470588,"dds":0.20626477541371158,"past_year_total_commits":82,"past_year_total_committers":4,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":20.5,"past_year_dds":0.04878048780487809,"last_synced_at":"2026-04-24T11:46:29.208Z","last_synced_commit":"79ce2aeb45707fd976540008dba5b2ed68fc1678","created_at":"2026-04-24T11:45:49.003Z","updated_at":"2026-04-24T11:46:17.081Z","committers":[{"name":"Drew Pendergrass","email":"pendergrassdrew@gmail.com","login":"drewpendergrass","count":1343},{"name":"drewpendergrass","email":"pendergassdrew@gmail.com","login":null,"count":328},{"name":"Drew Pendergrass","email":"drewpendergrass@holy2a24108.rc.fas.harvard.edu","login":null,"count":3},{"name":"Drew Pendergrass","email":"andrew.pendergrass@duke.edu","login":null,"count":2},{"name":"Drew Pendergrass","email":"drewpendergrass@boslogin03.rc.fas.harvard.edu","login":null,"count":2},{"name":"Drew Pendergrass","email":"drewpendergrass@holyjacob04.rc.fas.harvard.edu","login":null,"count":2},{"name":"Drew Pendergrass","email":"drewpendergrass@holylogin01.rc.fas.harvard.edu","login":null,"count":2},{"name":"Andrew Pendergrass","email":"ap851@dcc-core-48.rc.duke.edu","login":null,"count":1},{"name":"Andrew Pendergrass","email":"ap851@dcc-core-55.rc.duke.edu","login":null,"count":1},{"name":"Drew Pendergrass","email":"drewpendergrass@boslogin04.rc.fas.harvard.edu","login":null,"count":1},{"name":"Drew Pendergrass","email":"drewpendergrass@holy7c15202.rc.fas.harvard.edu","login":null,"count":1},{"name":"Drew Pendergrass","email":"drewpendergrass@holyjacob06.rc.fas.harvard.edu","login":null,"count":1},{"name":"Drew Pendergrass","email":"drewpendergrass@holylogin04.rc.fas.harvard.edu","login":null,"count":1},{"name":"Sina Voshtani","email":"sinavo@nia-login02.scinet.local","login":null,"count":1},{"name":"Bob Yantosca","email":"yantosca@seas.harvard.edu","login":"yantosca","count":1},{"name":"Sina Voshtani","email":"sina.voshtani@utoronto.ca","login":"Sinavo","count":1},{"name":"Yunxiao Tang","email":"tangyx2000@gmail.com","login":"YunxiaoT","count":1}],"past_year_committers":[{"name":"Drew Pendergrass","email":"pendergrassdrew@gmail.com","login":"drewpendergrass","count":78},{"name":"Drew Pendergrass","email":"andrew.pendergrass@duke.edu","login":null,"count":2},{"name":"Andrew Pendergrass","email":"ap851@dcc-core-55.rc.duke.edu","login":null,"count":1},{"name":"Andrew Pendergrass","email":"ap851@dcc-core-48.rc.duke.edu","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.988Z","repositories_count":6223993,"commits_count":900099721,"contributors_count":34903390,"owners_count":1147650,"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":"drewpendergrass/CHEEREIO","html_url":"https://github.com/drewpendergrass/CHEEREIO","last_synced_at":"2026-04-24T11:45:49.846Z","status":"active","issues_count":5,"pull_requests_count":4,"avg_time_to_close_issue":1105504.25,"avg_time_to_close_pull_request":12846.333333333334,"issues_closed_count":4,"pull_requests_closed_count":3,"pull_request_authors_count":3,"issue_authors_count":3,"avg_comments_per_issue":1.4,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":3,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":8.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"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":1,"created_at":"2025-08-30T14:58:06.743Z","updated_at":"2026-04-24T11:45:49.846Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewpendergrass%2FCHEEREIO/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":5},"pull_request_author_associations_count":{"OWNER":2,"NONE":1,"CONTRIBUTOR":1},"issue_authors":{"HuiruZhong":3,"YunxiaoT":1,"zion0210":1},"pull_request_authors":{"drewpendergrass":2,"YunxiaoT":1,"Sinavo":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.984Z","repositories_count":14451946,"issues_count":34157711,"pull_requests_count":112015877,"authors_count":11249958,"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":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"OWNER":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"drewpendergrass":1},"maintainers":[{"login":"drewpendergrass","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/drewpendergrass"}],"active_maintainers":[{"login":"drewpendergrass","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/drewpendergrass"}]},"events":{"total":{"ReleaseEvent":1,"DeleteEvent":1,"PullRequestEvent":2,"ForkEvent":2,"IssuesEvent":2,"WatchEvent":5,"IssueCommentEvent":4,"PushEvent":95,"CreateEvent":4},"last_year":{"ReleaseEvent":1,"WatchEvent":3,"PushEvent":71,"CreateEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-12-28T15:44:31.649Z","updated_at":"2023-12-28T15:44:31.649Z","repository_link":"https://github.com/drewpendergrass/CHEEREIO/blob/main/docs/requirements.txt","dependencies":[{"id":15321026511,"package_name":"sphinx","ecosystem":"pypi","requirements":"==3.5.4","direct":true,"kind":"runtime","optional":false},{"id":15321026512,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"==0.5.2","direct":true,"kind":"runtime","optional":false},{"id":15321026513,"package_name":"sphinxcontrib-bibtex","ecosystem":"pypi","requirements":"==2.2.0","direct":true,"kind":"runtime","optional":false},{"id":15321026514,"package_name":"recommonmark","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15321026515,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.16","direct":true,"kind":"runtime","optional":false},{"id":15321026516,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.0.3","direct":true,"kind":"runtime","optional":false}]}],"score":5.777652323222656,"created_at":"2026-04-24T11:45:49.667Z","updated_at":"2026-05-01T01:00:36.299Z","avatar_url":"https://github.com/drewpendergrass.png","language":"Python","category":"Emissions","sub_category":"Emission Observation and Modeling","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![Documentation Status](https://readthedocs.org/projects/cheereio/badge/?version=latest)](https://cheereio.readthedocs.io/en/latest/?badge=latest)\n\n[![DOI](https://zenodo.org/badge/400506254.svg)](https://zenodo.org/badge/latestdoi/400506254)\n\n# CHEEREIO\n\nThe CHEmistry and Emissions REanalysis Interface with Observations (CHEEREIO) is a set of Python and shell scripts that support data assimilation and emissions inversions for arbitrary runs of the GEOS-Chem chemical transport model via an ensemble approach (i.e. without the model adjoint). CHEEREIO follows four design principles:\n\n1. **Easy to customize**: Assimilate anything, in any GEOS-Chem configuration or simulation.\n2. **Easy to maintain**: Science automatically aligned with latest model version.\n3. **Easy to deploy**: One configuration file controls installation and settings\n4. **Easy to link observations**: Object-oriented observation operator implementation allows the user to rapidly add new kinds of data with minimal programming required.\n\n## Installation\n\nFollow the guide on the [documentation](https://cheereio.readthedocs.io/en/latest/Installing-CHEEREIO.html) for installation. When you clone this repository, we recommend that you check out the latest release of CHEEREIO rather than using the main branch; this ensures reproducibility and minimizes bugs.\n\n## Citation\n\nIf you use CHEEREIO in your work, please cite our model description paper: Pendergrass, D. C., Jacob, D. J., Nesser, H., Varon, D. J., Sulprizio, M., Miyazaki, K., \u0026 Bowman, K. W. (2023). CHEEREIO 1.0: A versatile and user-friendly ensemble-based chemical data assimilation and emissions inversion platform for the GEOS-Chem chemical transport model. Geoscientific Model Development, 16(16), 4793–4810. https://doi.org/10.5194/gmd-16-4793-2023\n\n## Documentation\nDetailed documentation is available on [ReadTheDocs](https://cheereio.readthedocs.io), including installation instructions. If you encounter any problems not covered by the documentation, please open an [issue](https://github.com/drewpendergrass/CHEEREIO/issues) on GitHub. CHEEREIO has an official website: [cheere.io](https://cheere.io/)\n\n## About CHEEREIO\nThe CHEmistry and Emissions REanalysis Interface with Observations (CHEEREIO) is a package that wraps the [GEOS-Chem](https://github.com/geoschem) chemical transport model source code. After a simple modification of a single configuration file (`ens_config.json`), CHEEREIO automatically produces and compiles a template GEOS-Chem run directory, which it then copies into an ensemble. Each ensemble member comes with a randomized set of gridded emissions scaling factors for species specified by the user. As the ensemble of runs progresses, CHEEREIO will periodically pause the ensemble, compare with a set of observations (i.e. satellite, surface, and/or aircraft), and update relevant emissions scaling factors and chemical concentrations to best match reality given the uncertainties of measurements and model. CHEEREIO calculates this update via the 4D Asynchronous Localized Ensemble Transform Kalman Filter (4D-LETKF) as described in [Hunt. et. al., \\[2007\\]](https://doi.org/10.1016/j.physd.2006.11.008). Because this approach is model agnostic (specifically, it does not rely on the adjoint), CHEEREIO supports emissions updates and chemical concentration corrections for arbitrary configurations of the GEOS-Chem model. However, the current CHEEREIO codebase assumes that GEOS-Chem code is version 13.0.0 or later (version 14 is supported)!\n\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5194/gmd-16-4793-2023","https://doi.org/10.1016/j.physd.2006.11.008"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/352719","html_url":"https://ost.ecosyste.ms/projects/352719"}