{"id":46109,"name":"SUEWS","description":"Surface Urban Energy and Water Balance Scheme.","url":"https://github.com/UMEP-dev/SUEWS","last_synced_at":"2026-04-20T08:30:59.263Z","repository":{"id":38289850,"uuid":"323748807","full_name":"UMEP-dev/SUEWS","owner":"UMEP-dev","description":"Surface Urban Energy and Water Balance Scheme","archived":false,"fork":true,"pushed_at":"2026-03-14T02:54:07.000Z","size":1234791,"stargazers_count":19,"open_issues_count":81,"forks_count":11,"subscribers_count":10,"default_branch":"master","last_synced_at":"2026-03-14T07:12:11.557Z","etag":null,"topics":["land-surface-model","urban-analytics","urban-climate-model"],"latest_commit_sha":null,"homepage":"https://suews.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Urban-Meteorology-Reading/SUEWS","license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UMEP-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2020-12-22T22:44:06.000Z","updated_at":"2026-03-13T18:47:25.000Z","dependencies_parsed_at":"2023-09-21T19:59:03.095Z","dependency_job_id":null,"html_url":"https://github.com/UMEP-dev/SUEWS","commit_stats":{"total_commits":4505,"total_committers":32,"mean_commits":140.78125,"dds":"0.11809100998890121","last_synced_commit":"eade2e12a5d6867170c56cba5f6b915f6f502732"},"previous_names":[],"tags_count":157,"template":false,"template_full_name":null,"purl":"pkg:github/UMEP-dev/SUEWS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UMEP-dev","download_url":"https://codeload.github.com/UMEP-dev/SUEWS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30710226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-19T05:29:31.190Z","status":"ssl_error","status_checked_at":"2026-03-19T05:28:25.821Z","response_time":57,"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":"UMEP-dev","name":"UMEP-dev","uuid":"62675320","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/62675320?v=4","repositories_count":5,"last_synced_at":"2023-03-06T16:59:29.327Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/UMEP-dev","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-16T18:53:57.609Z","updated_at":"2023-03-06T16:59:29.333Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UMEP-dev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UMEP-dev/repositories"},"packages":[],"commits":{"id":1358756,"full_name":"UMEP-dev/SUEWS","default_branch":"master","total_commits":7260,"total_committers":34,"total_bot_commits":216,"total_bot_committers":4,"mean_commits":213.52941176470588,"dds":0.21707988980716253,"past_year_total_commits":2264,"past_year_total_committers":8,"past_year_total_bot_commits":204,"past_year_total_bot_committers":2,"past_year_mean_commits":283.0,"past_year_dds":0.4368374558303887,"last_synced_at":"2025-10-29T07:03:49.129Z","last_synced_commit":"cd2f0ec090a4d1e06faf66bf6a7033dc230675b7","created_at":"2023-09-13T08:47:26.677Z","updated_at":"2025-10-29T07:00:53.955Z","committers":[{"name":"Ting Sun","email":"sunting.05@gmail.com","login":"sunt05","count":5684},{"name":"Silvia Rognone","email":"rognone.silvia@gmail.com","login":"dayantur","count":443},{"name":"matthew","email":"m.paskin@pgr.reading.ac.uk","login":"MatthewPaskin","count":358},{"name":"github-actions[bot]","email":"github-actions[bot]","login":"github-actions[bot]","count":201},{"name":"Järvi, Leena J","email":"leena.jarvi@helsinki.fi","login":"ljarvi","count":93},{"name":"Lewis Blunn","email":"mbcx9lb3@googlemail.com","login":"LewisB7","count":77},{"name":"Hamidreza Omidvar","email":"omidvar.hamidreza@gmail.com","login":"hamidrezaomidvar","count":76},{"name":"lyy","email":"lrd19@mails.tsinghua.edu.cn","login":null,"count":50},{"name":"HelenWard","email":"h.c.ward@reading.ac.uk","login":null,"count":42},{"name":"natalieth","email":"ntheeuwes@gmail.com","login":null,"count":42},{"name":"Fredrik Lindberg","email":"fredrikl@gvc.gu.se","login":"biglimp","count":35},{"name":"Vitor Lavor","email":"vitor_lavor@hotmail.com","login":"vitorlavor","count":28},{"name":"zhenkunl","email":"lizhenk@yeah.net","login":"zhenkunl","count":27},{"name":"Sue Grimmond","email":"20229342+suegrimmond","login":"suegrimmond","count":15},{"name":"unknown","email":"xlinfr@NATGVC066.gukonto.gu.se","login":null,"count":14},{"name":"unknown","email":"helrda@WLL-CZV9NX1.ad.nerc.ac.uk","login":null,"count":13},{"name":"yiqing1021","email":"dg829684@student.reading.ac.uk","login":"yiqing1021","count":12},{"name":"azure-pipelines[bot]","email":"azure-pipelines[bot]","login":"azure-pipelines[bot]","count":10},{"name":"unknown","email":"xg907770@SWWS101140.rdg.ac.uk","login":null,"count":10},{"name":"黄文娟","email":"huangwenjuan@huangwenjuandeMacBook-Pro.local","login":null,"count":3},{"name":"Shiho Onomura","email":"shiho.onomura@gu.se","login":null,"count":3},{"name":"claude[bot]","email":"209825114+claude[bot]","login":"claude[bot]","count":3},{"name":"Jonas Kittner","email":"jonas.kittner@rub.de","login":"jkittner","count":3},{"name":"HarroJongen","email":"59564863+HarroJongen","login":"HarroJongen","count":3},{"name":"Xiaoxiong Xie","email":"33037107+XiaoxiongXie","login":"XiaoxiongXie","count":2},{"name":"Fredrik Lindberg","email":"xlinfr@hpc.magic.gvc.gu.se","login":null,"count":2},{"name":"pjay-PC\\pjay","email":"pjay163@163.com","login":"pjaysuews","count":2},{"name":"dependabot-preview[bot]","email":"27856297+dependabot-preview[bot]","login":"dependabot-preview[bot]","count":2},{"name":"IzzyWillow","email":"i.w.capel-timms@pgr.reading.ac.uk","login":"IzzyWillow","count":2},{"name":"Csilla V Gal","email":"csilla.v.g@gmail.com","login":null,"count":1},{"name":"Matthew Paskin","email":"gn835658@racc2-login-3.act.rdg.ac.uk","login":null,"count":1},{"name":"Ting Sun","email":"sunt05@webvpn-30.rdg.ac.uk","login":null,"count":1},{"name":"Mat Lipson","email":"m.lipson@unsw.edu.au","login":"matlipson","count":1},{"name":"David Stansby","email":"dstansby@gmail.com","login":"dstansby","count":1}],"past_year_committers":[{"name":"Ting Sun","email":"sunting.05@gmail.com","login":"sunt05","count":1275},{"name":"Silvia Rognone","email":"rognone.silvia@gmail.com","login":"dayantur","count":443},{"name":"matthew","email":"m.paskin@pgr.reading.ac.uk","login":"MatthewPaskin","count":310},{"name":"github-actions[bot]","email":"github-actions[bot]","login":"github-actions[bot]","count":201},{"name":"Vitor Lavor","email":"vitor_lavor@hotmail.com","login":"vitorlavor","count":28},{"name":"claude[bot]","email":"209825114+claude[bot]","login":"claude[bot]","count":3},{"name":"HarroJongen","email":"59564863+HarroJongen","login":"HarroJongen","count":3},{"name":"Matthew Paskin","email":"gn835658@racc2-login-3.act.rdg.ac.uk","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.766Z","repositories_count":6089584,"commits_count":922516563,"contributors_count":35983866,"owners_count":1109633,"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":"UMEP-dev/SUEWS","html_url":"https://github.com/UMEP-dev/SUEWS","last_synced_at":"2025-10-29T16:05:23.813Z","status":null,"issues_count":297,"pull_requests_count":369,"avg_time_to_close_issue":22237553.016483516,"avg_time_to_close_pull_request":129344.30847457628,"issues_closed_count":182,"pull_requests_closed_count":295,"pull_request_authors_count":9,"issue_authors_count":39,"avg_comments_per_issue":1.4747474747474747,"avg_comments_per_pull_request":1.0867208672086721,"merged_pull_requests_count":247,"bot_issues_count":9,"bot_pull_requests_count":17,"past_year_issues_count":155,"past_year_pull_requests_count":299,"past_year_avg_time_to_close_issue":820948.8987341772,"past_year_avg_time_to_close_pull_request":98514.63555555555,"past_year_issues_closed_count":79,"past_year_pull_requests_closed_count":225,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":16,"past_year_avg_comments_per_issue":0.8516129032258064,"past_year_avg_comments_per_pull_request":1.2608695652173914,"past_year_bot_issues_count":9,"past_year_bot_pull_requests_count":17,"past_year_merged_pull_requests_count":179,"created_at":"2023-09-13T08:48:03.296Z","updated_at":"2025-10-29T16:05:23.813Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/UMEP-dev%2FSUEWS/issues","issue_labels_count":{"enhancement":30,"1-feature":28,"WIP":28,"documentation":24,"4-ready":19,"P0":18,"1-bug":16,"2-infra:data-model":14,"3-P1":13,"bug":12,"P1":11,"2-doc:user":11,"SPARTACUS":10,"3-P0":10,"2-infra:input":10,"SuPy":10,"build-failure":9,"3-P2":9,"4-in-progress":8,"P2":7,"snow":6,"needs-test":6,"help wanted":5,"dev":5,"pydantic":4,"2-P2":4,"Anthropogenic Emissions":4,"P3":4,"CO2":4,"post-processing":4,"DTS":3,"EHC":3,"windows-latest":3,"macos-13":3,"OHM":3,"no-issue-activity":3,"STEBBS":3,"1-question":3,"pre-processing":3,"2-infra:packaging":3,"ESTM":3,"good-first-issue":3,"P4":3,"table converter":2,"2-module:rslprof":2,"2-infra:utility":2,"3-ready":2,"infra:logging":2,"4-needs-science":2,"2-doc:dev":2,"2-infra:test":2,"water balance":2,"user question":2,"DailyState":2,"💬 comment":2,"BEERS":2,"RSL":2,"3-in-progress":2,"ubuntu-latest":2,"release-checklist":1,"surface resistance":1,"2-infra:ci":1,"help-wanted":1,"LAI":1,"module:snow":1,"housecleaning":1,"infra:data-model":1,"TMY/EPW":1,"4-needs-deps":1,"2-doc:api":1,"irrigation":1,"WRF-SUEWS":1,"2-meta:governance":1,"2-infra:code-refactor":1,"FAI":1,"NARP":1,"benchmark":1,"config-builder":1,"CI":1,"doc:dev":1,"macos-latest":1},"pull_request_labels_count":{"1-bug":2,"4-needs-science":2,"2-infra:data-model":2,"bug":1,"3-P0":1,"2-infra:utility":1,"module:rslprof":1,"STEBBS":1,"2-module:spartacus":1,"4-ready":1,"2-doc:user":1},"issue_author_associations_count":{"NONE":297},"pull_request_author_associations_count":{"NONE":369},"issue_authors":{"sunt05":102,"MatthewPaskin":52,"ghost":27,"dayantur":21,"github-actions[bot]":9,"biglimp":8,"megstretton":6,"LllC-mmd":5,"Kangarooboxer":4,"Empanag":4,"utterances-bot":4,"suegrimmond":4,"bartpannemans":4,"XiaoxiongXie":3,"phemiobe":3,"becqui00":3,"jessikalonn":3,"vitorlavor":3,"ljarvi":3,"RussellGl":3,"CsillaVG":3,"putupass":2,"emd01":2,"tyhzxc":2,"LewisB7":2,"guscarthd":2,"DimitrisTsi":1,"yiqing1021":1,"yyssqq":1,"feigenwinter":1,"lgzdbf":1,"030Skript":1,"dstansby":1,"KostasPolitakos":1,"sebschub":1,"Bernd-Vogelgesang":1,"gusbacos":1,"pfung-maker":1,"markhallows1":1},"pull_request_authors":{"sunt05":231,"MatthewPaskin":63,"dayantur":30,"github-actions[bot]":17,"ljarvi":15,"vitorlavor":6,"LllC-mmd":4,"yiqing1021":2,"HarroJongen":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.463Z","repositories_count":11243475,"issues_count":34945556,"pull_requests_count":113355275,"authors_count":11042044,"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":{"1-feature":26,"WIP":17,"4-ready":15,"1-bug":15,"2-infra:data-model":12,"3-P1":12,"P0":11,"3-P0":10,"2-infra:input":10,"2-doc:user":9,"build-failure":9,"4-in-progress":8,"bug":8,"3-P2":6,"documentation":5,"enhancement":5,"2-P2":4,"pydantic":4,"dev":3,"good-first-issue":3,"STEBBS":3,"P1":3,"2-infra:packaging":3,"macos-13":3,"windows-latest":3,"SPARTACUS":2,"4-needs-science":2,"infra:logging":2,"2-module:rslprof":2,"2-infra:utility":2,"3-ready":2,"DailyState":2,"OHM":2,"pre-processing":2,"ubuntu-latest":2,"1-question":2,"3-in-progress":2,"2-doc:dev":2,"SuPy":2,"needs-test":2,"2-infra:test":2,"water balance":1,"help-wanted":1,"2-infra:ci":1,"module:snow":1,"infra:data-model":1,"help wanted":1,"post-processing":1,"4-needs-deps":1,"2-doc:api":1,"2-meta:governance":1,"2-infra:code-refactor":1,"FAI":1,"macos-latest":1,"RSL":1,"doc:dev":1,"CI":1,"config-builder":1},"past_year_pull_request_labels_count":{"1-bug":2,"4-needs-science":2,"2-infra:data-model":2,"bug":1,"3-P0":1,"2-infra:utility":1,"module:rslprof":1,"STEBBS":1,"2-module:spartacus":1,"4-ready":1,"2-doc:user":1},"past_year_issue_author_associations_count":{"NONE":155},"past_year_pull_request_author_associations_count":{"NONE":299},"past_year_issue_authors":{"sunt05":53,"MatthewPaskin":47,"dayantur":20,"github-actions[bot]":9,"biglimp":7,"bartpannemans":4,"vitorlavor":3,"megstretton":2,"suegrimmond":2,"XiaoxiongXie":2,"CsillaVG":1,"gusbacos":1,"jessikalonn":1,"lgzdbf":1,"markhallows1":1,"putupass":1},"past_year_pull_request_authors":{"sunt05":182,"MatthewPaskin":63,"dayantur":30,"github-actions[bot]":17,"vitorlavor":6,"HarroJongen":1},"maintainers":[],"active_maintainers":[]},"events":{"total":{"CreateEvent":283,"CommitCommentEvent":6,"ReleaseEvent":1,"IssuesEvent":259,"WatchEvent":3,"DeleteEvent":47,"IssueCommentEvent":470,"PushEvent":1559,"PullRequestReviewEvent":76,"PullRequestReviewCommentEvent":26,"PullRequestEvent":304,"ForkEvent":2},"last_year":{"CreateEvent":283,"CommitCommentEvent":6,"ReleaseEvent":1,"IssuesEvent":257,"WatchEvent":3,"DeleteEvent":47,"IssueCommentEvent":464,"PushEvent":1555,"PullRequestReviewEvent":76,"PullRequestReviewCommentEvent":26,"PullRequestEvent":304,"ForkEvent":2}},"keywords":["land-surface-model","urban-analytics","urban-climate-model"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/f-prettify.yml","sha":null,"kind":"manifest","created_at":"2023-01-21T22:17:36.135Z","updated_at":"2023-01-21T22:17:36.135Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/.github/workflows/f-prettify.yml","dependencies":[{"id":7084681116,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7084681117,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7084681118,"package_name":"elstudio/actions-js-build/commit","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/archive/build-SUEWS.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:58.244Z","updated_at":"2023-09-21T19:58:58.244Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/.github/workflows/archive/build-SUEWS.yml","dependencies":[{"id":13857066454,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857066455,"package_name":"pypa/cibuildwheel","ecosystem":"actions","requirements":"v2.9.0","direct":true,"kind":"composite","optional":false},{"id":13857066456,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857066457,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857066458,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1.5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/archive/clean-artifact.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:58.792Z","updated_at":"2023-09-21T19:58:58.792Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/.github/workflows/archive/clean-artifact.yml","dependencies":[{"id":13857067665,"package_name":"glassechidna/artifact-cleaner","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/archive/move.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:59.494Z","updated_at":"2023-09-21T19:58:59.494Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/.github/workflows/archive/move.yml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/archive/stale.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:59.775Z","updated_at":"2023-09-21T19:58:59.775Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/.github/workflows/archive/stale.yml","dependencies":[{"id":13857068649,"package_name":"actions/stale","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build-publish_to_pypi.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:00.031Z","updated_at":"2023-09-21T19:59:00.031Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/.github/workflows/build-publish_to_pypi.yml","dependencies":[{"id":13857068692,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857068693,"package_name":"pypa/cibuildwheel","ecosystem":"actions","requirements":"v2.9.0","direct":true,"kind":"composite","optional":false},{"id":13857068694,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857068695,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857068696,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1.5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"src/supy/pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:00.480Z","updated_at":"2023-09-21T19:59:00.480Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/src/supy/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"src/supy/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:00.909Z","updated_at":"2023-09-21T19:59:00.909Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/src/supy/requirements.txt","dependencies":[{"id":13857069729,"package_name":"build","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857069730,"package_name":"twine","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857069731,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857069732,"package_name":"auditwheel","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"src/supy/setup.py","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:01.668Z","updated_at":"2023-09-21T19:59:01.668Z","repository_link":"https://github.com/UMEP-dev/SUEWS/blob/master/src/supy/setup.py","dependencies":[{"id":13857070313,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003c","direct":true,"kind":"runtime","optional":false},{"id":13857070314,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070315,"package_name":"importlib_resources","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070316,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070317,"package_name":"chardet","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070318,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070319,"package_name":"f90wrap","ecosystem":"pypi","requirements":"==0.2.12","direct":true,"kind":"runtime","optional":false},{"id":13857070677,"package_name":"dask","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070678,"package_name":"f90nml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070679,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070680,"package_name":"atmosp","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070689,"package_name":"cdsapi","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070690,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070691,"package_name":"multiprocess","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070692,"package_name":"click","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070693,"package_name":"lmfit","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070694,"package_name":"numdifftools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070744,"package_name":"pvlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":13857070745,"package_name":"platypus-opt","ecosystem":"pypi","requirements":"==1.0.4","direct":true,"kind":"runtime","optional":false},{"id":13857070748,"package_name":"DRIVER_REQ","ecosystem":"pypi","requirements":",","direct":true,"kind":"runtime","optional":false}]}],"score":8.131530710604252,"created_at":"2023-09-13T08:45:14.449Z","updated_at":"2026-04-20T08:30:59.277Z","avatar_url":"https://github.com/UMEP-dev.png","language":"Python","category":"Climate Change","sub_category":"Earth and Climate Modeling","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# SUEWS\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5721639.svg)](https://doi.org/10.5281/zenodo.5721639)\n\nThis is a public repo for SUEWS source code and documentation.\n\n---\n\n\n\n## Documentation\n\n* Documentation site: \u003chttps://suews.readthedocs.io/\u003e\n\n* Documentation source: `docs` folder in this repo\n\n\n## Quick Start\n\nFor users who want to run SUEWS simulations:\n\n1. **Install from PyPI** (simplest):\n   ```bash\n   pip install supy\n   ```\n\n2. **Run a simulation**:\n   ```bash\n   suews-run /path/to/config.yml\n   ```\n\nFor developers, see the [Developer Note](#developer-note) section below.\n\n\n\n## Developer Note\n\n\u003e [!NOTE]\n\u003e **the following is deprecated and will be updated**\n\n### Development Environment\n\n#### Claude Code Integration\n\nFor enhanced development productivity, SUEWS includes integration with Claude Code in a containerised environment:\n\n* **Setup Guide**: See [`claude-dev/README.md`](claude-dev/README.md) for complete setup instructions\n* **Quick Start**:\n  - **Workspace Manager** (recommended): `./claude-dev/claude.sh start myproject`\n  - **Direct Setup**: `./claude-dev/setup-claude-dev.sh` from repository root\n* **Features**: Intelligent code assistance, automated testing, British academic standards, multi-workspace support\n* **Benefits**: Isolated environment, reproducible development, AI-powered debugging, parallel project development\n\n#### Traditional Development\n\nFor local development without containerisation, follow these steps:\n\n##### Prerequisites\n\n**Essential Tools**:\n* **Fortran Compiler**: [gfortran](https://gcc.gnu.org/wiki/GFortran) (≥ 9.3.0) or Intel ifort\n  - macOS: `brew install gcc`\n  - Ubuntu/Debian: `sudo apt-get install gfortran`\n  - Windows: Use WSL or MinGW-w64\n* **Version Control**: [git](https://git-scm.com/)\n* **Package Manager**: [mamba](https://mamba.readthedocs.io/en/latest/) (faster than conda)\n  ```bash\n  # Install mambaforge (if not already installed)\n  curl -L -O \"https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh\"\n  bash Miniforge3-$(uname)-$(uname -m).sh\n  ```\n\n**Recommended Tools**:\n* [VS Code](https://code.visualstudio.com/) with extensions:\n  - Modern Fortran\n  - Python\n  - GitHub Copilot (free for academic use)\n* [WSL](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (Windows users)\n\n##### Setup Steps\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/UMEP-dev/SUEWS.git\n   cd SUEWS\n   ```\n\n2. **Initialise submodules** (required for SPARTACUS dependency):\n   ```bash\n   git submodule init\n   git submodule update\n   ```\n   *Note: If permission denied, [configure SSH for GitHub](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh)*\n\n3. **Create development environment**:\n   ```bash\n   mamba env create -f env.yml\n   ```\n   This creates `suews-dev` environment with all required packages.\n\n4. **Activate environment**:\n   ```bash\n   mamba activate suews-dev\n   ```\n\n5. **Build SUEWS**:\n   ```bash\n   # Quick development build (recommended)\n   make dev\n\n   # Or full build with tests\n   make\n   ```\n\n6. **Verify installation**:\n   ```bash\n   pip show supy\n   suews-run --help\n   ```\n\n##### Development Workflow\n\n* **Build commands**:\n  ```bash\n  make dev          # Fast development build\n  make              # Full build with tests\n  make test         # Run test suite only\n  make clean        # Clean build artifacts\n  make wheel        # Build distribution wheels\n  make docs         # Build documentation\n  make livehtml     # Live documentation preview\n  ```\n\n* **Environment management**:\n  ```bash\n  make help         # Show all available commands\n  make deactivate   # Show deactivation command\n  ```\n\n* **Common issues**:\n  - **Build conflicts**: Run `make clean` before rebuilding\n  - **Import errors**: Ensure you're in the `suews-dev` environment\n  - **Permission errors on Windows**: Right-click project folder → Properties → Security → Edit → Everyone → Allow\n\n##### Project Structure\n\n```\nSUEWS/\n├── src/\n│   ├── suews/          # Fortran physics engine\n│   ├── supy/           # Python interface\n│   └── supy_driver/    # F2Py wrapper\n├── test/               # Test suite\n├── docs/               # Documentation source\n├── env.yml             # Development environment\n└── Makefile            # Build commands\n```\n\n\n## Contributing\n\n### Code Style and Formatting\n\nSUEWS maintains consistent code style through automated formatting:\n\n* **Coding Standards**: See [`CODING_GUIDELINES.md`](dev-ref/CODING_GUIDELINES.md) for detailed standards\n* **Automated Formatting**: The master branch is automatically formatted after merge\n* **Zero Friction**: Contributors can focus on functionality; formatting is handled by machines\n* **Tools Used**:\n  - Python: [`ruff`](https://docs.astral.sh/ruff/) (configuration in `.ruff.toml`)\n  - Fortran: [`fprettify`](https://github.com/pseewald/fprettify) (configuration in `.fprettify.rc`)\n\n**For Contributors**: Just write working code! Formatting will be applied automatically after merge.\n\n**For Local Development** (optional):\n```bash\nmake format  # Format code locally\nmake lint    # Check code style\n```\n\n\n### Debugging with GDB\n\nGDB is a generic debugging tool used along with gfortran.\nHere are some tips to debug SUEWS code:\n\n#### GDB on macOS\n\nRecent macOS (since High Sierra) introduces extra security procedures for system level operations that makes installation GDB more tedious than before.\nThe best practice, in TS's opinion, to avoid hacking your macOS, is to use Linux docker images with gfortran \u0026 gdb installations: e.g., [alpine-gfortran](https://github.com/cmplopes/alpine-gfortran)\n(otherwise, [this guide](https://dev.to/jasonelwood/setup-gdb-on-macos-in-2020-489k#generate-cert) might be useful for installation of GDB on macOS; also run `set startup-with-shell off` *inside GDB* before `run` the debuggng process)\n\nOnce the docker image is installed, simply run this from the SUEWS root folder for debugging:\n\n```bash\n docker run --rm -it -v $(pwd):/source sunt05/alpine-gfortran /bin/bash\n\n```\n which will mount the current `SUEWS` directory to docker's path `/source` and enter the interactive mode for debugging.\n\n\n#### debugging with GDB\n\n1. enable the debugging related flags in `Makefile` under `SUEWS-SourceCode` by removing the `#` after the equal sign `=`:\n\n```makefile\nFCNOOPT = -O0\nFFLAGS = -O3 $(STATIC) $(FCDEBUG) -Wall -Wtabs -fbounds-check -cpp \\\n\t\t\t\t\t-Wno-unused-dummy-argument -Wno-unused-variable\n```\n\n2. fully clean and recompile `SUEWS`:\n```\nmake clean; make\n```\n\n3. copy the recompiled `SUEWS` binary into your SUEWS testing folder (e.g., `Test/BaseRun/2019a`) and load it into GDB:\n\n```\ngdb SUEWS\n\nrun\n\n```\nthen you should have stack info printed out by GDB if any runtime error occurs.\n\nMore detailed GDB tutorial can be found [here](https://github.com/jackrosenthal/gdb-tutorial/blob/master/notes.pdf).\n\n\n\n### Questions\n\n* Please [raise issues](https://github.com/UMEP-dev/SUEWS/issues/new) for questions in the development so our progress can be well managed.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.5721639"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["land-surface-modeling","suews","wrf","urban-climate","climate-model","science-research","qgis","urban-planning"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/46109","html_url":"https://ost.ecosyste.ms/projects/46109"}