{"id":1822,"name":"jsmetrics","description":"An open-source Python package containing implementations of various statistics and algorithms which have been developed to identify or characterise jet streams.","url":"https://github.com/Thomasjkeel/jsmetrics","last_synced_at":"2026-05-01T04:32:12.206Z","repository":{"id":59146204,"uuid":"359493857","full_name":"Thomasjkeel/jsmetrics","owner":"Thomasjkeel","description":"A Python package of algorithms used to identify jet streams, based on xarray.","archived":false,"fork":false,"pushed_at":"2026-04-01T03:54:22.000Z","size":16200,"stargazers_count":32,"open_issues_count":16,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T02:25:25.818Z","etag":null,"topics":["algorithms","climate-science","jet-stream","metrics","python","xarray"],"latest_commit_sha":null,"homepage":"https://jsmetrics.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thomasjkeel.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","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":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-04-19T14:43:39.000Z","updated_at":"2026-03-30T09:25:11.000Z","dependencies_parsed_at":"2026-03-25T11:00:42.814Z","dependency_job_id":null,"html_url":"https://github.com/Thomasjkeel/jsmetrics","commit_stats":{"total_commits":1698,"total_committers":6,"mean_commits":283.0,"dds":0.03945818610129559,"last_synced_commit":"1e60ad1163590a76c544ab7efb27b7e91946e0df"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/Thomasjkeel/jsmetrics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomasjkeel","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/sbom","scorecard":{"id":1236455,"data":{"date":"2025-08-27T02:51:24Z","repo":{"name":"github.com/Thomasjkeel/jsmetrics","commit":"599014b5929ece57efc21e347e919e9565548e92"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":7.3,"checks":[{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Code-Review","score":-1,"reason":"Found no human activity in the last 16 changesets","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:31","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:32","Info: topLevel 'contents' permission set to 'read': .github/workflows/ci.yml:11","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/ci.yml:12","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:24","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:13","Info: topLevel 'contents' permission set to 'read': .github/workflows/publish-pypi.yml:9","Info: topLevel 'contents' permission set to 'read': .github/workflows/publish-testpypi.yml:9","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:18","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Maintained","score":10,"reason":"14 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":8,"reason":"dependency not pinned by hash detected -- score normalized to 8","details":["Warn: pipCommand not pinned by hash: .github/workflows/publish-pypi.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/publish-testpypi.yml:28","Info:  14 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:  11 out of  11 third-party GitHubAction dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":0,"reason":"17 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6","Warn: Project is vulnerable to: PYSEC-2021-387 / GHSA-j8fq-86c5-5v2r","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2013-9 / GHSA-4gv5-qhvr-36vv","Warn: Project is vulnerable to: PYSEC-2021-437 / GHSA-5xp3-jfq3-5q8x","Warn: Project is vulnerable to: PYSEC-2019-160 / GHSA-c5h8-cq4v-cvfm","Warn: Project is vulnerable to: PYSEC-2013-8 / GHSA-g3p5-fjj9-h8gj","Warn: Project is vulnerable to: PYSEC-2020-173 / GHSA-gpvv-69j7-gwj8","Warn: Project is vulnerable to: PYSEC-2023-228 / GHSA-mq26-g339-26xf","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/publish-pypi.yml:12"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: found contributions from: NERC-CEH"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"16 out of 16 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}}]},"last_synced_at":"2025-08-29T07:27:43.326Z","repository_id":59146204,"created_at":"2025-08-29T07:27:43.326Z","updated_at":"2025-08-29T07:27:43.326Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31768649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"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":"Thomasjkeel","name":"Tom Keel","uuid":"22193816","kind":"user","description":"PhD student based at UCL Geography. Interested in jet-streams, spatial analysis and Python.","email":"","website":null,"location":"London ","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/22193816?u=02c682d787caa51f0dfa93ab16e780e5f236c637\u0026v=4","repositories_count":20,"last_synced_at":"2024-06-11T15:41:00.410Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Thomasjkeel","funding_links":[],"total_stars":34,"followers":17,"following":20,"created_at":"2023-02-27T16:42:12.251Z","updated_at":"2024-06-11T15:41:02.604Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomasjkeel","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomasjkeel/repositories"},"packages":[{"id":5188509,"name":"jsmetrics","ecosystem":"pypi","description":"Library of algorithms and metrics used to characterise jet streams.","homepage":"https://github.com/Thomasjkeel/jsmetrics","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/Thomasjkeel/jsmetrics","keywords_array":["jet-stream","climate","metrics","algorithms","xarray"],"namespace":null,"versions_count":33,"first_release_published_at":"2022-08-21T16:02:58.000Z","latest_release_published_at":"2025-11-03T14:21:53.000Z","latest_release_number":"0.3.1","last_synced_at":"2026-03-31T14:00:44.504Z","created_at":"2022-08-21T17:05:04.578Z","updated_at":"2026-03-31T14:00:44.504Z","registry_url":"https://pypi.org/project/jsmetrics/","install_command":"pip install jsmetrics --index-url https://pypi.org/simple","documentation_url":"https://jsmetrics.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Intended Audience :: Developers","Intended Audience :: Science/Research","License :: OSI Approved :: GNU General Public License v3 (GPLv3)","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Topic :: Scientific/Engineering :: Atmospheric Science"],"normalized_name":"jsmetrics","project_status":null},"repo_metadata":{"id":59146204,"uuid":"359493857","full_name":"Thomasjkeel/jsmetrics","owner":"Thomasjkeel","description":"A Python package of algorithms and metrics used to characterise and identify jet streams, based on xarray.","archived":false,"fork":false,"pushed_at":"2024-10-24T04:06:32.000Z","size":16078,"stargazers_count":23,"open_issues_count":22,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-29T20:35:00.079Z","etag":null,"topics":["algorithms","climate-science","jet-stream","metrics","python","xarray"],"latest_commit_sha":null,"homepage":"https://jsmetrics.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thomasjkeel.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","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":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-19T14:43:39.000Z","updated_at":"2024-10-21T23:16:35.000Z","dependencies_parsed_at":"2023-02-12T17:15:39.939Z","dependency_job_id":"9f455825-73cc-4024-8317-b8924502b472","html_url":"https://github.com/Thomasjkeel/jsmetrics","commit_stats":{"total_commits":1692,"total_committers":6,"mean_commits":282.0,"dds":"0.038416075650118175","last_synced_commit":"c9ff0923d9b08afad00674fac6e4401cde5b4845"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomasjkeel","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222131011,"owners_count":16936304,"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":"Thomasjkeel","name":"Tom Keel","uuid":"22193816","kind":"user","description":"PhD student based at UCL Geography. Interested in jet-streams, spatial analysis and Python.","email":"","website":null,"location":"London ","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/22193816?u=02c682d787caa51f0dfa93ab16e780e5f236c637\u0026v=4","repositories_count":20,"last_synced_at":"2024-06-11T15:41:00.410Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Thomasjkeel","funding_links":[],"total_stars":34,"followers":17,"following":20,"created_at":"2023-02-27T16:42:12.251Z","updated_at":"2024-06-11T15:41:02.604Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomasjkeel","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomasjkeel/repositories"},"tags":[{"name":"v0.2.7-hotfix","sha":"c9ff0923d9b08afad00674fac6e4401cde5b4845","kind":"commit","published_at":"2024-09-24T15:27:45.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.7-hotfix","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.7-hotfix","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.7-hotfix","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.7-hotfix/manifests"},{"name":"0.2.7","sha":"c07c8feaeee7729a7bb42a2ccc457545d7b9ecd7","kind":"commit","published_at":"2024-09-24T15:19:55.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/0.2.7","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.7/manifests"},{"name":"0.2.7-hotfix","sha":"c07c8feaeee7729a7bb42a2ccc457545d7b9ecd7","kind":"commit","published_at":"2024-09-24T15:19:55.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/0.2.7-hotfix","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/0.2.7-hotfix","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.7-hotfix","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.7-hotfix/manifests"},{"name":"v0.2.7","sha":"a44b133b80f7379e0f968dbd91fd7a04da7a4ae4","kind":"commit","published_at":"2024-09-24T15:12:25.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.7","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.7/manifests"},{"name":"v0.2.6","sha":"43d07f25dbe1b41c52e5b2607b2295e3c762adac","kind":"commit","published_at":"2024-09-23T16:05:42.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.6","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.6/manifests"},{"name":"v0.2.5","sha":"a78e46aaa95304607a054f53bf4329d553ed31d3","kind":"commit","published_at":"2024-09-23T15:51:36.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.5","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.5/manifests"},{"name":"0.2.4","sha":"94eae84dd3c6f88186235a014c978a3333fb8ded","kind":"commit","published_at":"2024-09-23T14:49:26.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/0.2.4","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/0.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.4/manifests"},{"name":"0.2.3","sha":"926970b50a2da17e361704d3d81eb5d97801b0ee","kind":"commit","published_at":"2024-05-10T11:20:04.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/0.2.3","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/0.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.3/manifests"},{"name":"v0.2.2","sha":"250805480e2dbe02cd97a3a16e6fef7bf7a45c63","kind":"commit","published_at":"2024-03-15T16:24:20.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.2","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.2/manifests"},{"name":"v0.2.2-beta","sha":"a77b9d75aa82ea1d1601b5fa15a106934f275468","kind":"commit","published_at":"2024-03-13T11:37:22.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.2-beta","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.2-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.2-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.2-beta/manifests"},{"name":"0.2.1","sha":"59fd68adc5e4ada4956a1d3aaa8832ef8254f68c","kind":"commit","published_at":"2023-12-01T15:16:19.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/0.2.1","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.2.1/manifests"},{"name":"v0.2.0","sha":"cd45e3f90877a9a137b18581476f09b35b6389be","kind":"commit","published_at":"2023-10-14T17:11:43.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.2.0","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.2.0/manifests"},{"name":"v0.1.7","sha":"5430c2170300ccd9bf3fa4e479e7d0f10c9883cf","kind":"commit","published_at":"2023-10-10T17:07:04.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.7","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.7/manifests"},{"name":"0.1.6","sha":"fef6ccec1e118be731f8540aa3d4560d119e7de8","kind":"commit","published_at":"2023-09-18T09:49:48.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/0.1.6","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/0.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/0.1.6/manifests"},{"name":"v0.1.6","sha":"a8c94d8ee6276b0498699bb599d0919f37fcac5c","kind":"commit","published_at":"2023-09-15T12:56:34.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.6","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.6/manifests"},{"name":"v0.1.5","sha":"6e220e9b81091c72270aeb26ea1f041d419f657f","kind":"commit","published_at":"2023-08-19T16:12:26.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.5","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.5/manifests"},{"name":"v0.1.4","sha":"3600bf27d8b824b8fb78530fcd33642fb1f1fe10","kind":"commit","published_at":"2023-08-02T16:32:06.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.4","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.4/manifests"},{"name":"v0.1.3","sha":"816b3f240c0e4587c4d8f23d56424b5a5dba5b9f","kind":"commit","published_at":"2023-07-07T08:33:37.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.3","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.3/manifests"},{"name":"v0.1.2","sha":"16bb2ac44cfbda1b1403af8d452813565b8ec031","kind":"commit","published_at":"2023-06-06T16:06:01.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.2","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.2/manifests"},{"name":"v0.1.2-alpha","sha":"75dfd49e2336e9632bc07795706cc86588259a2b","kind":"commit","published_at":"2023-05-27T11:21:42.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.2-alpha","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.2-alpha","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.2-alpha","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.2-alpha/manifests"},{"name":"v0.1.1","sha":"9a1ace1fdf85c9fdd8ecbcc005795c3a796d1b87","kind":"commit","published_at":"2023-05-26T13:37:50.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.1","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.1/manifests"},{"name":"v0.1.1-beta","sha":"298b4299fb6303908ee62ad5816c093cd7a84107","kind":"commit","published_at":"2023-04-11T11:34:37.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.1-beta","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.1-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.1-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.1-beta/manifests"},{"name":"v0.1.0","sha":"02a28dd204ebd5b97817e742bd444ab46c79bcbf","kind":"commit","published_at":"2023-01-22T17:05:28.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.1.0","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.1.0/manifests"},{"name":"v0.0.18-stable","sha":"26747a09488ea49112bc3bba6fdb739386966d76","kind":"commit","published_at":"2022-11-29T14:41:43.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.18-stable","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.18-stable","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.18-stable","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.18-stable/manifests"},{"name":"v0.0.18","sha":"c1166cdd8134743eb2b071f8f7907678e69e1ad4","kind":"commit","published_at":"2022-11-23T13:12:56.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.18","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.18/manifests"},{"name":"v0.0.17","sha":"b3571146abaaa163f19a2f31c531661a5d98906c","kind":"commit","published_at":"2022-11-13T13:38:03.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.17","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.17/manifests"},{"name":"v0.0.16","sha":"602e4f129989ae45132c39bdbfc31500be392f25","kind":"commit","published_at":"2022-11-09T19:23:08.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.16","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.16/manifests"},{"name":"v0.0.15-jamsin","sha":"81c9c43d363152385bcb7dbecf8f96c9ec52b9b1","kind":"commit","published_at":"2022-11-09T19:19:21.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.15-jamsin","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.15-jamsin","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.15-jamsin","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.15-jamsin/manifests"},{"name":"v0.0.15","sha":"80df6dcc729715c8d625c5527ccf361b93922975","kind":"commit","published_at":"2022-11-09T19:03:29.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.15","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.15/manifests"},{"name":"v0.0.14","sha":"6082c1206672a9c0275a85976fb273631d686940","kind":"commit","published_at":"2022-11-09T15:09:40.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.14","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.14/manifests"},{"name":"v0.0.13","sha":"00b548c44e87d6d95ad1fdc551a8cc88f28cbc92","kind":"commit","published_at":"2022-10-19T13:54:30.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.13","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.13/manifests"},{"name":"v0.0.11","sha":"425e14a82758c31fdb04920e7be705245e191ed0","kind":"commit","published_at":"2022-09-15T10:59:37.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.11","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"ca6897e66ee3fef007c44a2feec53d4cbea3c223","kind":"commit","published_at":"2022-08-21T16:06:49.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.10","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"14b5730c71e7f35e356b33fc59eb066a48051da8","kind":"commit","published_at":"2022-08-19T19:36:25.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.9","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.9/manifests"},{"name":"v0.04-beta","sha":"3c2e2851a73170d7f153e5907bbb64bdaaff05ae","kind":"commit","published_at":"2022-02-09T17:34:34.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.04-beta","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.04-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.04-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.04-beta/manifests"},{"name":"v0.04","sha":"29f5215dd663b4a72ee8c70e2f68a37c7717e415","kind":"commit","published_at":"2022-01-26T15:56:29.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.04","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.04","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.04","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.04/manifests"},{"name":"v0.0.3-alpha","sha":"3ebfa0a0ba436a5bcd281b2f5324881fdee27de4","kind":"tag","published_at":"2022-01-14T13:54:04.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.3-alpha","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.3-alpha","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.3-alpha","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.3-alpha/manifests"},{"name":"v0.0.2","sha":"f35b721a024528125a2e3bfc99b502509f6a47bd","kind":"commit","published_at":"2022-01-10T12:37:59.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.2","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"ba4bcf1d777ee184c26912d8073aaf96aed7dbc1","kind":"tag","published_at":"2022-01-04T16:36:34.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.1","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.1/manifests"},{"name":"v0.0.1-beta","sha":"3df032e4cacc73d433a9c2198316bbccc2bdecac","kind":"tag","published_at":"2021-12-30T12:42:44.000Z","download_url":"https://codeload.github.com/Thomasjkeel/jsmetrics/tar.gz/v0.0.1-beta","html_url":"https://github.com/Thomasjkeel/jsmetrics/releases/tag/v0.0.1-beta","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.1-beta","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/tags/v0.0.1-beta/manifests"}]},"repo_metadata_updated_at":"2024-10-29T23:13:07.643Z","dependent_packages_count":0,"downloads":206,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":18.96419250852689,"dependent_repos_count":30.61104109666564,"dependent_packages_count":6.633233862033089,"stargazers_count":20.500882617335865,"forks_count":23.200755720688072,"average":19.98202116104991},"purl":"pkg:pypi/jsmetrics","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/jsmetrics","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/jsmetrics","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/jsmetrics/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T19:31:58.748Z","issues_count":68,"pull_requests_count":169,"avg_time_to_close_issue":51026863.01960784,"avg_time_to_close_pull_request":216884.34161490682,"issues_closed_count":51,"pull_requests_closed_count":161,"pull_request_authors_count":4,"issue_authors_count":2,"avg_comments_per_issue":0.8088235294117647,"avg_comments_per_pull_request":0.14792899408284024,"merged_pull_requests_count":133,"bot_issues_count":0,"bot_pull_requests_count":93,"past_year_issues_count":4,"past_year_pull_requests_count":106,"past_year_avg_time_to_close_issue":5236452.5,"past_year_avg_time_to_close_pull_request":296097.13265306124,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":98,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.25,"past_year_avg_comments_per_pull_request":0.2358490566037736,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":82,"past_year_merged_pull_requests_count":70,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/issues","maintainers":[{"login":"Thomasjkeel","count":140,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Thomasjkeel"}],"active_maintainers":[{"login":"Thomasjkeel","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Thomasjkeel"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/jsmetrics/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/jsmetrics/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/jsmetrics/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/jsmetrics/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/jsmetrics/codemeta","maintainers":[{"uuid":"thomaskeel","login":"thomaskeel","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/thomaskeel/","role":null,"created_at":"2023-02-26T01:27:18.821Z","updated_at":"2023-02-26T01:27:18.821Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/thomaskeel/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":839747,"maintainers_count":358719,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":687059,"full_name":"Thomasjkeel/jsmetrics","default_branch":"main","total_commits":1799,"total_committers":6,"total_bot_commits":119,"total_bot_committers":2,"mean_commits":299.8333333333333,"dds":0.06892718176764867,"past_year_total_commits":60,"past_year_total_committers":3,"past_year_total_bot_commits":34,"past_year_total_bot_committers":2,"past_year_mean_commits":20.0,"past_year_dds":0.5333333333333333,"last_synced_at":"2026-04-03T15:05:53.269Z","last_synced_commit":"fbae058c781cab8249ff96f5e68983d00e9c467d","created_at":"2023-03-09T11:12:30.850Z","updated_at":"2026-04-03T15:05:16.775Z","committers":[{"name":"Thomasjkeel","email":"thomasjames.keel@googlemail.com","login":"Thomasjkeel","count":1675},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":85},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":34},{"name":"Thomas Keel","email":"Thomasjkeel@github.com","login":null,"count":2},{"name":"Thomas Keel","email":"thomaskeel@pop-os.localdomain","login":null,"count":2},{"name":"StepSecurity Bot","email":"bot@stepsecurity.io","login":"step-security-bot","count":1}],"past_year_committers":[{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":28},{"name":"Thomasjkeel","email":"thomasjames.keel@googlemail.com","login":"Thomasjkeel","count":26},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":6}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-13T00:00:06.408Z","repositories_count":6213014,"commits_count":903843794,"contributors_count":34932619,"owners_count":1144128,"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":"Thomasjkeel/jsmetrics","html_url":"https://github.com/Thomasjkeel/jsmetrics","last_synced_at":"2026-04-01T06:00:53.424Z","status":null,"issues_count":70,"pull_requests_count":357,"avg_time_to_close_issue":58340358.81034483,"avg_time_to_close_pull_request":533771.09375,"issues_closed_count":58,"pull_requests_closed_count":320,"pull_request_authors_count":5,"issue_authors_count":3,"avg_comments_per_issue":0.8142857142857143,"avg_comments_per_pull_request":0.21288515406162464,"merged_pull_requests_count":239,"bot_issues_count":2,"bot_pull_requests_count":269,"past_year_issues_count":1,"past_year_pull_requests_count":51,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":850717.2926829269,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":41,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.058823529411764705,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":47,"past_year_merged_pull_requests_count":38,"created_at":"2023-05-15T04:36:52.944Z","updated_at":"2026-04-01T06:00:53.425Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomasjkeel%2Fjsmetrics/issues","issue_labels_count":{"enhancement":9,"identification-algorithm":8,"max-windspeed":7,"jet-lat":7,"help wanted":6,"windspeed-threshold":5,"climatology":4,"wave-amplitude":3,"index":2,"HARD":2,"object-identification":2,"dependencies":2,"wind-shear":2,"weighted-average":2,"sinousity":2,"centroid":2,"equivalent-lat-displacement":1,"invalid":1,"PV-isertels":1,"SH":1,"lagrangian":1,"jet-width":1,"surface-max-wind":1,"axis-detection":1,"subtropical-jet":1,"Streamlines":1,"tropopause-pressure":1,"continuous-jet":1,"clustering":1,"Ozone":1,"potential-vorticity":1},"pull_request_labels_count":{"dependencies":222,"github_actions":47},"issue_author_associations_count":{"OWNER":67,"CONTRIBUTOR":2,"NONE":1},"pull_request_author_associations_count":{"CONTRIBUTOR":270,"OWNER":84,"NONE":3},"issue_authors":{"Thomasjkeel":67,"dependabot[bot]":2,"peteasa":1},"pull_request_authors":{"dependabot[bot]":224,"Thomasjkeel":84,"pre-commit-ci[bot]":45,"step-security-bot":3,"kosyloa":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-13T00:00:15.727Z","repositories_count":14247242,"issues_count":34632031,"pull_requests_count":113102009,"authors_count":11233706,"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":{"dependencies":41,"github_actions":41},"past_year_issue_author_associations_count":{"OWNER":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":47,"OWNER":4},"past_year_issue_authors":{"Thomasjkeel":1},"past_year_pull_request_authors":{"dependabot[bot]":41,"pre-commit-ci[bot]":6,"Thomasjkeel":4},"maintainers":[{"login":"Thomasjkeel","count":151,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Thomasjkeel"}],"active_maintainers":[{"login":"Thomasjkeel","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Thomasjkeel"}]},"events":{"total":{"ReleaseEvent":1,"DeleteEvent":61,"PullRequestEvent":156,"ForkEvent":2,"IssuesEvent":5,"WatchEvent":6,"IssueCommentEvent":23,"PushEvent":68,"PullRequestReviewEvent":21,"CreateEvent":64},"last_year":{"DeleteEvent":23,"PullRequestEvent":79,"ForkEvent":1,"IssuesEvent":5,"WatchEvent":3,"IssueCommentEvent":4,"PushEvent":29,"PullRequestReviewEvent":7,"CreateEvent":24}},"keywords":["algorithms","climate-science","jet-stream","metrics","python","xarray"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements_dev.txt","sha":null,"kind":"manifest","created_at":"2022-09-13T03:01:58.919Z","updated_at":"2022-09-13T03:01:58.919Z","repository_link":"https://github.com/Thomasjkeel/jsmetrics/blob/main/requirements_dev.txt","dependencies":[{"id":4668837547,"package_name":"pip","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837548,"package_name":"xarray","ecosystem":"pypi","requirements":"\u003e=0.20.2","direct":true,"kind":"development","optional":false},{"id":4668837549,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.20","direct":true,"kind":"development","optional":false},{"id":4668837550,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837551,"package_name":"numba","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837552,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=1.1","direct":true,"kind":"development","optional":false},{"id":4668837553,"package_name":"cftime","ecosystem":"pypi","requirements":"\u003e=1.4.1","direct":true,"kind":"development","optional":false},{"id":4668837554,"package_name":"dask","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837555,"package_name":"netCDF4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837556,"package_name":"Bottleneck","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837557,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.3.2","direct":true,"kind":"development","optional":false},{"id":4668837558,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837559,"package_name":"bump2version","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837560,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837561,"package_name":"flake8","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837562,"package_name":"parameterized","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837563,"package_name":"pre_commit","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837564,"package_name":"pylint","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837565,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837566,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837567,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837568,"package_name":"nc-time-axis","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837569,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837570,"package_name":"numpydoc","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false},{"id":4668837571,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"development","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-02-12T17:15:39.319Z","updated_at":"2023-02-12T17:15:39.319Z","repository_link":"https://github.com/Thomasjkeel/jsmetrics/blob/main/.github/workflows/ci.yml","dependencies":[{"id":7591652449,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7591652450,"package_name":"conda-incubator/setup-miniconda","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish-pypi.yml","sha":null,"kind":"manifest","created_at":"2023-02-12T17:15:39.441Z","updated_at":"2023-02-12T17:15:39.441Z","repository_link":"https://github.com/Thomasjkeel/jsmetrics/blob/main/.github/workflows/publish-pypi.yml","dependencies":[{"id":7591652481,"package_name":"actions/checkout","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7591652482,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7591652483,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish-testpypi.yml","sha":null,"kind":"manifest","created_at":"2023-02-12T17:15:39.516Z","updated_at":"2023-02-12T17:15:39.516Z","repository_link":"https://github.com/Thomasjkeel/jsmetrics/blob/main/.github/workflows/publish-testpypi.yml","dependencies":[{"id":7591652548,"package_name":"actions/checkout","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7591652549,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7591652550,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2023-02-12T17:15:39.700Z","updated_at":"2023-02-12T17:15:39.700Z","repository_link":"https://github.com/Thomasjkeel/jsmetrics/blob/main/environment.yml","dependencies":[{"id":7591654465,"package_name":"black","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654468,"package_name":"bottleneck","ecosystem":"conda","requirements":"\u003e=1.3.1,\u003c1.4","direct":true,"kind":"runtime","optional":false},{"id":7591654470,"package_name":"bump2version","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654472,"package_name":"cdsapi","ecosystem":"conda","requirements":"\u003e=0.5.1","direct":true,"kind":"runtime","optional":false},{"id":7591654474,"package_name":"cf_xarray","ecosystem":"conda","requirements":"\u003e=0.6.1","direct":true,"kind":"runtime","optional":false},{"id":7591654476,"package_name":"cftime","ecosystem":"conda","requirements":"\u003e=1.4.1","direct":true,"kind":"runtime","optional":false},{"id":7591654477,"package_name":"coverage","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654479,"package_name":"dask","ecosystem":"conda","requirements":"\u003e=2.6.0","direct":true,"kind":"runtime","optional":false},{"id":7591654481,"package_name":"flake8","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654483,"package_name":"matplotlib","ecosystem":"conda","requirements":"\u003e=3.3.2","direct":true,"kind":"runtime","optional":false},{"id":7591654485,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654487,"package_name":"numba","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654488,"package_name":"numpy","ecosystem":"conda","requirements":"\u003e=1.20","direct":true,"kind":"runtime","optional":false},{"id":7591654490,"package_name":"pandas","ecosystem":"conda","requirements":"\u003e=1.1","direct":true,"kind":"runtime","optional":false},{"id":7591654492,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654494,"package_name":"pre_commit","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654496,"package_name":"pylint","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654498,"package_name":"pytest","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":7591654499,"package_name":"python","ecosystem":"conda","requirements":"\u003e=3.8","direct":true,"kind":"runtime","optional":false},{"id":7591654500,"package_name":"scipy","ecosystem":"conda","requirements":"\u003e=1.2","direct":true,"kind":"runtime","optional":false},{"id":7591654501,"package_name":"xarray","ecosystem":"conda","requirements":"\u003e=0.20.2","direct":true,"kind":"runtime","optional":false}]}],"score":10.995679273401315,"created_at":"2023-09-11T14:25:32.518Z","updated_at":"2026-05-01T04:32:12.218Z","avatar_url":"https://github.com/Thomasjkeel.png","language":"Python","category":"Atmosphere","sub_category":"Atmospheric Composition and Dynamics","monthly_downloads":206,"total_dependent_repos":0,"total_dependent_packages":0,"readme":".. image:: https://github.com/Thomasjkeel/jsmetrics/blob/main/docs/logos/jsmetrics_logo_tiny.png\n   :target: https://coveralls.io/github/Thomasjkeel/jsmetrics?branch=main\n   :align: center\n   :alt: jsmetrics\n\n============================================\njsmetrics: Jet-stream metrics and algorithms\n============================================\n|pypi| |pre-commit| |codefactor| |coveralls| |openssf| |docs| |license| |black| |zenodo|\n\n*jsmetrics* is an open-source Python package containing implementations of various statistics and algorithms which have been\ndeveloped to identify or characterise jet streams.\n\nThe package is built using `xarray \u003chttps://docs.xarray.dev/en/stable/\u003e`_ and currently contains 17 methods,\nconsisting of jet statistics, waviness metrics and jet core algorithms (described `here \u003chttps://jsmetrics.readthedocs.io/en/latest/metrics.html\u003e`_).\nAs this is an ongoing project, we are always in the process of finding and implementing new methods.\nYou can find a full list of methods and their current state in the `docs \u003chttps://jsmetrics.readthedocs.io/en/latest/index.html\u003e`_.\n\n--------------------------------------------------------------------------------------------------\n\nGMD article describing jsmetrics v0.2.0:\n   Keel, T., Brierley, C., and Edwards, T.: jsmetrics v0.2.0: a Python package for metrics and algorithms used to identify or characterise atmospheric jet streams, Geosci. Model Dev., 17, 1229–1247, https://doi.org/10.5194/gmd-17-1229-2024, 2024\n\nexample `notebooks \u003chttps://github.com/Thomasjkeel/jsmetrics-examples\u003e`_\n\n----\n\nInstallation\n-------------\n.. code-block:: bash\n\n    pip install jsmetrics\n\nLet me know if you have any problems installing this package, as I have not extensively tested for Mac-OS and Windows versions.\n\nDocumentation\n-------------\nThe official documentation is at https://jsmetrics.readthedocs.io/en/latest/\n\nMy email is: thomasjames.keel@gmail.com. Please feel free to email me if you would like some help working with this package.\n\nUsage\n-------------\n:code:`jsmetrics` is designed to be easy to use and should integrate seemlessly with `*xarray* \u003chttps://docs.xarray.dev/en/stable/\u003e`_.\nAn extensive knowledge of Python or *xarray* is **not** required to use *jsmetrics*, although it will help you use the package\nmore effectively if you wish to run some of the more advanced use cases.\n\nBelow we introduce a simple use of the package to run a single jet statistic.\n\n.. code-block:: python\n\n import xarray as xr\n import jsmetrics\n\n # load windspeed data with u- and v- component wind.\n uv_data = xr.open_dataset(filename)\n\n # run Woollings et al. 2010 metric\n w10 = jsmetrics.metrics.jet_statistics.woollings_et_al_2010(uv_data)\n\n print(w10['jet_lat'])\n print(w10['jet_speed'])\n\nExamples\n-------------\nFor examples please check out the examples here: https://jsmetrics.readthedocs.io/en/latest/usage.html\n\nSome example notebooks are available on `GitHub \u003chttps://github.com/Thomasjkeel/jsmetrics-examples\u003e`_\n\n**Example of jet latitude statistic:**\n\n.. image:: docs/_static/images/example_jet_lat.png\n  :width: 350\n  :align: center\n  :alt: Example of jet statistic from K20\n\n*Example output of the jet latitude statistic from Ceppi et al. 2018 for 00:00 1st January 2021. Data is ERA5 850 hPa u-wind.*\n\n\n**Example of jet core algorithm:**\n\n.. image:: docs/_static/images/jetcore_example_m11.png\n  :width: 450\n  :align: center\n  :alt: Example of jet core algorithm from M11\n\n*Example output of the jet core algorithm from Manney et al. 2011. The cores shown are extracted from a windspeed slice at 32E longitude at 12:00 on 1st January 2024. Data is 6-hourly ERA5 1000-50 hPa u-v-wind.*\n\n\n**Compare jet core algorithms:**\n\n.. image:: docs/_static/images/jet_core_algorithm_comparions_NA_5_texas2021.png\n  :width: 450\n  :align: center\n  :alt: Comparison of jet core algorithms during Feb 2021 Texas Cold Wave\n\n*Comparison of jet core algorithms estimation of the 6-hourly jet position. Data is 6-hourly ERA5 500-100 hPa u-v-wind.*\n\n\n**Ask questions with jet latitude statsitics:**\n\n.. image:: docs/_static/images/jet_shift_violin.png\n  :width: 450\n  :align: center\n  :alt: Jet latitude circbars with errorbars\n\n*Estimation of mean jet latitude shift. Data is monthly ERA5 850-700 hPa u-wind between 1990-2020.*\n\n\n**Extend the original jet metric definitions using jsmetrics flexibility:**\n\n.. image:: docs/_static/images/all_jet_lats_stj_pfj_npac_maps_more_metrics.png\n  :width: 450\n  :align: center\n  :alt: STJ and PFJ by metric and longitude\n\n*By latitude estimation of the jet latitude of the subtropical and polar jet stream. Data is monthly ERA5 differenced-250 hPa (orange) and 850-700 hPa (blue) u-wind between 1980-2020.*\n\n.. *Why use jsmetrics?:*\n.. ---------------------\n.. The planet's jet streams are complex and not well defined at any one scale (see `what are jet streams \u003chttps://jsmetrics.readthedocs.io/en/latest/statement.html#what-are-jet-streams\u003e`_),\n.. and as such there are a wide range of metrics, algorithms and statistics which have been employed in research to help\n.. identify and characterise them. However, it has been generally quite difficult to reconcile various types of information provided\n.. by different techniques. The motivation for this package was thus to standardise the most common methods developed for the\n.. identification and characterisation of jet streams, so that various techniques are immediately available for anyone wishing to\n.. look at jet streams in data. Also, it is hoped that *jsmetrics* provides a foundation for new metrics and for researchers to be\n.. able to quantitatively compare differences provided by existing techniques.\n\n\nHow to cite this package\n------------------------\nIf you wish to cite `jsmetrics` in a research publication, we kindly ask that you use:\n\n   Keel, T., Brierley, C., and Edwards, T.: jsmetrics v0.2.0: a Python package for metrics and algorithms used to identify or characterise atmospheric jet streams, Geosci. Model Dev., 17, 1229–1247, https://doi.org/10.5194/gmd-17-1229-2024, 2024\n\n\nA reference to a specific version of this software is also available through Zenodo e.g.:\n\n   Keel, T.: Thomasjkeel/jsmetrics: v0.2.2 (0.2.2), Zenodo [code], https://doi.org/10.5281/zenodo.10822662, 2024.\n\nContributing\n------------\njsmetrics is in active development.\n\n* If you're interested in participating in the development of jsmetrics by suggesting new features, new metrics or algorithms or report bugs, please leave us a message on the `issue tracker`_\n\n* If you would like to contribute code or documentation (which is greatly appreciated!), check out the `Contributing Guidelines`_ before you begin!\n\n.. _issue tracker: https://github.com/Thomasjkeel/jsmetrics/issues\n.. _Contributing Guidelines: https://jsmetrics.readthedocs.io/en/latest/contributing.html\n\nCredits\n-------------\nThe layout and content of this project and was inspired by xclim (https://github.com/Ouranosinc/xclim)\nwhich contains other climate indices and metrics.\n\nThis package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.\n\nDisclaimer\n-------------\nWe have tried to replicate the various metrics based on the equations and details in the methodology as accurately as possible.\nHowever, in some cases, we have chosen to exclude or alter parts of the methodology which reduce the resolution of the output (i.e. grouping into season or region) with the hope to preserve the parts of the method that specifically isolate a characteristics of the jet-stream at any inputted scale.\nAgain, any further subsetting is passed onto the user.\n*If data input is at a daily resolution, part of the output should also be daily resolution.*\n\nAlso note that, the data we used to test these metrics may have a different resolution to the one it was developed with.\n\nFinally, although these metric were found with a literature search, this is not an exaustive list of all methods used to identify or characterise the jet-stream or upper-level wind.\nThis project is very much a work in progress, so contributors are very welcome.\n\n.. |license| image:: https://img.shields.io/github/license/thomasjkeel/jsmetrics\n        :target: https://github.com/Thomasjkeel/jsmetrics/blob/master/LICENSE\n        :alt: License\n\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n        :target: https://github.com/python/black\n        :alt: Python Black\n\n.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/Thomasjkeel/jsmetrics/main.svg\n   :target: https://results.pre-commit.ci/latest/github/Thomasjkeel/jsmetrics/main\n   :alt: pre-commit.ci status\n\n.. |codefactor| image:: https://www.codefactor.io/repository/github/thomasjkeel/jsmetrics/badge\n   :target: https://www.codefactor.io/repository/github/thomasjkeel/jsmetrics\n   :alt: CodeFactor\n\n.. |coveralls| image:: https://coveralls.io/repos/github/Thomasjkeel/jsmetrics/badge.svg?branch=main\n   :target: https://coveralls.io/github/Thomasjkeel/jsmetrics?branch=main\n\n.. |zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.10822662.svg\n        :target: https://doi.org/10.5281/zenodo.10822662\n        :alt: Zenodo\n\n.. |docs| image:: https://readthedocs.org/projects/jsmetrics/badge/?version=latest\n       :target: https://jsmetrics.readthedocs.io/en/latest/?badge=latest\n       :alt: Documentation Status\n\n.. |pypi| image:: https://img.shields.io/pypi/v/jsmetrics.svg\n        :target: https://pypi.org/project/jsmetrics/\n        :alt: Python Package Index Build\n\n.. |openssf| image:: https://api.scorecard.dev/projects/github.com/Thomasjkeel/jsmetrics/badge\n            :target: https://scorecard.dev/viewer/?uri=github.com/Thomasjkeel/jsmetrics\n            :alt: OpenSSF scorecard\n\n.. .. |conda| image:: https://img.shields.io/conda/vn/conda-forge/jsmetrics.svg\n..         :target: https://anaconda.org/conda-forge/jsmetrics\n..         :alt: Conda-forge Build Version\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5194/gmd-17-1229-2024","https://doi.org/10.5281/zenodo.10822662"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["archiving","observation","measur","optimize","transforms","parallel","compose","profiles","projection","meshing"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/1822","html_url":"https://ost.ecosyste.ms/projects/1822"}