{"id":315482,"name":"pyTCR","description":"A physics-based model developed in Python to estimate rainfall induced by tropical cyclones.","url":"https://github.com/levuvietphong/pytcr","last_synced_at":"2026-04-08T02:30:27.900Z","repository":{"id":255782186,"uuid":"853475995","full_name":"levuvietphong/pyTCR","owner":"levuvietphong","description":"A tropical cyclone rainfall model for python","archived":false,"fork":false,"pushed_at":"2025-06-23T15:17:44.000Z","size":182645,"stargazers_count":24,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-03-22T06:33:51.993Z","etag":null,"topics":["climate","cyclone","modeling","rainfall"],"latest_commit_sha":null,"homepage":"https://pytcr.readthedocs.io/en/latest/","language":"Jupyter Notebook","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/levuvietphong.png","metadata":{"files":{"readme":"README-pypi.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2024-09-06T18:24:48.000Z","updated_at":"2026-03-10T13:03:25.000Z","dependencies_parsed_at":"2025-02-28T19:31:00.643Z","dependency_job_id":"1d4f702c-02a7-4bf2-b359-dbb8515d79fd","html_url":"https://github.com/levuvietphong/pyTCR","commit_stats":null,"previous_names":["levuvietphong/pytcr"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/levuvietphong/pyTCR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2FpyTCR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2FpyTCR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2FpyTCR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2FpyTCR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levuvietphong","download_url":"https://codeload.github.com/levuvietphong/pyTCR/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2FpyTCR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30865211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-23T18:35:51.002Z","status":"ssl_error","status_checked_at":"2026-03-23T18:35:42.451Z","response_time":59,"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":"levuvietphong","name":"Phong Le","uuid":"1987216","kind":"user","description":"Ecohydrologist","email":"","website":null,"location":null,"twitter":null,"company":"University of Illinois","icon_url":"https://avatars.githubusercontent.com/u/1987216?v=4","repositories_count":3,"last_synced_at":"2023-03-25T14:01:14.817Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/levuvietphong","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-04T00:05:38.874Z","updated_at":"2023-03-25T14:01:14.852Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levuvietphong","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levuvietphong/repositories"},"packages":[],"commits":{"id":9805662,"full_name":"levuvietphong/pytcr","default_branch":"main","total_commits":102,"total_committers":5,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":20.4,"dds":0.06862745098039214,"past_year_total_commits":52,"past_year_total_committers":4,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":13.0,"past_year_dds":0.11538461538461542,"last_synced_at":"2026-03-21T18:05:37.314Z","last_synced_commit":"8e8a02c5be35e574dc37142161c6af91f3ec67d0","created_at":"2025-05-01T00:19:29.504Z","updated_at":"2026-03-21T18:05:37.230Z","committers":[{"name":"Phong Le","email":"levuvietphong@gmail.com","login":"levuvietphong","count":95},{"name":"JunGu (顾俊)","email":"kyuinkoo@gmail.com","login":"1JunGu","count":3},{"name":"Jack Atkinson","email":"109271713+jatkinson1000","login":"jatkinson1000","count":2},{"name":"Fanghe Zhao","email":"fzhao97@gmail.com","login":"fzhao70","count":1},{"name":"Ethan Coon","email":"etcoon@gmail.com","login":"ecoon","count":1}],"past_year_committers":[{"name":"Phong Le","email":"levuvietphong@gmail.com","login":"levuvietphong","count":46},{"name":"JunGu (顾俊)","email":"kyuinkoo@gmail.com","login":"1JunGu","count":3},{"name":"Jack Atkinson","email":"109271713+jatkinson1000","login":"jatkinson1000","count":2},{"name":"Fanghe Zhao","email":"fzhao97@gmail.com","login":"fzhao70","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2Fpytcr/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-23T00:00:38.409Z","repositories_count":6202190,"commits_count":935527330,"contributors_count":36112539,"owners_count":1144254,"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":"levuvietphong/pytcr","html_url":"https://github.com/levuvietphong/pytcr","last_synced_at":"2025-08-31T17:28:17.241Z","status":null,"issues_count":11,"pull_requests_count":24,"avg_time_to_close_issue":262115.5,"avg_time_to_close_pull_request":90063.66666666667,"issues_closed_count":10,"pull_requests_closed_count":24,"pull_request_authors_count":5,"issue_authors_count":4,"avg_comments_per_issue":0.5454545454545454,"avg_comments_per_pull_request":0.25,"merged_pull_requests_count":24,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":11,"past_year_pull_requests_count":24,"past_year_avg_time_to_close_issue":262115.5,"past_year_avg_time_to_close_pull_request":90063.66666666667,"past_year_issues_closed_count":10,"past_year_pull_requests_closed_count":24,"past_year_pull_request_authors_count":5,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":0.5454545454545454,"past_year_avg_comments_per_pull_request":0.25,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":24,"created_at":"2025-05-01T00:19:31.141Z","updated_at":"2025-09-02T12:36:29.471Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2Fpytcr","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/levuvietphong%2Fpytcr/issues","issue_labels_count":{"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"OWNER":5,"CONTRIBUTOR":5,"NONE":2},"pull_request_author_associations_count":{"OWNER":19,"CONTRIBUTOR":8,"NONE":4},"issue_authors":{"levuvietphong":5,"ecoon":3,"1JunGu":3,"dorchard":1},"pull_request_authors":{"levuvietphong":19,"jatkinson1000":4,"ecoon":4,"1JunGu":2,"fzhao70":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-21T00:00:06.750Z","repositories_count":13848013,"issues_count":34741766,"pull_requests_count":113433341,"authors_count":11208075,"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":{"CONTRIBUTOR":2,"NONE":2,"OWNER":2},"past_year_pull_request_author_associations_count":{"OWNER":6,"CONTRIBUTOR":5,"NONE":3},"past_year_issue_authors":{"1JunGu":3,"levuvietphong":2,"dorchard":1},"past_year_pull_request_authors":{"levuvietphong":6,"jatkinson1000":4,"1JunGu":2,"fzhao70":2},"maintainers":[{"login":"levuvietphong","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/levuvietphong"}],"active_maintainers":[{"login":"levuvietphong","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/levuvietphong"}]},"events":{"total":{"ReleaseEvent":3,"DeleteEvent":6,"MemberEvent":1,"PullRequestEvent":23,"ForkEvent":4,"IssuesEvent":18,"WatchEvent":18,"IssueCommentEvent":9,"PushEvent":136,"CreateEvent":12},"last_year":{"ReleaseEvent":2,"DeleteEvent":3,"PullRequestEvent":13,"ForkEvent":3,"IssuesEvent":10,"WatchEvent":11,"IssueCommentEvent":7,"PushEvent":87,"CreateEvent":7}},"keywords":["climate","cyclone","modeling","rainfall"],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-10-16T17:57:11.808Z","updated_at":"2024-10-16T17:57:11.808Z","repository_link":"https://github.com/levuvietphong/pyTCR/blob/main/pyproject.toml","dependencies":[{"id":20212406915,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212406916,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212406917,"package_name":"colorcet","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212407149,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212407150,"package_name":"cartopy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212407151,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212407152,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212407153,"package_name":"netcdf4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20212407311,"package_name":"pyproj","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/CI.yml","sha":null,"kind":"manifest","created_at":"2025-02-28T19:30:51.688Z","updated_at":"2025-02-28T19:30:51.688Z","repository_link":"https://github.com/levuvietphong/pyTCR/blob/main/.github/workflows/CI.yml","dependencies":[{"id":22068889907,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":22068889908,"package_name":"mamba-org/setup-micromamba","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"conda","filepath":".binder/environment.yml","sha":null,"kind":"manifest","created_at":"2025-02-28T19:30:54.151Z","updated_at":"2025-02-28T19:30:54.151Z","repository_link":"https://github.com/levuvietphong/pyTCR/blob/main/.binder/environment.yml","dependencies":[{"id":22068890643,"package_name":"cartopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890763,"package_name":"colorcet","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890900,"package_name":"geopandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890901,"package_name":"ipykernel","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890902,"package_name":"jupyter","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890903,"package_name":"libtiff","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890904,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890905,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890906,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068890907,"package_name":"pyproj","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891053,"package_name":"python","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891054,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891055,"package_name":"shapely","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891056,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2025-02-28T19:30:56.555Z","updated_at":"2025-02-28T19:30:56.555Z","repository_link":"https://github.com/levuvietphong/pyTCR/blob/main/environment.yml","dependencies":[{"id":22068891118,"package_name":"cartopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891121,"package_name":"colorcet","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891123,"package_name":"geopandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891125,"package_name":"ipykernel","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891127,"package_name":"jupyter","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891129,"package_name":"libtiff","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891131,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891133,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891135,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891137,"package_name":"pyproj","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891139,"package_name":"python","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891141,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891143,"package_name":"shapely","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":22068891145,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]}],"score":4.787491742782046,"created_at":"2025-05-01T00:19:16.434Z","updated_at":"2026-04-08T02:30:27.940Z","avatar_url":"https://github.com/levuvietphong.png","language":"Jupyter Notebook","category":"Climate Change","sub_category":"Natural Hazard and Storms","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# PyTCR: A tropical cyclone rainfall model for python\n\n![](https://img.shields.io/github/license/levuvietphong/pyTCR)\n![](https://img.shields.io/github/issues/levuvietphong/pyTCR)\n![](https://img.shields.io/github/forks/levuvietphong/pyTCR)\n![](https://img.shields.io/github/last-commit/levuvietphong/pyTCR)\n![](https://img.shields.io/github/v/release/levuvietphong/pyTCR)\n![](https://img.shields.io/github/actions/workflow/status/levuvietphong/pyTCR/CI.yml)\n\npyTCR is a physics-based model developed in python to estimate rainfall induced by tropical cyclones (TCs). It is largely based on the TCR model described by [Zhu *et al.*, 2013](https://agupubs.onlinelibrary.wiley.com/doi/full/10.1002/2013GL058284) and [Lu *et al.*, 2018](https://journals.ametsoc.org/view/journals/atsc/75/7/jas-d-17-0264.1.xml). PyTCR simulates convective TC rainfall by correlating the precipitation rate with the total upward velocity within the TC vortex. It integrates seamlessly with outputs from [a tropical cyclone downscaling model](https://github.com/linjonathan/tropical_cyclone_risk) (see [Lin *et al.,* 2023](https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2023MS003686)) to generate detailed spatial-temporal rainfall patterns that align with hurricane tracks.\n\n## Installation\n\n`pyTCR` can be installed from `PyPI` using:\n\n```sh\npip install pyTCR\n```\n\n## Sources\nThe source code is available on [GitHub](https://github.com/levuvietphong/pyTCR) under the [MIT Licence](https://github.com/levuvietphong/pyTCR/blob/main/LICENSE).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/315482","html_url":"https://ost.ecosyste.ms/projects/315482"}