{"id":20628,"name":"epwshiftr","description":"Create future EnergyPlus Weather files using CMIP6 data.","url":"https://github.com/ideas-lab-nus/epwshiftr","last_synced_at":"2026-08-14T18:32:03.961Z","repository":{"id":39059339,"uuid":"228311544","full_name":"ideas-lab-nus/epwshiftr","owner":"ideas-lab-nus","description":"Create future EnergyPlus Weather files using CMIP6 data","archived":false,"fork":false,"pushed_at":"2026-07-29T13:45:16.000Z","size":4859,"stargazers_count":42,"open_issues_count":1,"forks_count":13,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-07-31T03:04:54.501Z","etag":null,"topics":["climate-change","cmip6","energyplus","epw","esgf"],"latest_commit_sha":null,"homepage":"https://ideas-lab-nus.github.io/epwshiftr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ideas-lab-nus.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","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":"2019-12-16T05:44:18.000Z","updated_at":"2026-07-29T13:44:36.000Z","dependencies_parsed_at":"2026-03-04T02:02:03.454Z","dependency_job_id":null,"html_url":"https://github.com/ideas-lab-nus/epwshiftr","commit_stats":{"total_commits":187,"total_committers":3,"mean_commits":"62.333333333333336","dds":"0.20855614973262027","last_synced_commit":"9151d3914d7b7978fbec3c59294333961a2b7e0e"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36493282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-10T02:00:05.122Z","response_time":58,"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":"ideas-lab-nus","name":"IDEAS-lab","uuid":"49540067","kind":"organization","description":"","email":"adrian.chong@nus.edu.sg","website":"https://ideaslab.io","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/49540067?v=4","repositories_count":5,"last_synced_at":"2023-03-08T00:36:52.335Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ideas-lab-nus","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T19:32:49.676Z","updated_at":"2023-03-08T00:36:52.354Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus/repositories"},"packages":[{"id":11733135,"name":"github.com/ideas-lab-nus/epwshiftr","ecosystem":"go","description":null,"homepage":null,"licenses":"other","normalized_licenses":["Other"],"repository_url":"https://github.com/ideas-lab-nus/epwshiftr","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2020-07-07T13:38:20.000Z","latest_release_published_at":"2024-03-12T14:44:05.000Z","latest_release_number":"v0.1.4","last_synced_at":"2026-08-12T17:50:51.505Z","created_at":"2025-06-05T11:14:36.514Z","updated_at":"2026-08-12T17:50:51.505Z","registry_url":"https://pkg.go.dev/github.com/ideas-lab-nus/epwshiftr","install_command":"go get github.com/ideas-lab-nus/epwshiftr","documentation_url":"https://pkg.go.dev/github.com/ideas-lab-nus/epwshiftr#section-documentation","metadata":{},"repo_metadata":{"id":39059339,"uuid":"228311544","full_name":"ideas-lab-nus/epwshiftr","owner":"ideas-lab-nus","description":"Create future EnergyPlus Weather files using CMIP6 data","archived":false,"fork":false,"pushed_at":"2026-07-29T13:45:16.000Z","size":4859,"stargazers_count":42,"open_issues_count":1,"forks_count":13,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-07-31T03:04:54.501Z","etag":null,"topics":["climate-change","cmip6","energyplus","epw","esgf"],"latest_commit_sha":null,"homepage":"https://ideas-lab-nus.github.io/epwshiftr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ideas-lab-nus.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","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":"2019-12-16T05:44:18.000Z","updated_at":"2026-07-29T13:44:36.000Z","dependencies_parsed_at":"2026-03-04T02:02:03.454Z","dependency_job_id":null,"html_url":"https://github.com/ideas-lab-nus/epwshiftr","commit_stats":{"total_commits":187,"total_committers":3,"mean_commits":"62.333333333333336","dds":"0.20855614973262027","last_synced_commit":"9151d3914d7b7978fbec3c59294333961a2b7e0e"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36493282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-10T02:00:05.122Z","response_time":58,"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_record":{"login":"ideas-lab-nus","name":"IDEAS-lab","uuid":"49540067","kind":"organization","description":"","email":"adrian.chong@nus.edu.sg","website":"https://ideaslab.io","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/49540067?v=4","repositories_count":5,"last_synced_at":"2023-03-08T00:36:52.335Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ideas-lab-nus","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T19:32:49.676Z","updated_at":"2023-03-08T00:36:52.354Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus/repositories"},"tags":[{"name":"v0.1.4","sha":"d9680b2c6164a34b5f77a947566a63926f001b52","kind":"commit","published_at":"2024-03-12T14:44:05.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.4","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr@v0.1.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.4/manifests"},{"name":"v0.1.3","sha":"f254a98bac48df16a0e61fb489e865d850afcee7","kind":"commit","published_at":"2021-05-26T04:17:28.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.3","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr@v0.1.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.3/manifests"},{"name":"v0.1.2","sha":"6b546e022a89685967a3fd088f1392b593803eef","kind":"commit","published_at":"2021-02-13T02:49:30.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.2","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr@v0.1.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"a8ffda75a4b507faaca9f8fc45d1838de6973622","kind":"commit","published_at":"2020-08-11T05:22:01.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.1","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr@v0.1.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"02c62c04d03383baeb76bd3c459e12fb4185db76","kind":"commit","published_at":"2020-07-07T13:38:20.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.0","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ideas-lab-nus/epwshiftr@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2026-08-10T16:20:35.883Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/ideas-lab-nus/epwshiftr","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/ideas-lab-nus/epwshiftr","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/ideas-lab-nus/epwshiftr","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/ideas-lab-nus/epwshiftr/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-02T04:00:33.320Z","issues_count":78,"pull_requests_count":78,"avg_time_to_close_issue":4959621.453125,"avg_time_to_close_pull_request":278826.7236842105,"issues_closed_count":64,"pull_requests_closed_count":76,"pull_request_authors_count":1,"issue_authors_count":10,"avg_comments_per_issue":0.24358974358974358,"avg_comments_per_pull_request":0.2948717948717949,"merged_pull_requests_count":71,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":29,"past_year_pull_requests_count":35,"past_year_avg_time_to_close_issue":14537.307692307691,"past_year_avg_time_to_close_pull_request":18082.470588235294,"past_year_issues_closed_count":26,"past_year_pull_requests_closed_count":34,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.13793103448275862,"past_year_avg_comments_per_pull_request":0.05714285714285714,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":30,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/issues","maintainers":[{"login":"hongyuanjia","count":142,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hongyuanjia"}],"active_maintainers":[{"login":"hongyuanjia","count":62,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hongyuanjia"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fideas-lab-nus%2Fepwshiftr/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fideas-lab-nus%2Fepwshiftr/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fideas-lab-nus%2Fepwshiftr/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fideas-lab-nus%2Fepwshiftr/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fideas-lab-nus%2Fepwshiftr/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fideas-lab-nus%2Fepwshiftr/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2263076,"maintainers_count":0,"namespaces_count":837425,"keywords_count":122443,"github":"golang","metadata":{"funded_packages_count":65362,"sync_missing_packages_cursor":{"timestamp":"2026-08-12T00:18:10.975284Z","path":"github.com/fhunleth/muontrap","version":"v0.2.1"},"rate_limit":1},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-08-12T12:33:12.528Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":431405,"name":"epwshiftr","ecosystem":"cran","description":"Create Future 'EnergyPlus' Weather Files using 'CMIP6' Data","homepage":"https://github.com/ideas-lab-nus/epwshiftr","licenses":"MIT + file LICENSE","normalized_licenses":["MIT"],"repository_url":"https://github.com/ideas-lab-nus/epwshiftr","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2020-07-07T16:00:00.000Z","latest_release_published_at":"2024-03-12T00:00:00.000Z","latest_release_number":"0.1.4","last_synced_at":"2026-08-12T17:34:10.194Z","created_at":"2022-04-06T21:33:46.468Z","updated_at":"2026-08-12T17:34:10.195Z","registry_url":"https://cran.r-project.org/package=epwshiftr","install_command":null,"documentation_url":"http://cran.r-project.org/web/packages/epwshiftr/epwshiftr.pdf","metadata":{},"repo_metadata":{"id":39059339,"uuid":"228311544","full_name":"ideas-lab-nus/epwshiftr","owner":"ideas-lab-nus","description":"Create future EnergyPlus Weather files using CMIP6 data","archived":false,"fork":false,"pushed_at":"2024-05-17T06:23:31.000Z","size":1921,"stargazers_count":30,"open_issues_count":11,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-29T22:31:10.678Z","etag":null,"topics":["climate-change","cmip6","energyplus","epw","esgf"],"latest_commit_sha":null,"homepage":"https://ideas-lab-nus.github.io/epwshiftr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ideas-lab-nus.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-16T05:44:18.000Z","updated_at":"2024-09-24T14:01:46.000Z","dependencies_parsed_at":"2024-03-17T06:03:29.311Z","dependency_job_id":"b40f742e-a5af-4078-889e-1e955a1b68a4","html_url":"https://github.com/ideas-lab-nus/epwshiftr","commit_stats":{"total_commits":187,"total_committers":3,"mean_commits":"62.333333333333336","dds":"0.20855614973262027","last_synced_commit":"9151d3914d7b7978fbec3c59294333961a2b7e0e"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222155708,"owners_count":16940393,"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":"ideas-lab-nus","name":"IDEAS-lab","uuid":"49540067","kind":"organization","description":"","email":"adrian.chong@nus.edu.sg","website":"https://ideaslab.io","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/49540067?v=4","repositories_count":5,"last_synced_at":"2023-03-08T00:36:52.335Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ideas-lab-nus","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T19:32:49.676Z","updated_at":"2023-03-08T00:36:52.354Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ideas-lab-nus/repositories"},"tags":[{"name":"v0.1.4","sha":"d9680b2c6164a34b5f77a947566a63926f001b52","kind":"commit","published_at":"2024-03-12T14:44:05.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.4","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.4/manifests"},{"name":"v0.1.3","sha":"f254a98bac48df16a0e61fb489e865d850afcee7","kind":"commit","published_at":"2021-05-26T04:17:28.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.3","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.3/manifests"},{"name":"v0.1.2","sha":"6b546e022a89685967a3fd088f1392b593803eef","kind":"commit","published_at":"2021-02-13T02:49:30.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.2","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.2/manifests"},{"name":"v0.1.1","sha":"a8ffda75a4b507faaca9f8fc45d1838de6973622","kind":"commit","published_at":"2020-08-11T05:22:01.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.1","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.1/manifests"},{"name":"v0.1.0","sha":"02c62c04d03383baeb76bd3c459e12fb4185db76","kind":"commit","published_at":"2020-07-07T13:38:20.000Z","download_url":"https://codeload.github.com/ideas-lab-nus/epwshiftr/tar.gz/v0.1.0","html_url":"https://github.com/ideas-lab-nus/epwshiftr/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-10-30T02:58:56.908Z","dependent_packages_count":0,"downloads":333,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":28.536058341586383,"dependent_repos_count":24.299990996668768,"dependent_packages_count":27.851805167912126,"stargazers_count":10.227784280183668,"forks_count":10.858017466462591,"docker_downloads_count":null,"average":20.354731250562708},"purl":"pkg:cran/epwshiftr","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/cran/epwshiftr","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/cran/epwshiftr","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/cran/epwshiftr/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T21:02:32.710Z","issues_count":49,"pull_requests_count":38,"avg_time_to_close_issue":8343100.078947368,"avg_time_to_close_pull_request":470832.36842105264,"issues_closed_count":38,"pull_requests_closed_count":38,"pull_request_authors_count":1,"issue_authors_count":10,"avg_comments_per_issue":0.32653061224489793,"avg_comments_per_pull_request":0.47368421052631576,"merged_pull_requests_count":37,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":4597929.0,"past_year_avg_time_to_close_pull_request":537335.6,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":5,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.6666666666666666,"past_year_avg_comments_per_pull_request":0.8,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/issues","maintainers":[{"login":"hongyuanjia","count":75,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hongyuanjia"}],"active_maintainers":[{"login":"hongyuanjia","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hongyuanjia"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/epwshiftr/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/epwshiftr/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/epwshiftr/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/epwshiftr/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/epwshiftr/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/epwshiftr/codemeta","maintainers":[{"uuid":"hongyuanjia@outlook.com","login":null,"name":"Hongyuan Jia","email":"hongyuanjia@outlook.com","url":null,"packages_count":2,"html_url":null,"role":null,"created_at":"2022-11-14T17:18:57.102Z","updated_at":"2022-11-14T17:18:57.102Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/maintainers/hongyuanjia@outlook.com/packages"}],"registry":{"name":"cran.r-project.org","url":"https://cran.r-project.org","ecosystem":"cran","default":true,"packages_count":29558,"maintainers_count":16763,"namespaces_count":0,"keywords_count":9266,"github":"r-project-org","metadata":{"icon_url":"https://cran.r-project.org/CRANlogo.png","funded_packages_count":595},"icon_url":"https://cran.r-project.org/CRANlogo.png","created_at":"2022-04-06T16:32:25.637Z","updated_at":"2026-08-12T05:05:18.790Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/namespaces"}}],"commits":{"id":722631,"full_name":"ideas-lab-nus/epwshiftr","default_branch":"master","total_commits":238,"total_committers":3,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":79.33333333333333,"dds":0.37815126050420167,"past_year_total_commits":51,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":51.0,"past_year_dds":0.0,"last_synced_at":"2026-08-13T18:02:54.763Z","last_synced_commit":"ebcfbfbd7ef21feed49315e5ce1c7412c9a87c17","created_at":"2023-03-09T13:07:03.933Z","updated_at":"2026-08-13T18:02:54.194Z","committers":[{"name":"Hongyuan Jia","email":"hongyuan.jia@bears-berkeley.sg","login":null,"count":148},{"name":"Hongyuan Jia","email":"hongyuanjia@cqust.edu.cn","login":"hongyuanjia","count":86},{"name":"Adrian Chong","email":"adrian.chong@nus.edu.sg","login":"adChong","count":4}],"past_year_committers":[{"name":"Hongyuan Jia","email":"hongyuanjia@cqust.edu.cn","login":"hongyuanjia","count":51}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-14T00:00:06.241Z","repositories_count":6662341,"commits_count":944571256,"contributors_count":40092175,"owners_count":1339000,"committers_count":3309644,"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":"ideas-lab-nus/epwshiftr","html_url":"https://github.com/ideas-lab-nus/epwshiftr","last_synced_at":"2026-08-13T18:01:18.784Z","status":"error","issues_count":78,"pull_requests_count":78,"avg_time_to_close_issue":4959621.453125,"avg_time_to_close_pull_request":278826.7236842105,"issues_closed_count":64,"pull_requests_closed_count":76,"pull_request_authors_count":1,"issue_authors_count":10,"avg_comments_per_issue":0.24358974358974358,"avg_comments_per_pull_request":0.2948717948717949,"merged_pull_requests_count":71,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":29,"past_year_pull_requests_count":35,"past_year_avg_time_to_close_issue":14537.307692307691,"past_year_avg_time_to_close_pull_request":18082.470588235294,"past_year_issues_closed_count":26,"past_year_pull_requests_closed_count":34,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.13793103448275862,"past_year_avg_comments_per_pull_request":0.05714285714285714,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":30,"created_at":"2023-05-09T10:45:41.573Z","updated_at":"2026-08-13T18:01:18.784Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ideas-lab-nus%2Fepwshiftr/issues","issue_labels_count":{"feature":11,"enhancement":8,"bug":7,"documentation":6,"JOSS":5,"CI":4,"CRAN":2,"question":2,"refactor":1},"pull_request_labels_count":{"documentation":12,"feature":11,"bug":9,"enhancement":4,"CRAN":4,"CI":4,"refactor":2},"issue_author_associations_count":{"MEMBER":64,"NONE":14},"pull_request_author_associations_count":{"MEMBER":78},"issue_authors":{"hongyuanjia":64,"mitmat":4,"chrisdane":3,"IsaakBM":1,"lolow":1,"San42":1,"milonbrri":1,"mohy74":1,"dvictori":1,"germolinal":1},"pull_request_authors":{"hongyuanjia":78},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-14T00:00:05.923Z","repositories_count":16033856,"issues_count":40413834,"pull_requests_count":130771257,"authors_count":11450160,"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":{"MEMBER":27,"NONE":2},"past_year_pull_request_author_associations_count":{"MEMBER":35},"past_year_issue_authors":{"hongyuanjia":27,"chrisdane":2},"past_year_pull_request_authors":{"hongyuanjia":35},"maintainers":[{"login":"hongyuanjia","count":142,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hongyuanjia"}],"active_maintainers":[{"login":"hongyuanjia","count":62,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hongyuanjia"}]},"events":{"total":{"DeleteEvent":4,"PullRequestEvent":3,"ForkEvent":2,"WatchEvent":9,"IssueCommentEvent":1,"PushEvent":69,"CreateEvent":13},"last_year":{"DeleteEvent":3,"PullRequestEvent":3,"WatchEvent":5,"PushEvent":69,"CreateEvent":13}},"keywords":["climate-change","cmip6","energyplus","epw","esgf"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/R-CMD-check.yaml","sha":null,"kind":"manifest","created_at":"2023-02-17T01:46:32.574Z","updated_at":"2023-02-17T01:46:32.574Z","repository_link":"https://github.com/ideas-lab-nus/epwshiftr/blob/master/.github/workflows/R-CMD-check.yaml","dependencies":[{"id":7730206704,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206705,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206706,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206707,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206708,"package_name":"r-lib/actions/setup-r-dependencies","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206709,"package_name":"r-lib/actions/check-r-package","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pkgdown.yml","sha":null,"kind":"manifest","created_at":"2023-02-17T01:46:32.599Z","updated_at":"2023-02-17T01:46:32.599Z","repository_link":"https://github.com/ideas-lab-nus/epwshiftr/blob/master/.github/workflows/pkgdown.yml","dependencies":[{"id":7730206930,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206931,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206932,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730206933,"package_name":"actions/cache","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7730206934,"package_name":"r-lib/actions/setup-r-dependencies","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr-commands.yaml","sha":null,"kind":"manifest","created_at":"2023-02-17T01:46:32.620Z","updated_at":"2023-02-17T01:46:32.620Z","repository_link":"https://github.com/ideas-lab-nus/epwshiftr/blob/master/.github/workflows/pr-commands.yaml","dependencies":[{"id":7730207000,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207001,"package_name":"r-lib/actions/pr-fetch","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207002,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207003,"package_name":"r-lib/actions/setup-r-dependencies","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207004,"package_name":"r-lib/actions/pr-push","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test-coverage.yaml","sha":null,"kind":"manifest","created_at":"2023-02-17T01:46:32.649Z","updated_at":"2023-02-17T01:46:32.649Z","repository_link":"https://github.com/ideas-lab-nus/epwshiftr/blob/master/.github/workflows/test-coverage.yaml","dependencies":[{"id":7730207194,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207195,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207196,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207197,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7730207198,"package_name":"r-lib/actions/setup-r-dependencies","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"cran","filepath":"DESCRIPTION","sha":null,"kind":"manifest","created_at":"2023-02-17T01:46:32.673Z","updated_at":"2023-02-17T01:46:32.673Z","repository_link":"https://github.com/ideas-lab-nus/epwshiftr/blob/master/DESCRIPTION","dependencies":[{"id":7730207308,"package_name":"checkmate","ecosystem":"cran","requirements":"\u003e= 2.0.0","direct":true,"kind":"imports","optional":false},{"id":7730207310,"package_name":"cli","ecosystem":"cran","requirements":"\u003e= 3.4.0","direct":true,"kind":"imports","optional":false},{"id":7730207311,"package_name":"data.table","ecosystem":"cran","requirements":"\u003e= 1.12.4","direct":true,"kind":"imports","optional":false},{"id":7730207312,"package_name":"eplusr","ecosystem":"cran","requirements":"\u003e= 0.15.2","direct":true,"kind":"imports","optional":false},{"id":7730207313,"package_name":"fst","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207314,"package_name":"future.apply","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207315,"package_name":"jsonlite","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207316,"package_name":"PCICt","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207318,"package_name":"progressr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207319,"package_name":"psychrolib","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207320,"package_name":"R6","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207321,"package_name":"rappdirs","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207322,"package_name":"RNetCDF","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207324,"package_name":"units","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":7730207326,"package_name":"testthat","ecosystem":"cran","requirements":"\u003e= 3.0.0","direct":true,"kind":"suggests","optional":false},{"id":7730207327,"package_name":"curl","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7730207328,"package_name":"mockery","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7730207329,"package_name":"withr","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7730207330,"package_name":"pingr","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7730207341,"package_name":"knitr","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":7730207343,"package_name":"rmarkdown","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false}]}],"score":10.673942936186739,"created_at":"2023-09-11T14:52:14.118Z","updated_at":"2026-08-14T18:32:03.962Z","avatar_url":"https://github.com/ideas-lab-nus.png","language":"R","category":"Climate Change","sub_category":"Climate Data Processing and Analysis","monthly_downloads":333,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"---\noutput: github_document\nalways_allow_html: yes\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n    collapse = TRUE,\n    comment = \"#\u003e\",\n    fig.path = \"man/figures/README\",\n    out.width = \"100%\",\n    cache.path = \"cache/README-\",\n    cache.extra = unname(tools::md5sum(\"tools/readme-asciicast.R\")),\n    asciicast_theme = if (Sys.getenv(\"IN_PKGDOWN\") == \"true\") {\n        \"pkgdown\"\n    } else {\n        \"readme\"\n    }\n)\n\n# Register the same SVG terminal-recording engine used by r-lib/cli's README.\n# Loading from source and replaying deterministic workflow states keep README\n# builds independent of ESGF availability and the persistent DuckDB store.\nasciicast::init_knitr_engine(\n    startup = quote({\n        pkgload::load_all(\".\", quiet = TRUE)\n        source(\"tools/readme-asciicast.R\", local = .GlobalEnv)\n    }),\n    echo = TRUE,\n    echo_input = FALSE,\n    timeout = 120\n)\n```\n\n# epwshiftr \u003cimg src=\"man/figures/logo.svg\" align=\"right\" /\u003e\n\n\u003c!-- badges: start --\u003e\n[![R build status](https://github.com/ideas-lab-nus/epwshiftr/workflows/R-CMD-check/badge.svg)](https://github.com/ideas-lab-nus/epwshiftr/actions)\n[![CRAN status](https://www.r-pkg.org/badges/version/epwshiftr)](https://CRAN.R-project.org/package=epwshiftr)\n[![Codecov test coverage](https://codecov.io/gh/ideas-lab-nus/epwshiftr/branch/master/graph/badge.svg)](https://app.codecov.io/gh/ideas-lab-nus/epwshiftr?branch=master)\n[![CRAN Download Badge](https://cranlogs.r-pkg.org/badges/epwshiftr)](https://cran.r-project.org/package=epwshiftr)\n\u003c!-- badges: end --\u003e\n\n\u003e Shift weather files with climate projection data and generate future EPW files.\n\nepwshiftr helps you request climate projection data, collect file records in a\nlocal store, extract site-level climate variables, morph a baseline EnergyPlus\nWeather (EPW) file, and write shifted future EPW files. The recommended\nuser-facing path is the `shift_*` workflow.\n\n\u003c!-- TOC GFM --\u003e\n\n* [Installation](#installation)\n* [Quick start](#quick-start)\n* [Inspect a workflow](#inspect-a-workflow)\n* [Advanced workflows](#advanced-workflows)\n* [Legacy workflow](#legacy-workflow)\n* [How to cite](#how-to-cite)\n* [Author](#author)\n* [License](#license)\n* [Disclaimer](#disclaimer)\n* [Contribute](#contribute)\n\n\u003c!-- /TOC --\u003e\n\n## Installation\n\nYou can install the latest stable release of epwshiftr from\n[CRAN](https://CRAN.R-project.org).\n\n```{r cran-install, eval = FALSE}\ninstall.packages(\"epwshiftr\")\n```\n\nAlternatively, you can install the development version from R-universe.\n\n```{r gh-install, eval = FALSE}\ninstall.packages(\n    \"epwshiftr\",\n    repos = c(\n        ideaslab = \"https://ideas-lab-nus.r-universe.dev\",\n        cran = \"https://cran.r-project.org\"\n    )\n)\n```\n\nThe current development line and the next CRAN release use the new\nstore-native implementation. If you need the old data.table-oriented workflow,\nuse the `legacy` branch on GitHub or install epwshiftr `v0.1.4`.\n\n## Quick start\n\nFor the common baseline-to-future EPW workflow, use\n`shift_future_epw()`. When matching historical CMIP6 data are available, the\nrecommended Belcher method supplies them explicitly with\n`historical_reference()`. The function resolves files, extracts the site time\nseries, persists a resumable run, and copies only the final EPWs to `dir`.\n\nRun the complete workflow with the scientific intent kept in one call:\n\n```{r shift-workflow, eval = FALSE}\nlibrary(epwshiftr)\n\nrun \u003c- shift_future_epw(\n    epw = system.file(\n        \"extdata/examples/SGP_Singapore.486980_IWEC.epw\",\n        package = \"epwshiftr\"\n    ),\n    climate = shift_cmip6(\n        model = \"BCC-CSM2-MR\",\n        scenarios = c(\"ssp126\", \"ssp585\")\n    ),\n    periods = list(`2060s` = 2055:2065),\n    method = belcher(\n        reference = historical_reference(1995:2014)\n    ),\n    dir = tempdir()\n)\n```\n\n`belcher()` now uses the enhanced profile by default. It automatically uses\ncombined temperature morphing when matching `tasmax` and `tasmin` are complete,\nprefers a complete `huss + tas + ps` humidity state, recalculates the radiation\nchain and relevant EPW headers, and queries `snd` from `LImon` when it is\navailable in both future and historical cases. Reproduce the previous numerical\npath with `belcher(profile = \"legacy\")`; use `belcher_options()` for individual\npolicies such as transition width, snow requirements, or header preservation.\n\nThe representative terminal recording below is generated from deterministic\nworkflow states, so README builds do not depend on live ESGF services. A real\nrun uses the same dashboard; the selected node, timings, and file counts vary.\n\n```{asciicast shift-workflow-output}\n#| echo: false\n#| cache: true\n#| asciicast_knitr_output: \"svg\"\n#| asciicast_at: \"all\"\n#| asciicast_cols: 112\n#| asciicast_rows: 14\n#| asciicast_cursor: false\n#| asciicast_speed: 1\n#| asciicast_idle_time_limit: 1\n#| asciicast_end_wait: 4\nreadme_future_epw_demo()\n```\n\nInspect the persisted run and its delivered files with the same handle:\n\n```{r shift-workflow-checks, eval = FALSE}\nshift_status(run)\noutputs \u003c- shift_outputs(run)\noutputs[, .(\n    experiment_id,\n    period,\n    file = basename(export_path)\n)]\nshift_missing(run)\nshift_diagnostics(run)\n```\n\nDynamic foreground runs start directly inside one atomic live panel; the plan\ncontext is replaced in place instead of leaving a duplicate startup transcript.\nOn terminals at least 60 columns wide, a quiet border and labelled `Workflow`\nand `Activity` rules separate the run identity, active work, and recent results.\nNarrow terminals omit that decoration and preserve the same semantic rows. The\ndashboard keeps one animated current operation, a static stage rail,\nstage-specific measured progress, and two recent resolver or workflow outcomes.\nResolver failover reports node attempts and elapsed time without presenting the\nattempt count as a workflow percentage. The live region is capped at 112\ncolumns, uses short normal-mode diagnostics, and reserves green, yellow, and red\nfor semantic outcomes. Dynamic IDE consoles without cursor-up support receive\none compact status row, while redirected output uses complete append-only logs.\nDownloads add aggregate bytes, speed, ETA, active-file counts, and filenames at\nhigher detail levels. Successful and partial runs leave a final `Results`\nreceipt with output counts, the delivery directory, and exported filenames in\nterminal scrollback. If a run fails, its final panel remains in terminal\nscrollback and changes `Activity` to `Diagnosis`: repeated mirror failures are\ncollapsed into attempt counts, one cause, the closest CMIP6 identity, and the\nfirst missing requirement. Transient failures offer `Retry`; incomplete\nscientific coverage instead asks you to change the selection or reference,\nbecause resuming the unchanged request would produce the same result.\n`shift_ui()` controls only presentation and never changes the workflow\nspecification or its `spec_hash`:\n\n```{r shift-ui, eval = FALSE}\nrun \u003c- shift_future_epw(\n    epw = epw,\n    climate = shift_cmip6(\"BCC-CSM2-MR\", c(\"ssp126\", \"ssp585\")),\n    periods = list(`2060s` = 2055:2065),\n    method = belcher(reference = historical_reference(1995:2014)),\n    dir = \"~/Downloads/epwshiftr-test\",\n    ui = shift_ui(\n        progress = \"auto\",\n        detail = \"detail\",\n        motion = \"auto\"\n    )\n)\n```\n\nUse `detail = \"normal\"` for task-level progress, `\"detail\"` for selection,\nreuse, fallback, and all output paths, or `\"debug\"` to additionally include\nfull URLs and internal paths. Live renderers use full animation by default;\n`motion = \"reduced\"` keeps a stable active marker, while `motion = \"none\"`\nremoves motion without disabling the dashboard or compact status row. Terminal\ncapability, width, Unicode, styling, and cursor visibility follow `cli`'s public\nAPIs; the multi-line framebuffer owns only atomic frame painting. `refresh`\ncontrols only visual frames and `heartbeat` controls durable job liveness. Use\n`progress = \"log\"` for screen readers, redirected output, and stable captured\nlogs. `\"auto\"` selects log mode automatically in CI, `TERM=dumb`, and\nnon-dynamic terminals.\n\nFor a long run that should survive the current R session, launch a detached\nworker. Registration returns immediately; the same `ShiftRun` handle reads live\nstate from the store:\n\n```{r shift-background, eval = FALSE}\nrun \u003c- shift_future_epw(\n    epw = epw,\n    climate = shift_cmip6(\"BCC-CSM2-MR\", c(\"ssp126\", \"ssp585\")),\n    periods = list(`2060s` = 2055:2065),\n    method = belcher(reference = historical_reference(1995:2014)),\n    dir = \"~/Downloads/epwshiftr-test\",\n    background = TRUE\n)\nshift_watch(run)\nshift_logs(run) # `source` distinguishes process logs from persisted events\n# shift_cancel(run) # stop at the next safe workflow boundary\n```\n\nUse `force = TRUE` only if the worker does not respond to the normal\ncancellation request; it terminates the recorded worker process immediately.\n\nThis example automatically resolves monthly CMIP6 inputs by variable: the\natmospheric fields use `Amon`, while optional snow depth uses `LImon` when a\nmatching future/reference pair exists. The committed asciicast SVG demonstrates the production\ndashboard without performing remote data reads during documentation builds.\n\nIf no suitable historical CMIP6 reference is available, use `belcher()` as a\nfallback. It then uses the input EPW climatology and does not infer or query a\nhistorical reference.\n\n## Inspect a workflow\n\nSet `dry_run = TRUE` and use `shift_explain()` when you want to inspect the\nworkflow before touching ESGF services.\n\n```{r inspect-workflow, eval = FALSE}\nplan \u003c- shift_future_epw(\n    epw = epw,\n    climate = shift_cmip6(\n        model = \"BCC-CSM2-MR\",\n        scenarios = c(\"ssp126\", \"ssp585\")\n    ),\n    periods = list(`2060s` = 2055:2065),\n    method = belcher(\n        reference = historical_reference(1995:2014)\n    ),\n    dir = \"~/Downloads/epwshiftr-test\",\n    dry_run = TRUE\n)\n\nshift_explain(plan)\nrun \u003c- shift_run(plan, ui = shift_ui(\"auto\"))\n\nshift_status(run)\nshift_diagnostics(run)\nshift_outputs(run)\nshift_data(run)\n```\n\n`shift_ids()` exposes underlying manifest IDs for advanced debugging, but normal\nworkflows should not require users to pass `query_id`, `plan_id`, `summary_id`,\nor `morph_id` by hand.\n\nTo keep a complete local copy of the source NetCDF files, insert\n`shift_download()` after `shift_collect()`. This is optional for the normal\nsingle-site workflow because `shift_extract()` reads through OPeNDAP first and\nonly falls back to HTTP downloads when `fallback = \"auto\"` and remote access is\nunavailable.\n\nStandalone stages use the same dashboard and persisted run model. No session\nobject is required: the latest returned stage carries its `run_id` and\n`step_id` into the next call automatically.\n\n```{r shift-stages, eval = FALSE}\nfiles \u003c- shift_collect(request, store = store)\nclimate \u003c- shift_extract(files, site, periods)\nmorphed \u003c- shift_morph(climate, baseline = epw)\noutputs \u003c- shift_export_epw(morphed, dir = output_dir)\n\nshift_run_get(outputs)\nshift_ids(outputs)[c(\"run_id\", \"step_id\")]\n```\n\nIntermediate stages leave the durable run in `waiting`, which means the work\nsucceeded and can continue; the terminal receipt labels this user-facing state\nas `READY`. An empty collection is `partial` instead because it cannot feed the\nnext stage. `shift_export_epw()` completes a successful run automatically. If an\nintermediate artifact is intentionally the final result, close the run with\n`shift_complete(files)` (or the latest stage object). Continuing from an older\nor already completed stage creates a child run rather than rewriting history.\nFor `shift_download(..., background = TRUE)`, the run remains `running` until\nthe Downloader session finishes; `shift_watch()`, `shift_cancel()`, and\n`shift_logs()` follow that underlying job through the same run ID.\n\n## Advanced workflows\n\nThe `shift_*` functions are a thin user-facing facade over lower-level engines:\n\n* `EsgQuery` builds and collects ESGF queries.\n* `EsgStore` manages file records, downloads, extraction plans, and artifacts.\n* `EpwMorpher` summarises climate data, builds morphing plans, runs morphing,\n  and writes EPW files.\n\nUse those lower-level objects when you need to inspect or tune manifests,\ndownload candidate selection, extraction coverage, morphing factors, or output\nregistration. See\n[Create Future EPW Files](vignettes/articles/future-epw-workflow.Rmd)\nfor the expanded query/download/extract/morph/write path.\n\n## Legacy workflow\n\nThe older workflow based on `init_cmip6_index()`, `summary_database()`,\n`extract_data()`, `morphing_epw()`, and `future_epw()` belongs to the legacy\nimplementation. These functions are not exported by the current package.\n\nUse the `legacy` branch on GitHub or epwshiftr `v0.1.4` if you need that\nworkflow unchanged while migrating to the store-native API.\n\n## How to cite\n\nTo cite epwshiftr in publications use:\n\n    Jia, Hongyuan, Chong, Adrian, Ning, Baisong, 2023.\n    Epwshiftr: incorporating open data of climate change prediction into building performance simulation for future adaptation and mitigation,\n    in: Proceedings of Building Simulation 2023: 18th Conference of IBPSA, Building Simulation.\n    Presented at the Building Simulation 2023, IBPSA, Shanghai, China, pp. 3201-3207.\n    https://doi.org/10.26868/25222708.2023.1612\n\nA BibTeX entry for LaTeX users is:\n\n```bibtex\n@inproceedings{jia2023epwshiftr,\n  title = {Epwshiftr: Incorporating Open Data of Climate Change Prediction into Building Performance Simulation for Future Adaptation and Mitigation},\n  shorttitle = {Epwshiftr},\n  booktitle = {Proceedings of {{Building Simulation}} 2023: 18th {{Conference}} of {{IBPSA}}},\n  author = {Jia, Hongyuan and Chong, Adrian and Ning, Baisong},\n  year = {2023},\n  series = {Building {{Simulation}}},\n  volume = {18},\n  pages = {3201--3207},\n  publisher = {{IBPSA}},\n  address = {{Shanghai, China}},\n  doi = {10.26868/25222708.2023.1612}\n}\n```\n\n## Author\n\nHongyuan Jia and Adrian Chong\n\n## License\n\n* **epwshiftr**\n\n  epwshiftr is released under the terms of MIT License.\n\n  Copyright (c) 2019-2024 Hongyuan Jia and Adrian Chong\n\n* **CMIP6 data**\n\n  \u003e To enable modeling groups and others who support CMIP6 to demonstrate its\n  \u003e impact (and secure ongoing funding), you are required to cite and\n  \u003e acknowledge those who have made CMIP6 possible. You also must abide by any\n  \u003e licensing restrictions, which are recorded in each file as a global\n  \u003e attribute (named \"license\").\n  \u003e\n  \u003e Please carefully read and adhere to the [CMIP6 Terms of Use](https://pcmdi.llnl.gov/CMIP6/TermsOfUse/).\n\n## Disclaimer\n\nCMIP6 model data is licensed under a [Creative Commons Attribution-ShareAlike\n4.0 International License](https://creativecommons.org/licenses/).\nConsult [Terms of Use](https://pcmdi.llnl.gov/CMIP6/TermsOfUse/) for terms of use\ngoverning CMIP6 output, including citation requirements and proper\nacknowledgment. Further information about each GCM output data, including some\nlimitations, can be found via the `further_info_url` recorded as a global\nattribute in the NetCDF file. The data producers and data providers make no\nwarranty, either express or implied, including, but not limited to, warranties\nof merchantability and fitness for a particular purpose. All liabilities arising\nfrom the supply of the information, including any liability arising in\nnegligence, are excluded to the fullest extent permitted by law.\n\n## Contribute\n\nIf you encounter a clear bug or have questions about the usage, please file an\nissue with a minimal reproducible example on\n[GitHub](https://github.com/ideas-lab-nus/epwshiftr/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc).\n\nIf you have a solution for an existing bug or an implementation for a missing\nfeature, please send a pull request and let us review.\n\n------------------------------------------------------------------------\n\nPlease note that the 'epwshiftr' project is released with a\n[Contributor Code of Conduct](https://github.com/ideas-lab-nus/epwshiftr/blob/master/.github/CODE_OF_CONDUCT.md).\nBy contributing to this project, you agree to abide by its terms.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.26868/25222708.2023.1612"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["bayesian-calibration","parametric","psychrometrics"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/20628","html_url":"https://ost.ecosyste.ms/projects/20628"}