{"id":46130,"name":"Hagelslag","description":"An object-based severe storm forecasting system that utilizing image processing and machine learning tools to derive calibrated probabilities of severe hazards from convection-allowing numerical weather prediction model output.","url":"https://github.com/djgagne/hagelslag","last_synced_at":"2026-04-14T05:30:22.130Z","repository":{"id":3418953,"uuid":"37555335","full_name":"djgagne/hagelslag","owner":"djgagne","description":"Hagelslag supports segmentation and tracking of weather fields and scalable verification, including performance diagrams and reliability diagrams.","archived":false,"fork":false,"pushed_at":"2024-02-10T00:50:36.000Z","size":95698,"stargazers_count":72,"open_issues_count":6,"forks_count":25,"subscribers_count":15,"default_branch":"master","last_synced_at":"2026-04-05T01:09:57.833Z","etag":null,"topics":["geojson","hail","hrrr","machine-learning","mrms","netcdf","performance","performance-diagram","python","reliability","segmentation","storms","tracking","verification","weather","zarr"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djgagne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-06-16T20:48:43.000Z","updated_at":"2026-02-06T22:26:54.000Z","dependencies_parsed_at":"2024-03-17T06:59:44.583Z","dependency_job_id":null,"html_url":"https://github.com/djgagne/hagelslag","commit_stats":{"total_commits":619,"total_committers":20,"mean_commits":30.95,"dds":"0.41518578352180935","last_synced_commit":"fb443b79834aad9bcb58f99d09ba59d029370225"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/djgagne/hagelslag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djgagne","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/sbom","scorecard":{"id":346149,"data":{"date":"2025-08-11","repo":{"name":"github.com/djgagne/hagelslag","commit":"fb443b79834aad9bcb58f99d09ba59d029370225"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Code-Review","score":2,"reason":"Found 2/9 approved changesets -- score normalized to 2","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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/python-package-conda.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/python-publish.yml:16","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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Info: Possibly incomplete results: error parsing shell code: while statement must end with \"done\": example_scripts/multiple_day_forecast_hrefv2:0","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package-conda.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/djgagne/hagelslag/python-package-conda.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-package-conda.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/djgagne/hagelslag/python-package-conda.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/djgagne/hagelslag/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/djgagne/hagelslag/python-publish.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/python-publish.yml:32","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   2 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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2021-387 / GHSA-j8fq-86c5-5v2r","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","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-2020-107 / GHSA-jjw5-xxj6-pcv5","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: PYSEC-2020-108","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","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-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 27 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T07:05:09.255Z","repository_id":3418953,"created_at":"2025-08-18T07:05:09.255Z","updated_at":"2025-08-18T07:05:09.255Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31668050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"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":"djgagne","name":"David John Gagne","uuid":"874553","kind":"user","description":"Machine Learning Scientist II and head of the Machine Integration and Learning for Earth Systems group at the NSF National Center for Atmospheric Research.","email":"","website":"https://staff.ucar.edu/users/dgagne","location":"Boulder, CO","twitter":null,"company":"NSF National Center for Atmospheric Research","icon_url":"https://avatars.githubusercontent.com/u/874553?u=f24a96dac586f5631cc30383eb58de2cca75f1cc\u0026v=4","repositories_count":60,"last_synced_at":"2024-06-11T15:37:08.747Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/djgagne","funding_links":[],"total_stars":355,"followers":254,"following":60,"created_at":"2022-11-03T20:07:30.649Z","updated_at":"2024-06-11T15:37:12.820Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djgagne","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djgagne/repositories"},"packages":[{"id":2755418,"name":"hagelslag","ecosystem":"pypi","description":"Hagelslag is a Python package for storm-based analysis, forecasting, and evaluation.","homepage":null,"licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/djgagne/hagelslag","keywords_array":["hail","verification","tracking","weather","meteorology","machine learning"],"namespace":null,"versions_count":5,"first_release_published_at":"2016-01-11T06:28:23.000Z","latest_release_published_at":"2024-01-09T23:56:09.000Z","latest_release_number":"0.6","last_synced_at":"2026-04-11T04:02:38.086Z","created_at":"2022-04-10T11:12:56.318Z","updated_at":"2026-04-11T04:02:38.086Z","registry_url":"https://pypi.org/project/hagelslag/","install_command":"pip install hagelslag --index-url https://pypi.org/simple","documentation_url":"https://hagelslag.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9"],"normalized_name":"hagelslag","project_status":null},"repo_metadata":{"id":3418953,"uuid":"37555335","full_name":"djgagne/hagelslag","owner":"djgagne","description":"Hagelslag supports segmentation and tracking of weather fields and scalable verification, including performance diagrams and reliability diagrams.","archived":false,"fork":false,"pushed_at":"2024-02-10T00:50:36.000Z","size":95698,"stargazers_count":67,"open_issues_count":6,"forks_count":27,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-05-20T10:14:22.164Z","etag":null,"topics":["geojson","hail","hrrr","machine-learning","mrms","netcdf","performance","performance-diagram","python","reliability","segmentation","storms","tracking","verification","weather","zarr"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djgagne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-06-16T20:48:43.000Z","updated_at":"2024-04-24T13:35:06.000Z","dependencies_parsed_at":"2024-03-17T06:59:44.583Z","dependency_job_id":null,"html_url":"https://github.com/djgagne/hagelslag","commit_stats":{"total_commits":619,"total_committers":20,"mean_commits":30.95,"dds":"0.41518578352180935","last_synced_commit":"fb443b79834aad9bcb58f99d09ba59d029370225"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djgagne","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":203939395,"owners_count":14217102,"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":"djgagne","name":"David John Gagne","uuid":"874553","kind":"user","description":"Machine Learning Scientist II and head of the Machine Integration and Learning for Earth Systems group at the NSF National Center for Atmospheric Research.","email":"","website":"https://staff.ucar.edu/users/dgagne","location":"Boulder, CO","twitter":null,"company":"NSF National Center for Atmospheric Research","icon_url":"https://avatars.githubusercontent.com/u/874553?u=f24a96dac586f5631cc30383eb58de2cca75f1cc\u0026v=4","repositories_count":60,"last_synced_at":"2024-06-11T15:37:08.747Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/djgagne","funding_links":[],"total_stars":355,"followers":254,"following":60,"created_at":"2022-11-03T20:07:30.649Z","updated_at":"2024-06-11T15:37:12.820Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djgagne","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djgagne/repositories"},"tags":[{"name":"v0.6","sha":"fb443b79834aad9bcb58f99d09ba59d029370225","kind":"commit","published_at":"2024-01-09T23:50:43.000Z","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/v0.6","html_url":"https://github.com/djgagne/hagelslag/releases/tag/v0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.6/manifests"},{"name":"v0.5b1","sha":"5c07051e540dec91bf43c2cfc1176ee6b25a0f9b","kind":"commit","published_at":"2022-07-19T15:58:21.000Z","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/v0.5b1","html_url":"https://github.com/djgagne/hagelslag/releases/tag/v0.5b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.5b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.5b1/manifests"},{"name":"v0.5","sha":"1d0ec05e320dd52c41eb2ec6b41a3a752754db4d","kind":"commit","published_at":"2022-07-19T15:33:04.000Z","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/v0.5","html_url":"https://github.com/djgagne/hagelslag/releases/tag/v0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.5/manifests"},{"name":"v0.4.0b1","sha":"dbc12b7d08019b6947769f5454bf7ebd3cb0237f","kind":"commit","published_at":"2021-01-16T00:02:56.000Z","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/v0.4.0b1","html_url":"https://github.com/djgagne/hagelslag/releases/tag/v0.4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.4.0b1/manifests"},{"name":"v0.2","sha":"60c4a44291bea3cab882990d17c08caf5ebb214d","kind":"commit","published_at":"2016-01-11T06:12:02.000Z","download_url":"https://codeload.github.com/djgagne/hagelslag/tar.gz/v0.2","html_url":"https://github.com/djgagne/hagelslag/releases/tag/v0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/tags/v0.2/manifests"}]},"repo_metadata_updated_at":"2024-09-07T20:56:51.241Z","dependent_packages_count":1,"downloads":1045,"downloads_period":"last-month","dependent_repos_count":2,"rankings":{"downloads":26.11592284861821,"dependent_repos_count":11.798391849216776,"dependent_packages_count":7.31012528119255,"stargazers_count":8.403080013391362,"forks_count":7.600460455992389,"docker_downloads_count":null,"average":12.245596089682257},"purl":"pkg:pypi/hagelslag","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/hagelslag","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/hagelslag","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/hagelslag/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-09-07T20:02:16.458Z","issues_count":7,"pull_requests_count":43,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":1668044.1162790698,"issues_closed_count":0,"pull_requests_closed_count":43,"pull_request_authors_count":8,"issue_authors_count":5,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.8372093023255814,"merged_pull_requests_count":41,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1980963.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/issues","maintainers":[{"login":"djgagne","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/djgagne"},{"login":"charlie-becker","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/charlie-becker"},{"login":"alburke","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alburke"}],"active_maintainers":[{"login":"djgagne","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/djgagne"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hagelslag/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hagelslag/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hagelslag/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hagelslag/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/hagelslag/codemeta","maintainers":[{"uuid":"djgagne","login":"djgagne","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/djgagne/","role":null,"created_at":"2023-02-24T09:17:25.433Z","updated_at":"2023-02-24T09:17:25.433Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/djgagne/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":838272,"maintainers_count":358056,"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":590975,"full_name":"djgagne/hagelslag","default_branch":"master","total_commits":619,"total_committers":20,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":30.95,"dds":0.41518578352180935,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-11T04:03:58.249Z","last_synced_commit":"fb443b79834aad9bcb58f99d09ba59d029370225","created_at":"2023-03-09T06:20:37.851Z","updated_at":"2026-04-11T04:02:16.084Z","committers":[{"name":"David John Gagne","email":"djgagne@ou.edu","login":null,"count":362},{"name":"ahijevyc","email":"ahijevyc@ucar.edu","login":"ahijevyc","count":73},{"name":"David John Gagne","email":"davidjohngagne@gmail.com","login":"djgagne","count":64},{"name":"Amanda Burke","email":"aburke@nimbus.capsint","login":null,"count":35},{"name":"Amanda Burke","email":"32374438+alburke","login":"alburke","count":31},{"name":"Ubuntu","email":"tornado@edmonton.l44ohl0bwfwulknb5fapusimwc.jx.internal.cloudapp.net","login":null,"count":10},{"name":"Charlie Becker","email":"charles11becker@gmail.com","login":null,"count":9},{"name":"Charlie Becker","email":"31113893+charlie-becker","login":"charlie-becker","count":6},{"name":"Amanda Burke","email":"aburke@login3.stampede2.tacc.utexas.edu","login":null,"count":5},{"name":"Amanda Burke","email":"aburke@login1.stampede2.tacc.utexas.edu","login":null,"count":4},{"name":"Nathan Wendt","email":"nawendt@ou.edu","login":null,"count":3},{"name":"Kate Avery","email":"katherine.avery@ou.edu","login":null,"count":3},{"name":"Amanda Burke","email":"aburke@stratus.caps.ou.edu","login":null,"count":3},{"name":"Amanda Burke","email":"aburke@login2.stampede2.tacc.utexas.edu","login":null,"count":3},{"name":"Amanda Burke","email":"aburke@d-ip-10-197-1-103.nwc.nor.ou.edu","login":null,"count":2},{"name":"Amanda Burke","email":"aburke@login4.stampede2.tacc.utexas.edu","login":null,"count":2},{"name":"David Gagne","email":"djgagne@stratus.caps.ou.edu","login":null,"count":1},{"name":"Luke Madaus","email":"madaus.le@gmail.com","login":"lmadaus","count":1},{"name":"Maria J. Molina","email":"hurricanemolina@gmail.com","login":"mariajmolina","count":1},{"name":"Thomas Martin","email":"38228140+ThomasMGeo","login":"ThomasMGeo","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-13T00:00:06.408Z","repositories_count":6212947,"commits_count":904028664,"contributors_count":34944292,"owners_count":1143996,"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":"djgagne/hagelslag","html_url":"https://github.com/djgagne/hagelslag","last_synced_at":"2026-03-29T22:00:57.814Z","status":"error","issues_count":6,"pull_requests_count":42,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":1681620.5952380951,"issues_closed_count":0,"pull_requests_closed_count":42,"pull_request_authors_count":8,"issue_authors_count":5,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.8571428571428571,"merged_pull_requests_count":40,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-14T15:17:07.566Z","updated_at":"2026-03-29T22:00:57.814Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/djgagne%2Fhagelslag/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"CONTRIBUTOR":3,"OWNER":1,"NONE":1,"COLLABORATOR":1},"pull_request_author_associations_count":{"OWNER":20,"CONTRIBUTOR":14,"COLLABORATOR":9},"issue_authors":{"ahijevyc":2,"charlie-becker":1,"mariajmolina":1,"kresguerra02":1,"djgagne":1},"pull_request_authors":{"djgagne":20,"ahijevyc":9,"alburke":5,"charlie-becker":4,"nawendt":2,"lmadaus":1,"ThomasMGeo":1,"mariajmolina":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-09T00:00:10.509Z","repositories_count":14198409,"issues_count":34666122,"pull_requests_count":113306357,"authors_count":11232021,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"djgagne","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/djgagne"},{"login":"charlie-becker","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/charlie-becker"},{"login":"alburke","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/alburke"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":4},"last_year":{"WatchEvent":1}},"keywords":["geojson","hail","hrrr","machine-learning","mrms","netcdf","performance","performance-diagram","python","reliability","segmentation","storms","tracking","verification","weather","zarr"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-06T14:00:42.011Z","updated_at":"2022-08-06T14:00:42.011Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/requirements.txt","dependencies":[{"id":585320584,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.18","direct":true,"kind":"runtime","optional":false},{"id":585320585,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=1.2","direct":true,"kind":"runtime","optional":false},{"id":585320586,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320587,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320588,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"\u003e=0.2","direct":true,"kind":"runtime","optional":false},{"id":585320589,"package_name":"h5py","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320590,"package_name":"netcdf4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320591,"package_name":"pyproj","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320592,"package_name":"scikit-image","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320593,"package_name":"pygrib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320594,"package_name":"arrow","ecosystem":"pypi","requirements":"\u003e=0.8","direct":true,"kind":"runtime","optional":false},{"id":585320595,"package_name":"cython","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320596,"package_name":"s3fs","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320597,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320598,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320599,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320600,"package_name":"mock","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"rtd_requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-06T14:00:42.026Z","updated_at":"2022-08-06T14:00:42.026Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/rtd_requirements.txt","dependencies":[{"id":585320602,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320603,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320604,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320605,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320606,"package_name":"scikit-image","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320607,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320608,"package_name":"netcdf4","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320609,"package_name":"mock","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":585320610,"package_name":"arrow","ecosystem":"pypi","requirements":"\u003e=0.8","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-package-conda.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:56.922Z","updated_at":"2023-09-21T19:58:56.922Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/.github/workflows/python-package-conda.yml","dependencies":[{"id":13857066437,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13857066438,"package_name":"conda-incubator/setup-miniconda","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-publish.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:57.120Z","updated_at":"2023-09-21T19:58:57.120Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/.github/workflows/python-publish.yml","dependencies":[{"id":13857066439,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857066440,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857066441,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"27b31702a0e7fc50959f5ad993c78deac1bdfc29","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-09-21T19:58:57.754Z","updated_at":"2023-09-21T19:58:57.754Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/setup.py","dependencies":[]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-01-12T05:07:47.367Z","updated_at":"2024-01-12T05:07:47.367Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/pyproject.toml","dependencies":[{"id":15564848803,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848804,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848805,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848806,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848807,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848808,"package_name":"scikit-image","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848809,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848810,"package_name":"dask","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848811,"package_name":"zarr","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848812,"package_name":"numba","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848813,"package_name":"pygrib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848814,"package_name":"pyproj","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848815,"package_name":"pyarrow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":15564848816,"package_name":"pyshp","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2024-03-17T06:59:41.490Z","updated_at":"2024-03-17T06:59:41.490Z","repository_link":"https://github.com/djgagne/hagelslag/blob/master/environment.yml","dependencies":[{"id":16866260218,"package_name":"scikit-learn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866260219,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866260220,"package_name":"sphinx","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866260221,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866260222,"package_name":"zarr","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259315,"package_name":"arrow","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259391,"package_name":"cython","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259392,"package_name":"dask","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259393,"package_name":"flake8","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259394,"package_name":"h5py","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259395,"package_name":"jasper","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259484,"package_name":"jupyter","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259485,"package_name":"jupyterlab","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259486,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259487,"package_name":"mock","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259488,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259489,"package_name":"numba","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259490,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259491,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259492,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259493,"package_name":"pyarrow","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259494,"package_name":"pygrib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259863,"package_name":"pyproj","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259864,"package_name":"pytest","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866259865,"package_name":"python","ecosystem":"conda","requirements":"\u003c=3.10","direct":true,"kind":"runtime","optional":false},{"id":16866259866,"package_name":"s3fs","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":16866260217,"package_name":"scikit-image","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]}],"score":14.30803370863988,"created_at":"2023-09-13T08:45:16.190Z","updated_at":"2026-04-14T05:30:22.133Z","avatar_url":"https://github.com/djgagne.png","language":"Jupyter Notebook","category":"Climate Change","sub_category":"Natural Hazard and Storms","monthly_downloads":1045,"total_dependent_repos":2,"total_dependent_packages":1,"readme":"# Hagelslag\n## Storm tracking, machine learning, and probabilistic evaluation\n[![NSF-1261776](https://img.shields.io/badge/NSF-1261776-blue)](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1261776\u0026HistoricalAwards=false)\n\nHagelslag is an object-based severe storm forecasting system that utilizing image processing and machine learning tools\nto derive calibrated probabilities of severe hazards from convection-allowing numerical weather prediction model output.\nThe package contains modules for storm identification and tracking, spatio-temporal data extraction, and \nmachine learning model training to predict hazard intensity as well as space and time translations.\n\n### Citation\nIf you employ hagelslag in your research, please acknowledge its use with the following citations:\n\n    Gagne, D. J., A. McGovern, S. E. Haupt, R. A. Sobash, J. K. Williams, M. Xue, 2017: Storm-Based Probabilistic Hail\n    Forecasting with Machine Learning Applied to Convection-Allowing Ensembles, Wea. Forecasting, 32, 1819-1840. \n    https://doi.org/10.1175/WAF-D-17-0010.1. \n    \n    Gagne II, D. J., A. McGovern, N. Snook, R. Sobash, J. Labriola, J. K. Williams, S. E. Haupt, and M. Xue, 2016: \n    Hagelslag: Scalable object-based severe weather analysis and forecasting. Proceedings of the Sixth Symposium on \n    Advances in Modeling and Analysis Using Python, New Orleans, LA, Amer. Meteor. Soc., 447.\n\nIf you discover any issues, please post them to the Github issue tracker page. Questions and comments should be sent to\ndjgagne at ou dot edu.\n\n### Requirements\n\nHagelslag is compatible with Python 3.6 or newer. Hagelslag is easiest to install with the help of the [Miniconda \nPython Distribution](https://docs.conda.io/en/latest/miniconda.html), but it should work with other\nPython setups as well. Hagelslag requires the following packages and recommends the following versions:\n\n* numpy \u003e= 1.10\n* scipy \u003e= 0.15\n* matplotlib \u003e= 1.4\n* scikit-learn \u003e= 0.16\n* pandas \u003e= 0.15\n* arrow \u003e= 0.8.0\n* pyproj\n* netCDF4-python\n* xarray\n* jupyter\n* ncepgrib2\n* pygrib\n* cython\n* pip\n* sphinx\n* mock\n\nInstall dependencies with the following commands:\n```\ngit clone https://github.com/djgagne/hagelslag.git\ncd ~/hagelslag\nconda env create -f environment.yml\nconda activate hagelslag\n```\n\n### Installation\nInstall the latest version of hagelslag with the following command from the top-level hagelslag directory (where setup.py\nis):\n`pip install .`\n\n\nHagelslag will install the libraries in site-packages and will also install 3 applications into the `bin` directory\nof your Python installation.\n\n### Use\nA Jupyter notebook is located in the demos directory that showcases the functionality of the package. For larger scale \nuse, 3 scripts are provided in the bin directory. \n\n* `hsdata` performs object tracking and matching as well as data processing.\n* `hsfore` trains and applies machine learning models.\n* `hseval` performs forecast verification.\n\nAll scripts take input from a config file. The config file should be valid Python code and contain a dictionary called\nconfig. Custom machine learning models and parameters should be contained within the config files. Examples of them can\nbe found in the config directory.\n\n### Documentation\nAPI Documentation is available [here](http://hagelslag.readthedocs.io/en/latest/).\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1175/WAF-D-17-0010.1"],"works":{"https://doi.org/10.1175/WAF-D-17-0010.1":{"id":"https://openalex.org/W2743153755","doi":"https://doi.org/10.1175/waf-d-17-0010.1","title":"Storm-Based Probabilistic Hail Forecasting with Machine Learning Applied to Convection-Allowing Ensembles","display_name":"Storm-Based Probabilistic Hail Forecasting with Machine Learning Applied to Convection-Allowing Ensembles","publication_year":2017,"publication_date":"2017-09-22","ids":{"openalex":"https://openalex.org/W2743153755","doi":"https://doi.org/10.1175/waf-d-17-0010.1","mag":"2743153755"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1175/waf-d-17-0010.1","pdf_url":null,"source":{"id":"https://openalex.org/S203100778","display_name":"Weather and Forecasting","issn_l":"0882-8156","issn":["0882-8156","1520-0434"],"is_oa":false,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320260","host_organization_name":"American Meteorological Society","host_organization_lineage":["https://openalex.org/P4310320260"],"host_organization_lineage_names":["American Meteorological Society"],"type":"journal"},"license":"unspecified-oa","version":"publishedVersion","is_accepted":true,"is_published":true},"type":"article","type_crossref":"journal-article","open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://doi.org/10.1175/waf-d-17-0010.1","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5013616568","display_name":"David John Gagne","orcid":"https://orcid.org/0000-0002-0469-2740"},"institutions":[{"id":"https://openalex.org/I8692664","display_name":"University of Oklahoma","ror":"https://ror.org/02aqsxs83","country_code":"US","type":"education","lineage":["https://openalex.org/I8692664"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"David John Gagne","raw_affiliation_string":"Center for Analysis and Prediction of Storms and School of Meteorology, University of Oklahoma, Norman, Oklahoma","raw_affiliation_strings":["Center for Analysis and Prediction of Storms and School of Meteorology, University of Oklahoma, Norman, Oklahoma"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5070181594","display_name":"Amy McGovern","orcid":"https://orcid.org/0000-0001-6675-7119"},"institutions":[{"id":"https://openalex.org/I8692664","display_name":"University of Oklahoma","ror":"https://ror.org/02aqsxs83","country_code":"US","type":"education","lineage":["https://openalex.org/I8692664"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Amy McGovern","raw_affiliation_string":"School of Computer Science, University of Oklahoma, Norman, Oklahoma","raw_affiliation_strings":["School of Computer Science, University of Oklahoma, Norman, Oklahoma"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5075139751","display_name":"Sue Ellen Haupt","orcid":"https://orcid.org/0000-0003-1142-7184"},"institutions":[{"id":"https://openalex.org/I107766831","display_name":"National Center for Atmospheric Research","ror":"https://ror.org/05cvfcr44","country_code":"US","type":"facility","lineage":["https://openalex.org/I107766831","https://openalex.org/I2799356940"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sue Ellen Haupt","raw_affiliation_string":"National Center for Atmospheric Research, Boulder, Colorado","raw_affiliation_strings":["National Center for Atmospheric Research, Boulder, Colorado"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5083160107","display_name":"Ryan A. Sobash","orcid":null},"institutions":[{"id":"https://openalex.org/I107766831","display_name":"National Center for Atmospheric Research","ror":"https://ror.org/05cvfcr44","country_code":"US","type":"facility","lineage":["https://openalex.org/I107766831","https://openalex.org/I2799356940"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ryan A. Sobash","raw_affiliation_string":"National Center for Atmospheric Research, Boulder, Colorado","raw_affiliation_strings":["National Center for Atmospheric Research, Boulder, Colorado"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5044240773","display_name":"John K. Williams","orcid":null},"institutions":[{"id":"https://openalex.org/I4210095787","display_name":"NOAA National Weather Service","ror":"https://ror.org/00tgqzw13","country_code":"US","type":"government","lineage":["https://openalex.org/I1308126019","https://openalex.org/I1343035065","https://openalex.org/I4210095787"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"John K. Williams","raw_affiliation_string":"The Weather Company, Andover, Massachusetts","raw_affiliation_strings":["The Weather Company, Andover, Massachusetts"]},{"author_position":"last","author":{"id":"https://openalex.org/A5001931607","display_name":"Ming Xue","orcid":"https://orcid.org/0000-0003-1976-3238"},"institutions":[{"id":"https://openalex.org/I8692664","display_name":"University of Oklahoma","ror":"https://ror.org/02aqsxs83","country_code":"US","type":"education","lineage":["https://openalex.org/I8692664"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ming Xue","raw_affiliation_string":"Center for Analysis and Prediction of Storms and School of Meteorology, University of Oklahoma, Norman, Oklahoma","raw_affiliation_strings":["Center for Analysis and Prediction of Storms and School of Meteorology, University of Oklahoma, Norman, Oklahoma"]}],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"has_fulltext":true,"fulltext_origin":"ngrams","cited_by_count":100,"cited_by_percentile_year":{"min":98,"max":99},"biblio":{"volume":"32","issue":"5","first_page":"1819","last_page":"1840"},"is_retracted":false,"is_paratext":false,"keywords":[{"keyword":"probabilistic hail forecasting","score":0.8451},{"keyword":"ensembles","score":0.416},{"keyword":"machine learning","score":0.3798},{"keyword":"storm-based","score":0.25},{"keyword":"convection-allowing","score":0.25}],"concepts":[{"id":"https://openalex.org/C105306849","wikidata":"https://www.wikidata.org/wiki/Q81054","display_name":"Storm","level":2,"score":0.7222778},{"id":"https://openalex.org/C153294291","wikidata":"https://www.wikidata.org/wiki/Q25261","display_name":"Meteorology","level":1,"score":0.6746455},{"id":"https://openalex.org/C147947694","wikidata":"https://www.wikidata.org/wiki/Q837552","display_name":"Numerical weather prediction","level":2,"score":0.65612525},{"id":"https://openalex.org/C80316258","wikidata":"https://www.wikidata.org/wiki/Q2857578","display_name":"Thunderstorm","level":2,"score":0.63831514},{"id":"https://openalex.org/C554190296","wikidata":"https://www.wikidata.org/wiki/Q47528","display_name":"Radar","level":2,"score":0.62292624},{"id":"https://openalex.org/C192932206","wikidata":"https://www.wikidata.org/wiki/Q16951299","display_name":"Convective storm detection","level":3,"score":0.57967997},{"id":"https://openalex.org/C49937458","wikidata":"https://www.wikidata.org/wiki/Q2599292","display_name":"Probabilistic logic","level":2,"score":0.5528172},{"id":"https://openalex.org/C122282355","wikidata":"https://www.wikidata.org/wiki/Q7246855","display_name":"Probabilistic forecasting","level":3,"score":0.526017},{"id":"https://openalex.org/C21001229","wikidata":"https://www.wikidata.org/wiki/Q182868","display_name":"Weather forecasting","level":2,"score":0.49713066},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.47444212},{"id":"https://openalex.org/C170061395","wikidata":"https://www.wikidata.org/wiki/Q5468164","display_name":"Forecast skill","level":2,"score":0.47204053},{"id":"https://openalex.org/C2781013037","wikidata":"https://www.wikidata.org/wiki/Q1433331","display_name":"Nowcasting","level":2,"score":0.46487144},{"id":"https://openalex.org/C39432304","wikidata":"https://www.wikidata.org/wiki/Q188847","display_name":"Environmental science","level":0,"score":0.43880165},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.4180525},{"id":"https://openalex.org/C187460315","wikidata":"https://www.wikidata.org/wiki/Q741507","display_name":"Severe weather","level":3,"score":0.41687083},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.32264435},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.104378045},{"id":"https://openalex.org/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.1175/waf-d-17-0010.1","pdf_url":null,"source":{"id":"https://openalex.org/S203100778","display_name":"Weather and Forecasting","issn_l":"0882-8156","issn":["0882-8156","1520-0434"],"is_oa":false,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320260","host_organization_name":"American Meteorological Society","host_organization_lineage":["https://openalex.org/P4310320260"],"host_organization_lineage_names":["American Meteorological Society"],"type":"journal"},"license":"unspecified-oa","version":"publishedVersion","is_accepted":true,"is_published":true}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1175/waf-d-17-0010.1","pdf_url":null,"source":{"id":"https://openalex.org/S203100778","display_name":"Weather and Forecasting","issn_l":"0882-8156","issn":["0882-8156","1520-0434"],"is_oa":false,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320260","host_organization_name":"American Meteorological Society","host_organization_lineage":["https://openalex.org/P4310320260"],"host_organization_lineage_names":["American Meteorological Society"],"type":"journal"},"license":"unspecified-oa","version":"publishedVersion","is_accepted":true,"is_published":true},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/13","display_name":"Climate action","score":0.71}],"grants":[{"funder":"https://openalex.org/F4320332181","funder_display_name":"National Oceanic and Atmospheric Administration","award_id":"DOC-NOAA NA13NWS4680001"},{"funder":"https://openalex.org/F4320337402","funder_display_name":"Division of Atmospheric and Geospace Sciences","award_id":"AGS-1261776"}],"referenced_works_count":43,"referenced_works":["https://openalex.org/W1563699340","https://openalex.org/W1974680387","https://openalex.org/W1975515317","https://openalex.org/W1985064207","https://openalex.org/W1985621603","https://openalex.org/W1999070801","https://openalex.org/W1999697113","https://openalex.org/W2010398575","https://openalex.org/W2018246977","https://openalex.org/W2022085144","https://openalex.org/W2022545409","https://openalex.org/W2023778504","https://openalex.org/W2028979275","https://openalex.org/W2030386161","https://openalex.org/W2038485348","https://openalex.org/W2038627295","https://openalex.org/W2038742869","https://openalex.org/W2040017785","https://openalex.org/W2059332606","https://openalex.org/W2070158856","https://openalex.org/W2077360464","https://openalex.org/W2078451609","https://openalex.org/W2080846827","https://openalex.org/W2083078345","https://openalex.org/W2098702616","https://openalex.org/W2104484944","https://openalex.org/W2114883075","https://openalex.org/W2116519171","https://openalex.org/W2117620267","https://openalex.org/W2122000057","https://openalex.org/W2122825543","https://openalex.org/W2126512096","https://openalex.org/W2139688465","https://openalex.org/W2141461755","https://openalex.org/W2158158078","https://openalex.org/W2165223154","https://openalex.org/W2189951138","https://openalex.org/W2255717465","https://openalex.org/W2510977644","https://openalex.org/W2558593184","https://openalex.org/W2888329822","https://openalex.org/W2911964244","https://openalex.org/W2913340405"],"related_works":["https://openalex.org/W4323043499","https://openalex.org/W4376140660","https://openalex.org/W4383668280","https://openalex.org/W4322001589","https://openalex.org/W4385740952","https://openalex.org/W1971891908","https://openalex.org/W2392778080","https://openalex.org/W2802190565","https://openalex.org/W2797123029","https://openalex.org/W2160434530"],"ngrams_url":"https://api.openalex.org/works/W2743153755/ngrams","abstract_inverted_index":{"Abstract":[0],"Forecasting":[1],"severe":[2,219],"hail":[3,26,35,80,118,126,163,167,195],"accurately":[4],"requires":[5],"predicting":[6,217],"how":[7],"well":[8],"atmospheric":[9],"conditions":[10,141],"support":[11],"the":[12,16,22,32,87,121,124,140,143,157,165,177,189],"development":[13],"of":[14,18,25,89,123,131,142,159],"thunderstorms,":[15],"growth":[17],"large":[19],"hail,":[20],"and":[21,46,65,95,105,120,139,164,188,213,220],"minimal":[23],"loss":[24],"mass":[27],"to":[28,59,70,85,116,151,155,193],"melting":[29],"before":[30],"reaching":[31],"surface.":[33],"Existing":[34],"forecasting":[36,81,196],"techniques":[37],"incorporate":[38],"information":[39,135,154],"about":[40,136],"these":[41],"processes":[42],"from":[43,176],"proximity":[44],"soundings":[45],"numerical":[47,62],"weather":[48],"prediction":[49],"models,":[50],"but":[51],"they":[52],"make":[53],"many":[54],"simplifying":[55],"assumptions,":[56],"are":[57,66,111,149,181,191],"sensitive":[58],"differences":[60],"in":[61,101],"model":[63,103],"configuration,":[64],"often":[67],"not":[68],"calibrated":[69],"observations.":[71],"In":[72],"this":[73],"paper":[74],"a":[75,160,203],"storm-based":[76],"probabilistic":[77],"machine":[78,178,199],"learning":[79,147,179,200],"method":[82],"is":[83],"developed":[84],"overcome":[86],"deficiencies":[88],"existing":[90],"methods.":[91,197],"An":[92],"object":[93],"identification":[94],"tracking":[96],"algorithm":[97],"locates":[98],"potential":[99],"hailstorms":[100],"convection-allowing":[102,185],"output":[104],"gridded":[106],"radar":[107],"data.":[108],"Forecast":[109],"storms":[110,115,133],"matched":[112],"with":[113],"observed":[114],"determine":[117],"occurrence":[119],"parameters":[122,170],"radar-estimated":[125,166],"size":[127,168],"distribution.":[128],"The":[129,198],"database":[130],"forecast":[132,173],"contains":[134],"storm":[137,161],"properties":[138],"prestorm":[144],"environment.":[145],"Machine":[146],"models":[148,180],"used":[150],"synthesize":[152],"that":[153],"predict":[156],"probability":[158,211],"producing":[162],"distribution":[169],"for":[171,216],"each":[172],"storm.":[174],"Forecasts":[175],"produced":[182],"using":[183],"two":[184],"ensemble":[186],"systems":[187],"results":[190],"compared":[192],"other":[194],"forecasts":[201],"have":[202],"higher":[204],"critical":[205],"success":[206],"index":[207],"(CSI)":[208],"at":[209],"most":[210],"thresholds":[212],"greater":[214],"reliability":[215],"both":[218],"significant":[221],"hail.":[222]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W2743153755","counts_by_year":[{"year":2023,"cited_by_count":6},{"year":2022,"cited_by_count":18},{"year":2021,"cited_by_count":24},{"year":2020,"cited_by_count":19},{"year":2019,"cited_by_count":22},{"year":2018,"cited_by_count":9},{"year":2017,"cited_by_count":1}],"updated_date":"2023-12-17T20:58:34.166041","created_date":"2017-08-17"}},"citation_counts":{"https://doi.org/10.1175/WAF-D-17-0010.1":99},"total_citations":99,"keywords_from_contributors":["atmospheric-science"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/46130","html_url":"https://ost.ecosyste.ms/projects/46130"}