{"id":692,"name":"OceanSpy","description":"An open source and user-friendly Python package that enables scientists and interested amateurs to analyze and visualize ocean model datasets.","url":"https://github.com/hainegroup/oceanspy","last_synced_at":"2026-06-13T09:30:26.253Z","repository":{"id":37808590,"uuid":"128723961","full_name":"hainegroup/oceanspy","owner":"hainegroup","description":"A Python package to facilitate ocean model data analysis and visualization.","archived":false,"fork":false,"pushed_at":"2026-06-08T04:32:26.000Z","size":38047,"stargazers_count":118,"open_issues_count":17,"forks_count":34,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-06-08T07:03:35.788Z","etag":null,"topics":["ocean","oceanography","physical-oceanography"],"latest_commit_sha":null,"homepage":"https://oceanspy.readthedocs.io","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/hainegroup.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-04-09T06:20:24.000Z","updated_at":"2026-05-05T19:14:31.000Z","dependencies_parsed_at":"2026-05-22T23:00:46.602Z","dependency_job_id":null,"html_url":"https://github.com/hainegroup/oceanspy","commit_stats":{"total_commits":1084,"total_committers":16,"mean_commits":67.75,"dds":0.5571955719557196,"last_synced_commit":"734da7104667010943b3246b5a831cbff96a4f8f"},"previous_names":["malmans2/oceanspy"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/hainegroup/oceanspy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/sbom","scorecard":{"id":452983,"data":{"date":"2025-08-11","repo":{"name":"github.com/hainegroup/oceanspy","commit":"7a07be4a0beb4d32d785635cacfe6ae873c070e7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Maintained","score":4,"reason":"4 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 2/5 approved changesets -- score normalized to 4","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/pypi.yml:1","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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:44","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:45","Warn: pipCommand not pinned by hash: .github/workflows/pypi.yml:36","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   1 out of   4 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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi.yml:13"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-19T08:41:24.141Z","repository_id":37808590,"created_at":"2025-08-19T08:41:24.141Z","updated_at":"2025-08-19T08:41:24.141Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34118757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"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":"hainegroup","name":"Thomas Haine Research Group","uuid":"61514340","kind":"organization","description":"Ocean circulation and dynamics","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/61514340?v=4","repositories_count":8,"last_synced_at":"2024-04-16T01:11:21.730Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/hainegroup","funding_links":[],"total_stars":124,"followers":12,"following":0,"created_at":"2022-11-15T22:59:55.489Z","updated_at":"2024-04-16T01:11:23.685Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup/repositories"},"packages":[{"id":2824298,"name":"oceanspy","ecosystem":"pypi","description":"A Python package to facilitate ocean model data analysis and visualization.","homepage":null,"licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/hainegroup/oceanspy","keywords_array":[],"namespace":null,"versions_count":20,"first_release_published_at":"2018-04-09T19:24:15.000Z","latest_release_published_at":"2023-12-12T20:41:54.000Z","latest_release_number":"0.3.5","last_synced_at":"2026-06-11T19:02:29.762Z","created_at":"2022-04-10T11:47:51.155Z","updated_at":"2026-06-11T19:02:29.762Z","registry_url":"https://pypi.org/project/oceanspy/","install_command":"pip install oceanspy --index-url https://pypi.org/simple","documentation_url":"https://oceanspy.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.9","Topic :: Scientific/Engineering"],"normalized_name":"oceanspy","project_status":null},"repo_metadata":{"id":37808590,"uuid":"128723961","full_name":"hainegroup/oceanspy","owner":"hainegroup","description":"A Python package to facilitate ocean model data analysis and visualization.","archived":false,"fork":false,"pushed_at":"2024-10-23T15:44:14.000Z","size":37926,"stargazers_count":102,"open_issues_count":12,"forks_count":32,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-10-29T21:01:49.571Z","etag":null,"topics":["ocean","oceanography","physical-oceanography"],"latest_commit_sha":null,"homepage":"https://oceanspy.readthedocs.io","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/hainegroup.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-09T06:20:24.000Z","updated_at":"2024-10-23T15:44:19.000Z","dependencies_parsed_at":"2023-09-21T19:45:20.182Z","dependency_job_id":"4f3cb1ff-7fe8-4944-9523-6f88a335a156","html_url":"https://github.com/hainegroup/oceanspy","commit_stats":{"total_commits":1074,"total_committers":16,"mean_commits":67.125,"dds":0.553072625698324,"last_synced_commit":"3786837bf2c8f2a8c738af8e4254cac77da161b6"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222132607,"owners_count":16936614,"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":"hainegroup","name":"Thomas Haine Research Group","uuid":"61514340","kind":"organization","description":"Ocean circulation and dynamics","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/61514340?v=4","repositories_count":8,"last_synced_at":"2024-04-16T01:11:21.730Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/hainegroup","funding_links":[],"total_stars":124,"followers":12,"following":0,"created_at":"2022-11-15T22:59:55.489Z","updated_at":"2024-04-16T01:11:23.685Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup/repositories"},"tags":[{"name":"v0.3.5","sha":"50c85cb86a3538797cecbe33dae0ac9edb18de41","kind":"commit","published_at":"2023-12-05T21:37:20.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.5","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"50e2d72aa7d0a6d29c35dac6971ae43cc7be2e04","kind":"commit","published_at":"2023-04-04T01:27:27.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.4","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"894562d27293d974f72673dc4328166840611a1b","kind":"commit","published_at":"2023-02-07T01:41:52.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.3","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"29b38c268edfc132f9bc52e11ecbc0eee50f62ff","kind":"commit","published_at":"2022-12-30T02:10:12.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.2","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"4273f2afe6d872134e7e7bc80d68e9a38ee641a0","kind":"commit","published_at":"2022-12-13T19:59:19.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.1","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"187247285c585b647137e35e38e20872aa6f86b2","kind":"commit","published_at":"2022-12-13T09:04:35.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"b8afe7e442abe336e98a5deae1be73aad04c5fcb","kind":"tag","published_at":"2020-10-17T12:58:41.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.2.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"02604e4be7915132e8f6cec6174f608ef8f09e06","kind":"tag","published_at":"2019-07-06T17:43:20.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.1.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.1.0/manifests"},{"name":"v0.0.12","sha":"5d83d04f5d07fe257af4d56610d38c6484a5b863","kind":"tag","published_at":"2019-05-24T20:02:00.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.12","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"2c0f17cbc42d17750ad2f8d690e019a5eb695d60","kind":"commit","published_at":"2019-03-11T18:29:39.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.11","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"c2b703bb441b306552e3786a02b71f31e7a74b79","kind":"commit","published_at":"2018-08-09T15:34:34.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.10","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"7f388a3df2fcbaec856334948f2de7813a0e09ff","kind":"commit","published_at":"2018-08-07T22:37:29.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.9","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"2d7e1dc711ab8020d236433fc1c83d479aa34db8","kind":"commit","published_at":"2018-08-07T21:53:46.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.8","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"b6224c9e9f324cb3def9d10aa491a74c8d431b57","kind":"commit","published_at":"2018-08-07T19:43:41.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.7","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"22c227a51e4a910c1fd1285f8ddf74c86fd00d1a","kind":"commit","published_at":"2018-08-07T18:39:23.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.6","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"136bffd8eab540a041be81463cd51f6f488b10cf","kind":"commit","published_at":"2018-08-07T18:39:10.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.5","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"583e4c8a419dc1de13e8bf921810749601f70dae","kind":"commit","published_at":"2018-04-11T22:26:14.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.4","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"38fcfd2f95a7628ea466bc2b4354b383634e6249","kind":"commit","published_at":"2018-04-11T22:03:22.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.3","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"27106198846a4613414403d0002aad7a5590d074","kind":"commit","published_at":"2018-04-09T19:53:02.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.2","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"b7e89cf67b9868f31213b4e4ac59380664bb38fa","kind":"commit","published_at":"2018-04-09T19:06:58.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.1","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2024-10-29T23:42:05.011Z","dependent_packages_count":0,"downloads":159,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":23.194280998303558,"dependent_repos_count":21.63438025370625,"dependent_packages_count":10.05962490376147,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":18.296095385257093},"purl":"pkg:pypi/oceanspy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/oceanspy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/oceanspy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/oceanspy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T20:03:25.918Z","issues_count":149,"pull_requests_count":301,"avg_time_to_close_issue":6799272.0218978105,"avg_time_to_close_pull_request":582707.9866666667,"issues_closed_count":136,"pull_requests_closed_count":300,"pull_request_authors_count":12,"issue_authors_count":18,"avg_comments_per_issue":3.597315436241611,"avg_comments_per_pull_request":2.009966777408638,"merged_pull_requests_count":275,"bot_issues_count":0,"bot_pull_requests_count":95,"past_year_issues_count":17,"past_year_pull_requests_count":42,"past_year_avg_time_to_close_issue":2999963.6666666665,"past_year_avg_time_to_close_pull_request":784370.9024390244,"past_year_issues_closed_count":11,"past_year_pull_requests_closed_count":41,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":1.619047619047619,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":30,"past_year_merged_pull_requests_count":39,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/issues","maintainers":[{"login":"malmans2","count":128,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/malmans2"},{"login":"Mikejmnez","count":109,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"ThomasHaine","count":30,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"},{"login":"asiddi24","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asiddi24"},{"login":"MaceKuailv","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaceKuailv"},{"login":"renskegelderloos","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/renskegelderloos"}],"active_maintainers":[{"login":"Mikejmnez","count":21,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"ThomasHaine","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/oceanspy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/oceanspy/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/oceanspy/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/oceanspy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/oceanspy/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/oceanspy/codemeta","maintainers":[{"uuid":"malmans2","login":"malmans2","name":null,"email":null,"url":null,"packages_count":7,"html_url":"https://pypi.org/user/malmans2/","role":null,"created_at":"2023-02-24T20:10:26.433Z","updated_at":"2023-02-24T20:10:26.433Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/malmans2/packages"},{"uuid":"Mikejmnez","login":"Mikejmnez","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/Mikejmnez/","role":null,"created_at":"2023-02-24T20:10:26.458Z","updated_at":"2023-02-24T20:10:26.458Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Mikejmnez/packages"},{"uuid":"ThomasHaine","login":"ThomasHaine","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/ThomasHaine/","role":null,"created_at":"2023-02-24T20:10:26.467Z","updated_at":"2023-02-24T20:10:26.467Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/ThomasHaine/packages"},{"uuid":"WJiang","login":"WJiang","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/WJiang/","role":null,"created_at":"2023-02-24T20:10:26.478Z","updated_at":"2023-02-24T20:10:26.478Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/WJiang/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":883834,"maintainers_count":378429,"namespaces_count":0,"keywords_count":289179,"github":"pypi","metadata":{"funded_packages_count":54301},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-06-10T05:13:28.296Z","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"}},{"id":11733102,"name":"github.com/hainegroup/oceanspy","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/hainegroup/oceanspy","keywords_array":[],"namespace":null,"versions_count":20,"first_release_published_at":"2018-04-09T19:06:58.000Z","latest_release_published_at":"2023-12-05T21:37:20.000Z","latest_release_number":"v0.3.5","last_synced_at":"2026-06-11T19:02:32.479Z","created_at":"2025-06-05T11:14:32.909Z","updated_at":"2026-06-11T19:02:32.479Z","registry_url":"https://pkg.go.dev/github.com/hainegroup/oceanspy","install_command":"go get github.com/hainegroup/oceanspy","documentation_url":"https://pkg.go.dev/github.com/hainegroup/oceanspy#section-documentation","metadata":{},"repo_metadata":{"id":37808590,"uuid":"128723961","full_name":"hainegroup/oceanspy","owner":"hainegroup","description":"A Python package to facilitate ocean model data analysis and visualization.","archived":false,"fork":false,"pushed_at":"2025-10-13T19:11:33.000Z","size":38015,"stargazers_count":114,"open_issues_count":18,"forks_count":34,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-10-28T04:53:56.188Z","etag":null,"topics":["ocean","oceanography","physical-oceanography"],"latest_commit_sha":null,"homepage":"https://oceanspy.readthedocs.io","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/hainegroup.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-04-09T06:20:24.000Z","updated_at":"2025-10-22T07:23:46.000Z","dependencies_parsed_at":"2023-09-21T19:45:20.182Z","dependency_job_id":"4f3cb1ff-7fe8-4944-9523-6f88a335a156","html_url":"https://github.com/hainegroup/oceanspy","commit_stats":{"total_commits":1084,"total_committers":16,"mean_commits":67.75,"dds":0.5571955719557196,"last_synced_commit":"734da7104667010943b3246b5a831cbff96a4f8f"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/hainegroup/oceanspy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/sbom","scorecard":{"id":452983,"data":{"date":"2025-08-11","repo":{"name":"github.com/hainegroup/oceanspy","commit":"7a07be4a0beb4d32d785635cacfe6ae873c070e7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Maintained","score":4,"reason":"4 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 2/5 approved changesets -- score normalized to 4","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/pypi.yml:1","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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:44","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:45","Warn: pipCommand not pinned by hash: .github/workflows/pypi.yml:36","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   1 out of   4 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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi.yml:13"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-19T08:41:24.141Z","repository_id":37808590,"created_at":"2025-08-19T08:41:24.141Z","updated_at":"2025-08-19T08:41:24.141Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281459735,"owners_count":26505224,"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","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"hainegroup","name":"Thomas Haine Research Group","uuid":"61514340","kind":"organization","description":"Ocean circulation and dynamics","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/61514340?v=4","repositories_count":8,"last_synced_at":"2024-04-16T01:11:21.730Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/hainegroup","funding_links":[],"total_stars":124,"followers":12,"following":0,"created_at":"2022-11-15T22:59:55.489Z","updated_at":"2024-04-16T01:11:23.685Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup/repositories"},"tags":[{"name":"v0.3.5","sha":"50c85cb86a3538797cecbe33dae0ac9edb18de41","kind":"commit","published_at":"2023-12-05T21:37:20.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.5","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"50e2d72aa7d0a6d29c35dac6971ae43cc7be2e04","kind":"commit","published_at":"2023-04-04T01:27:27.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.4","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"894562d27293d974f72673dc4328166840611a1b","kind":"commit","published_at":"2023-02-07T01:41:52.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.3","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"29b38c268edfc132f9bc52e11ecbc0eee50f62ff","kind":"commit","published_at":"2022-12-30T02:10:12.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.2","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"4273f2afe6d872134e7e7bc80d68e9a38ee641a0","kind":"commit","published_at":"2022-12-13T19:59:19.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.1","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"187247285c585b647137e35e38e20872aa6f86b2","kind":"commit","published_at":"2022-12-13T09:04:35.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"b8afe7e442abe336e98a5deae1be73aad04c5fcb","kind":"tag","published_at":"2020-10-17T12:58:41.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.2.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"02604e4be7915132e8f6cec6174f608ef8f09e06","kind":"tag","published_at":"2019-07-06T17:43:20.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.1.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.1.0/manifests"},{"name":"v0.0.12","sha":"5d83d04f5d07fe257af4d56610d38c6484a5b863","kind":"tag","published_at":"2019-05-24T20:02:00.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.12","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"2c0f17cbc42d17750ad2f8d690e019a5eb695d60","kind":"commit","published_at":"2019-03-11T18:29:39.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.11","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"c2b703bb441b306552e3786a02b71f31e7a74b79","kind":"commit","published_at":"2018-08-09T15:34:34.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.10","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"7f388a3df2fcbaec856334948f2de7813a0e09ff","kind":"commit","published_at":"2018-08-07T22:37:29.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.9","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"2d7e1dc711ab8020d236433fc1c83d479aa34db8","kind":"commit","published_at":"2018-08-07T21:53:46.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.8","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"b6224c9e9f324cb3def9d10aa491a74c8d431b57","kind":"commit","published_at":"2018-08-07T19:43:41.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.7","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"22c227a51e4a910c1fd1285f8ddf74c86fd00d1a","kind":"commit","published_at":"2018-08-07T18:39:23.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.6","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"136bffd8eab540a041be81463cd51f6f488b10cf","kind":"commit","published_at":"2018-08-07T18:39:10.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.5","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"583e4c8a419dc1de13e8bf921810749601f70dae","kind":"commit","published_at":"2018-04-11T22:26:14.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.4","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"38fcfd2f95a7628ea466bc2b4354b383634e6249","kind":"commit","published_at":"2018-04-11T22:03:22.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.3","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"27106198846a4613414403d0002aad7a5590d074","kind":"commit","published_at":"2018-04-09T19:53:02.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.2","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"b7e89cf67b9868f31213b4e4ac59380664bb38fa","kind":"commit","published_at":"2018-04-09T19:06:58.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.1","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2025-10-28T15:16:11.696Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/hainegroup/oceanspy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/hainegroup/oceanspy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/hainegroup/oceanspy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/hainegroup/oceanspy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-13T20:34:05.464Z","issues_count":150,"pull_requests_count":363,"avg_time_to_close_issue":6834197.96969697,"avg_time_to_close_pull_request":642533.459770115,"issues_closed_count":132,"pull_requests_closed_count":348,"pull_request_authors_count":12,"issue_authors_count":20,"avg_comments_per_issue":3.433333333333333,"avg_comments_per_pull_request":1.7878787878787878,"merged_pull_requests_count":317,"bot_issues_count":0,"bot_pull_requests_count":148,"past_year_issues_count":4,"past_year_pull_requests_count":37,"past_year_avg_time_to_close_issue":12622.0,"past_year_avg_time_to_close_pull_request":1121389.2222222222,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":27,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":0.75,"past_year_avg_comments_per_pull_request":0.6486486486486487,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":33,"past_year_merged_pull_requests_count":23,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/issues","maintainers":[{"login":"malmans2","count":128,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/malmans2"},{"login":"Mikejmnez","count":117,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"ThomasHaine","count":31,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"},{"login":"asiddi24","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asiddi24"},{"login":"MaceKuailv","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaceKuailv"},{"login":"renskegelderloos","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/renskegelderloos"}],"active_maintainers":[{"login":"Mikejmnez","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"MaceKuailv","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaceKuailv"},{"login":"ThomasHaine","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fhainegroup%2Foceanspy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fhainegroup%2Foceanspy/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fhainegroup%2Foceanspy/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fhainegroup%2Foceanspy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fhainegroup%2Foceanspy/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fhainegroup%2Foceanspy/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2167447,"maintainers_count":0,"namespaces_count":792747,"keywords_count":113213,"github":"golang","metadata":{"funded_packages_count":53976},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-06-10T05:03:23.672Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":5299864,"name":"oceanspy","ecosystem":"conda","description":null,"homepage":"https://github.com/hainegroup/oceanspy","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/hainegroup/oceanspy","keywords_array":[],"namespace":null,"versions_count":4,"first_release_published_at":"2019-03-15T11:05:59.000Z","latest_release_published_at":"2020-10-18T14:48:58.000Z","latest_release_number":"0.2.0","last_synced_at":"2026-03-27T14:10:18.338Z","created_at":"2022-10-03T16:07:35.172Z","updated_at":"2026-03-27T14:28:22.359Z","registry_url":"https://anaconda.org/conda-forge/oceanspy","install_command":"conda install -c conda-forge oceanspy","documentation_url":null,"metadata":{},"repo_metadata":{"id":37808590,"uuid":"128723961","full_name":"hainegroup/oceanspy","owner":"hainegroup","description":"A Python package to facilitate ocean model data analysis and visualization.","archived":false,"fork":false,"pushed_at":"2025-10-13T19:11:33.000Z","size":38015,"stargazers_count":114,"open_issues_count":18,"forks_count":34,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-10-28T04:53:56.188Z","etag":null,"topics":["ocean","oceanography","physical-oceanography"],"latest_commit_sha":null,"homepage":"https://oceanspy.readthedocs.io","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/hainegroup.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-04-09T06:20:24.000Z","updated_at":"2025-10-22T07:23:46.000Z","dependencies_parsed_at":"2023-09-21T19:45:20.182Z","dependency_job_id":"4f3cb1ff-7fe8-4944-9523-6f88a335a156","html_url":"https://github.com/hainegroup/oceanspy","commit_stats":{"total_commits":1084,"total_committers":16,"mean_commits":67.75,"dds":0.5571955719557196,"last_synced_commit":"734da7104667010943b3246b5a831cbff96a4f8f"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/hainegroup/oceanspy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/sbom","scorecard":{"id":452983,"data":{"date":"2025-08-11","repo":{"name":"github.com/hainegroup/oceanspy","commit":"7a07be4a0beb4d32d785635cacfe6ae873c070e7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5,"checks":[{"name":"Maintained","score":4,"reason":"4 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":4,"reason":"Found 2/5 approved changesets -- score normalized to 4","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/pypi.yml:1","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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yaml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/ci.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pypi.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pypi.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/hainegroup/oceanspy/pypi.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:44","Warn: pipCommand not pinned by hash: .github/workflows/ci.yaml:45","Warn: pipCommand not pinned by hash: .github/workflows/pypi.yml:36","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   1 out of   4 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":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/pypi.yml:13"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-19T08:41:24.141Z","repository_id":37808590,"created_at":"2025-08-19T08:41:24.141Z","updated_at":"2025-08-19T08:41:24.141Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281459735,"owners_count":26505224,"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","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"hainegroup","name":"Thomas Haine Research Group","uuid":"61514340","kind":"organization","description":"Ocean circulation and dynamics","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/61514340?v=4","repositories_count":8,"last_synced_at":"2024-04-16T01:11:21.730Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/hainegroup","funding_links":[],"total_stars":124,"followers":12,"following":0,"created_at":"2022-11-15T22:59:55.489Z","updated_at":"2024-04-16T01:11:23.685Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hainegroup/repositories"},"tags":[{"name":"v0.3.5","sha":"50c85cb86a3538797cecbe33dae0ac9edb18de41","kind":"commit","published_at":"2023-12-05T21:37:20.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.5","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.5/manifests"},{"name":"v0.3.4","sha":"50e2d72aa7d0a6d29c35dac6971ae43cc7be2e04","kind":"commit","published_at":"2023-04-04T01:27:27.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.4","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.4/manifests"},{"name":"v0.3.3","sha":"894562d27293d974f72673dc4328166840611a1b","kind":"commit","published_at":"2023-02-07T01:41:52.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.3","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.3/manifests"},{"name":"v0.3.2","sha":"29b38c268edfc132f9bc52e11ecbc0eee50f62ff","kind":"commit","published_at":"2022-12-30T02:10:12.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.2","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.2/manifests"},{"name":"v0.3.1","sha":"4273f2afe6d872134e7e7bc80d68e9a38ee641a0","kind":"commit","published_at":"2022-12-13T19:59:19.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.1","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.1/manifests"},{"name":"v0.3.0","sha":"187247285c585b647137e35e38e20872aa6f86b2","kind":"commit","published_at":"2022-12-13T09:04:35.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.3.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"b8afe7e442abe336e98a5deae1be73aad04c5fcb","kind":"tag","published_at":"2020-10-17T12:58:41.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.2.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"02604e4be7915132e8f6cec6174f608ef8f09e06","kind":"tag","published_at":"2019-07-06T17:43:20.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.1.0","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.1.0/manifests"},{"name":"v0.0.12","sha":"5d83d04f5d07fe257af4d56610d38c6484a5b863","kind":"tag","published_at":"2019-05-24T20:02:00.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.12","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.12","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.12","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.12/manifests"},{"name":"v0.0.11","sha":"2c0f17cbc42d17750ad2f8d690e019a5eb695d60","kind":"commit","published_at":"2019-03-11T18:29:39.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.11","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.11","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.11/manifests"},{"name":"v0.0.10","sha":"c2b703bb441b306552e3786a02b71f31e7a74b79","kind":"commit","published_at":"2018-08-09T15:34:34.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.10","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.10","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.10","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.10/manifests"},{"name":"v0.0.9","sha":"7f388a3df2fcbaec856334948f2de7813a0e09ff","kind":"commit","published_at":"2018-08-07T22:37:29.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.9","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.9","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.9/manifests"},{"name":"v0.0.8","sha":"2d7e1dc711ab8020d236433fc1c83d479aa34db8","kind":"commit","published_at":"2018-08-07T21:53:46.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.8","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.8/manifests"},{"name":"v0.0.7","sha":"b6224c9e9f324cb3def9d10aa491a74c8d431b57","kind":"commit","published_at":"2018-08-07T19:43:41.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.7","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.7/manifests"},{"name":"v0.0.6","sha":"22c227a51e4a910c1fd1285f8ddf74c86fd00d1a","kind":"commit","published_at":"2018-08-07T18:39:23.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.6","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"136bffd8eab540a041be81463cd51f6f488b10cf","kind":"commit","published_at":"2018-08-07T18:39:10.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.5","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"583e4c8a419dc1de13e8bf921810749601f70dae","kind":"commit","published_at":"2018-04-11T22:26:14.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.4","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"38fcfd2f95a7628ea466bc2b4354b383634e6249","kind":"commit","published_at":"2018-04-11T22:03:22.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.3","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"27106198846a4613414403d0002aad7a5590d074","kind":"commit","published_at":"2018-04-09T19:53:02.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.2","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.2/manifests"},{"name":"v0.0.1","sha":"b7e89cf67b9868f31213b4e4ac59380664bb38fa","kind":"commit","published_at":"2018-04-09T19:06:58.000Z","download_url":"https://codeload.github.com/hainegroup/oceanspy/tar.gz/v0.0.1","html_url":"https://github.com/hainegroup/oceanspy/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/hainegroup/oceanspy@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2026-03-27T14:28:22.321Z","dependent_packages_count":0,"downloads":27868,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":34.025455452957324,"dependent_packages_count":51.17544297479411,"stargazers_count":33.45645121038183,"forks_count":28.545046169203893,"average":36.80059895183429},"purl":"pkg:conda/oceanspy?repository_url=https://conda-forge.org","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/oceanspy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/oceanspy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/oceanspy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-13T20:34:05.464Z","issues_count":150,"pull_requests_count":363,"avg_time_to_close_issue":6834197.96969697,"avg_time_to_close_pull_request":642533.459770115,"issues_closed_count":132,"pull_requests_closed_count":348,"pull_request_authors_count":12,"issue_authors_count":20,"avg_comments_per_issue":3.433333333333333,"avg_comments_per_pull_request":1.7878787878787878,"merged_pull_requests_count":317,"bot_issues_count":0,"bot_pull_requests_count":148,"past_year_issues_count":4,"past_year_pull_requests_count":37,"past_year_avg_time_to_close_issue":12622.0,"past_year_avg_time_to_close_pull_request":1121389.2222222222,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":27,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":0.75,"past_year_avg_comments_per_pull_request":0.6486486486486487,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":33,"past_year_merged_pull_requests_count":23,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/issues","maintainers":[{"login":"malmans2","count":128,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/malmans2"},{"login":"Mikejmnez","count":117,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"ThomasHaine","count":31,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"},{"login":"asiddi24","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asiddi24"},{"login":"MaceKuailv","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaceKuailv"},{"login":"renskegelderloos","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/renskegelderloos"}],"active_maintainers":[{"login":"Mikejmnez","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"MaceKuailv","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaceKuailv"},{"login":"ThomasHaine","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/oceanspy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/oceanspy/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/oceanspy/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/oceanspy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/oceanspy/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages/oceanspy/codemeta","maintainers":[],"registry":{"name":"conda-forge.org","url":"https://conda-forge.org","ecosystem":"conda","default":false,"packages_count":20636,"maintainers_count":0,"namespaces_count":0,"keywords_count":13549,"github":"conda-forge","metadata":{"kind":"conda-forge","key":"CondaForge","api":"https://conda.anaconda.org","funded_packages_count":2269},"icon_url":"https://github.com/conda-forge.png","created_at":"2022-10-03T15:37:08.743Z","updated_at":"2026-06-10T05:18:51.687Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/conda-forge.org/namespaces"}}],"commits":{"id":33020,"full_name":"hainegroup/oceanspy","default_branch":"main","total_commits":1117,"total_committers":13,"total_bot_commits":119,"total_bot_committers":3,"mean_commits":85.92307692307692,"dds":0.5559534467323187,"past_year_total_commits":23,"past_year_total_committers":3,"past_year_total_bot_commits":17,"past_year_total_bot_committers":2,"past_year_mean_commits":7.666666666666667,"past_year_dds":0.6086956521739131,"last_synced_at":"2026-06-11T19:48:43.817Z","last_synced_commit":"576bf9066e8cc556c570cdb202201496dbf3daab","created_at":"2023-03-07T16:51:01.163Z","updated_at":"2026-06-11T19:48:02.993Z","committers":[{"name":"Miguel Jimenez-Urias","email":"mjimen17@jh.edu","login":"Mikejmnez","count":496},{"name":"malmans2","email":"mattia.almansi@jhu.edu","login":"malmans2","count":458},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":74},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":44},{"name":"asiddi24","email":"asiddi24@jhu.edu","login":"asiddi24","count":17},{"name":"ThomasHaine","email":"Thomas.Haine@jhu.edu","login":"ThomasHaine","count":8},{"name":"renskegelderloos","email":"rgelder2@jhu.edu","login":"renskegelderloos","count":8},{"name":"MaceKuailv","email":"52629492+MaceKuailv","login":"MaceKuailv","count":7},{"name":"dependabot-preview[bot]","email":"27856297+dependabot-preview[bot]","login":"dependabot-preview[bot]","count":1},{"name":"Sourav Barua","email":"sourav.shr6@gmail.com","login":"BaruaSourav","count":1},{"name":"Filipe","email":"ocefpaf@gmail.com","login":"ocefpaf","count":1},{"name":"malmans2","email":"mattia.almansi@gmail.com","login":null,"count":1},{"name":"Atousa Saberi","email":"atousa.saberi@jhu.edu","login":null,"count":1}],"past_year_committers":[{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":9},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":8},{"name":"Miguel Jimenez","email":"mjimenez@opendap.org","login":"Mikejmnez","count":6}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-12T00:00:28.150Z","repositories_count":6257649,"commits_count":882559042,"contributors_count":35077569,"owners_count":1165503,"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":"hainegroup/oceanspy","html_url":"https://github.com/hainegroup/oceanspy","last_synced_at":"2026-06-11T19:01:07.513Z","status":"active","issues_count":152,"pull_requests_count":380,"avg_time_to_close_issue":6834197.96969697,"avg_time_to_close_pull_request":679295.8005540166,"issues_closed_count":132,"pull_requests_closed_count":361,"pull_request_authors_count":12,"issue_authors_count":20,"avg_comments_per_issue":3.401315789473684,"avg_comments_per_pull_request":1.7473684210526317,"merged_pull_requests_count":328,"bot_issues_count":0,"bot_pull_requests_count":159,"past_year_issues_count":3,"past_year_pull_requests_count":29,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":1454332.7647058824,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":17,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.6666666666666666,"past_year_avg_comments_per_pull_request":0.6896551724137931,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":23,"past_year_merged_pull_requests_count":14,"created_at":"2023-05-09T10:36:33.927Z","updated_at":"2026-06-11T19:01:07.513Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/hainegroup%2Foceanspy/issues","issue_labels_count":{"enhancement":26,"bug":14,"Documentation":9,"dependencies":7,"good first issue":4,"question":4,"help wanted":2,"invalid":1},"pull_request_labels_count":{"dependencies":73,"github_actions":64,"enhancement":1},"issue_author_associations_count":{"COLLABORATOR":103,"MEMBER":28,"NONE":19,"CONTRIBUTOR":2},"pull_request_author_associations_count":{"CONTRIBUTOR":162,"COLLABORATOR":113,"MEMBER":100,"NONE":5},"issue_authors":{"Mikejmnez":51,"malmans2":28,"ThomasHaine":23,"MaceKuailv":11,"renskegelderloos":11,"asiddi24":8,"hooteoos-waltz":6,"rabernat":2,"ammedd":1,"junweihua":1,"shiprock-1583":1,"platipodium":1,"ocefpaf":1,"jdldeauna":1,"daanreijnders":1,"Nikon-V":1,"jbonil11":1,"robertlandlord":1,"jiand1219":1,"hedongzi2000":1},"pull_request_authors":{"malmans2":100,"pre-commit-ci[bot]":86,"Mikejmnez":75,"dependabot[bot]":72,"asiddi24":14,"ThomasHaine":9,"MaceKuailv":9,"renskegelderloos":7,"hooteoos-waltz":5,"ocefpaf":1,"BaruaSourav":1,"dependabot-preview[bot]":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-12T00:00:21.419Z","repositories_count":14792072,"issues_count":33173760,"pull_requests_count":109449987,"authors_count":11302601,"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":13,"github_actions":13,"enhancement":1},"past_year_issue_author_associations_count":{"COLLABORATOR":2,"NONE":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":23,"COLLABORATOR":6},"past_year_issue_authors":{"Mikejmnez":2,"shiprock-1583":1},"past_year_pull_request_authors":{"dependabot[bot]":13,"pre-commit-ci[bot]":10,"Mikejmnez":5,"ThomasHaine":1},"maintainers":[{"login":"malmans2","count":128,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/malmans2"},{"login":"Mikejmnez","count":124,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"ThomasHaine","count":32,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"},{"login":"asiddi24","count":22,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asiddi24"},{"login":"MaceKuailv","count":20,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MaceKuailv"},{"login":"renskegelderloos","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/renskegelderloos"}],"active_maintainers":[{"login":"Mikejmnez","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mikejmnez"},{"login":"ThomasHaine","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ThomasHaine"}]},"events":{"total":{"DeleteEvent":23,"PullRequestEvent":49,"ForkEvent":2,"IssuesEvent":7,"WatchEvent":11,"IssueCommentEvent":29,"PushEvent":42,"PullRequestReviewCommentEvent":1,"PullRequestReviewEvent":18,"CreateEvent":25},"last_year":{"DeleteEvent":11,"PullRequestEvent":21,"IssuesEvent":2,"WatchEvent":4,"IssueCommentEvent":9,"PushEvent":22,"PullRequestReviewEvent":7,"CreateEvent":12}},"keywords":["ocean","oceanography","physical-oceanography"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci.yaml","sha":null,"kind":"manifest","created_at":"2023-02-19T14:15:49.838Z","updated_at":"2023-02-19T14:15:49.838Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/.github/workflows/ci.yaml","dependencies":[{"id":7789777935,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7789777936,"package_name":"mamba-org/provision-with-micromamba","ecosystem":"actions","requirements":"v15","direct":true,"kind":"composite","optional":false},{"id":7789777937,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3.1.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pypi.yml","sha":null,"kind":"manifest","created_at":"2023-02-19T14:15:49.873Z","updated_at":"2023-02-19T14:15:49.873Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/.github/workflows/pypi.yml","dependencies":[{"id":7789777983,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7789777984,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7789777985,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-02-19T14:15:50.870Z","updated_at":"2023-02-19T14:15:50.870Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/pyproject.toml","dependencies":[{"id":7789784104,"package_name":"dask","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7789784106,"package_name":"xarray","ecosystem":"pypi","requirements":"\u003e= 0.14.1","direct":true,"kind":"runtime","optional":false},{"id":7789784107,"package_name":"xgcm","ecosystem":"pypi","requirements":"\u003e= 0.2.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"binder/environment.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:09.129Z","updated_at":"2023-09-21T19:45:09.129Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/binder/environment.yml","dependencies":[{"id":13856856915,"package_name":"bokeh","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856916,"package_name":"bottleneck","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856917,"package_name":"cartopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856918,"package_name":"dask","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856919,"package_name":"distributed","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856920,"package_name":"esmf","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856921,"package_name":"esmpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856922,"package_name":"ffmpeg","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856923,"package_name":"geopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856924,"package_name":"intake-xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856925,"package_name":"ipython","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856926,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856927,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856928,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856929,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856930,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856931,"package_name":"python","ecosystem":"conda","requirements":"3.10.*","direct":true,"kind":"runtime","optional":false},{"id":13856856932,"package_name":"rise","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856933,"package_name":"tqdm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856934,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856935,"package_name":"xesmf","ecosystem":"conda","requirements":"\u003e0.6.3","direct":true,"kind":"runtime","optional":false},{"id":13856856936,"package_name":"xgcm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856937,"package_name":"xmitgcm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856938,"package_name":"xoak","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"docs/environment.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:09.911Z","updated_at":"2023-09-21T19:45:09.911Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/docs/environment.yml","dependencies":[{"id":13856856943,"package_name":"nbsphinx","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856944,"package_name":"numpydoc","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856945,"package_name":"pandoc","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856946,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856947,"package_name":"python","ecosystem":"conda","requirements":"3.9.*","direct":true,"kind":"runtime","optional":false},{"id":13856856948,"package_name":"sphinx","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856949,"package_name":"sphinx_rtd_theme","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"sciserver_catalogs/environment.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:45:10.727Z","updated_at":"2023-09-21T19:45:10.727Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/sciserver_catalogs/environment.yml","dependencies":[{"id":13856856993,"package_name":"aiohttp","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856994,"package_name":"black","ecosystem":"conda","requirements":"\u003c20.8b1","direct":true,"kind":"runtime","optional":false},{"id":13856856995,"package_name":"bottleneck","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856996,"package_name":"cartopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856997,"package_name":"cf_xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856998,"package_name":"cfgrib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856856999,"package_name":"cftime","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857000,"package_name":"cmasher","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857001,"package_name":"cmocean","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857002,"package_name":"codecov","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857003,"package_name":"dask","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857004,"package_name":"distributed","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857005,"package_name":"eofs","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857006,"package_name":"esmf","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857007,"package_name":"esmpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857008,"package_name":"fastjmd95","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857009,"package_name":"ffmpeg","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857010,"package_name":"flake8","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857011,"package_name":"fsspec","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857012,"package_name":"geopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857013,"package_name":"gsw","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857014,"package_name":"h5netcdf","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857015,"package_name":"imageio","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857016,"package_name":"intake-xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857017,"package_name":"ipykernel","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857018,"package_name":"ipython","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857019,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857020,"package_name":"nc-time-axis","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857021,"package_name":"netcdf4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857022,"package_name":"numba","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857023,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857024,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857025,"package_name":"pooch","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857026,"package_name":"pre-commit","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857027,"package_name":"pycwt","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857028,"package_name":"pydap","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857029,"package_name":"pys2index","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857030,"package_name":"pytest","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857031,"package_name":"pytest-cov","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857032,"package_name":"pytest-env","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857033,"package_name":"python","ecosystem":"conda","requirements":"3.10.*","direct":true,"kind":"runtime","optional":false},{"id":13856857034,"package_name":"rasterio","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857035,"package_name":"scikit-learn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857036,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857037,"package_name":"seaborn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857038,"package_name":"tqdm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857039,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857040,"package_name":"xesmf","ecosystem":"conda","requirements":"\u003e0.6.3","direct":true,"kind":"runtime","optional":false},{"id":13856857041,"package_name":"xgcm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857042,"package_name":"xhistogram","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857043,"package_name":"xmitgcm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857044,"package_name":"xoak","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":13856857045,"package_name":"zarr","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"conda","filepath":"ci/environment.yml","sha":null,"kind":"manifest","created_at":"2025-12-29T00:02:41.650Z","updated_at":"2025-12-29T00:02:41.650Z","repository_link":"https://github.com/hainegroup/oceanspy/blob/main/ci/environment.yml","dependencies":[{"id":25780509910,"package_name":"dask","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509914,"package_name":"distributed","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509915,"package_name":"bottleneck","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509916,"package_name":"netCDF4","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509922,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509923,"package_name":"xarray","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509924,"package_name":"xoak","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509925,"package_name":"cartopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509926,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509927,"package_name":"intake","ecosystem":"conda","requirements":"\u003c2.0","direct":true,"kind":"runtime","optional":false},{"id":25780509928,"package_name":"intake-xarray","ecosystem":"conda","requirements":"\u003c2.0","direct":true,"kind":"runtime","optional":false},{"id":25780509929,"package_name":"geopy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509930,"package_name":"xesmf","ecosystem":"conda","requirements":"\u003e0.6.3","direct":true,"kind":"runtime","optional":false},{"id":25780509931,"package_name":"esmf","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509932,"package_name":"xgcm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509933,"package_name":"Ipython","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509934,"package_name":"tqdm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509935,"package_name":"pytest","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509936,"package_name":"pytest-cov","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509937,"package_name":"pytest-env","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509938,"package_name":"codecov","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509939,"package_name":"ffmpeg","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509940,"package_name":"aiohttp","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509941,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509942,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509943,"package_name":"fsspec","ecosystem":"conda","requirements":"!=0.9.0","direct":true,"kind":"runtime","optional":false},{"id":25780509944,"package_name":"pooch","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509945,"package_name":"pip","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509946,"package_name":"xmitgcm","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25780509947,"package_name":"shapely","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]}],"score":17.711326129636085,"created_at":"2023-09-11T11:54:35.671Z","updated_at":"2026-06-13T09:30:26.309Z","avatar_url":"https://github.com/hainegroup.png","language":"Jupyter Notebook","category":"Hydrosphere","sub_category":"Ocean and Hydrology Data Access","monthly_downloads":159,"total_dependent_repos":1,"total_dependent_packages":0,"readme":".. _readme:\n\n======================================================================================\nOceanSpy - A Python package to facilitate ocean model data analysis and visualization.\n======================================================================================\n\n|OceanSpy|\n\n|version| |conda forge| |docs| |CI| |pre-commit| |codecov| |black| |license| |doi| |JOSS| |binder|\n\n.. admonition:: Interactive Demo\n\n   Check out the interactive demonstration of OceanSpy at `www.bndr.it/gfvgd \u003chttps://bndr.it/gfvgd\u003e`_\n\nFor publications, please cite the following paper:\n\nAlmansi, M., R. Gelderloos, T. W. N. Haine, A. Saberi, and A. H. Siddiqui (2019). OceanSpy: A Python package to facilitate ocean model data analysis and visualization. *Journal of Open Source Software*, 4(39), 1506, doi: https://doi.org/10.21105/joss.01506 .\n\nThis material is based upon work supported by the National Science Foundation under Grant Numbers 1835640, 124330, 118123, and 1756863. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.\n\nWhat is OceanSpy?\n-----------------\n**OceanSpy** is an open-source and user-friendly Python package that enables scientists and interested amateurs to analyze and visualize ocean model datasets.\nOceanSpy builds on software packages developed by the Pangeo_ community, in particular xarray_, dask_, and xgcm_.\nThe integration of dask facilitates scalability, which is important for the petabyte-scale simulations that are becoming available.\n\nWhy OceanSpy?\n-------------\nSimulations of ocean currents using numerical circulation models are becoming increasingly realistic.\nAt the same time, these models generate increasingly large volumes of model output data, making the analysis of model data harder.\nUsing OceanSpy, model data can be easily analyzed in the way observational oceanographers analyze field measurements.\n\nHow to use OceanSpy?\n--------------------\nOceanSpy can be used as a standalone package for analysis of local circulation model output, or it can be run on a remote data-analysis cluster, such as the Johns Hopkins University SciServer_ system, which hosts several simulations and is publicly available (see `SciServer Access`_, and `Datasets`_).\n\n.. note::\n\n   OceanSpy has been developed and tested using MITgcm output. However, it is designed to work with any (structured grid) ocean general circulation model. OceanSpy's architecture allows to easily implement model-specific features, such as different grids, numerical schemes for vector calculus, budget closures, and equations of state. We actively seek input and contributions from users of other ocean models (`feedback submission`_).\n\n\n\n\n.. _Pangeo: http://pangeo-data.github.io\n.. _xarray: http://xarray.pydata.org\n.. _dask: https://dask.org\n.. _xgcm: https://xgcm.readthedocs.io\n.. _SciServer: http://www.sciserver.org\n.. _`SciServer Access`: https://oceanspy.readthedocs.io/en/latest/sciserver.html\n.. _Datasets: https://oceanspy.readthedocs.io/en/latest/datasets.html\n.. _`feedback submission`: https://github.com/hainegroup/oceanspy/issues\n\n.. |OceanSpy| image:: https://github.com/hainegroup/oceanspy/raw/main/docs/_static/oceanspy_logo_blue.png\n   :alt: OceanSpy image\n   :target: https://oceanspy.readthedocs.io\n\n.. |version| image:: https://img.shields.io/pypi/v/oceanspy.svg?style=flat\n    :alt: PyPI\n    :target: https://pypi.python.org/pypi/oceanspy\n\n.. |conda forge| image:: https://anaconda.org/conda-forge/oceanspy/badges/version.svg\n   :alt: conda-forge\n   :target: https://anaconda.org/conda-forge/oceanspy\n\n.. |docs| image:: http://readthedocs.org/projects/oceanspy/badge/?version=latest\n    :alt: Documentation\n    :target: http://oceanspy.readthedocs.io/en/latest/?badge=latest\n\n.. |CI| image:: https://img.shields.io/github/workflow/status/hainegroup/oceanspy/CI?logo=github\n    :alt: CI\n    :target: https://github.com/hainegroup/oceanspy/actions\n\n.. |codecov| image:: https://codecov.io/github/hainegroup/oceanspy/coverage.svg?branch=main\n    :alt: Coverage\n    :target: https://codecov.io/github/hainegroup/oceanspy?branch=main\n\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :alt: black\n    :target: https://github.com/psf/black\n\n.. |license| image:: https://img.shields.io/github/license/mashape/apistatus.svg\n   :alt: License\n   :target: https://github.com/hainegroup/oceanspy\n\n.. |doi| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.3270646.svg\n   :alt: doi\n   :target: https://doi.org/10.5281/zenodo.3270646\n\n.. |JOSS| image:: http://joss.theoj.org/papers/10.21105/joss.01506/status.svg\n   :alt: JOSS\n   :target: https://doi.org/10.21105/joss.01506\n\n.. |binder| image:: https://mybinder.org/badge_logo.svg\n   :alt: binder\n   :target: https://mybinder.org/v2/gh/hainegroup/oceanspy.git/main?filepath=binder\n\n.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/hainegroup/oceanspy/main.svg\n   :target: https://results.pre-commit.ci/latest/github/hainegroup/oceanspy/main\n   :alt: pre-commit.ci status\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/joss.01506","https://doi.org/10.5281/zenodo.3270646"],"works":{"https://doi.org/10.21105/joss.01506":{"id":"https://openalex.org/W2953401822","doi":"https://doi.org/10.21105/joss.01506","title":"OceanSpy: A Python package to facilitate ocean model data analysis and visualization","display_name":"OceanSpy: A Python package to facilitate ocean model data analysis and visualization","publication_year":2019,"publication_date":"2019-07-07","ids":{"openalex":"https://openalex.org/W2953401822","doi":"https://doi.org/10.21105/joss.01506","mag":"2953401822"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.21105/joss.01506","pdf_url":"https://joss.theoj.org/papers/10.21105/joss.01506.pdf","source":{"id":"https://openalex.org/S4210214273","display_name":"Journal of open source software","issn_l":"2475-9066","issn":["2475-9066"],"is_oa":true,"is_in_doaj":true,"host_organization":"https://openalex.org/P4310315853","host_organization_name":"Open Journals","host_organization_lineage":["https://openalex.org/P4310315853"],"host_organization_lineage_names":["Open Journals"],"type":"journal"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},"type":"article","type_crossref":"journal-article","open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://joss.theoj.org/papers/10.21105/joss.01506.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5029658212","display_name":"Mattia Almansi","orcid":"https://orcid.org/0000-0001-6849-3647"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Mattia Almansi","raw_affiliation_string":"","raw_affiliation_strings":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5068695348","display_name":"Renske Gelderloos","orcid":"https://orcid.org/0000-0003-0041-5305"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Renske Gelderloos","raw_affiliation_string":"","raw_affiliation_strings":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5072359304","display_name":"Thomas W. N. Haine","orcid":"https://orcid.org/0000-0001-8231-2419"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Thomas W. n. Haine","raw_affiliation_string":"","raw_affiliation_strings":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5079857653","display_name":"Atousa Saberi","orcid":"https://orcid.org/0000-0001-5454-1521"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Atousa Saberi","raw_affiliation_string":"","raw_affiliation_strings":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5030858100","display_name":"Ali H. Siddiqui","orcid":"https://orcid.org/0000-0002-8472-8642"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Ali H. Siddiqui","raw_affiliation_string":"","raw_affiliation_strings":[]}],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":{"value":0,"currency":"USD","value_usd":0,"provenance":"doaj"},"apc_paid":{"value":0,"currency":"USD","value_usd":0,"provenance":"doaj"},"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":7,"cited_by_percentile_year":{"min":86,"max":87},"biblio":{"volume":"4","issue":"39","first_page":"1506","last_page":"1506"},"is_retracted":false,"is_paratext":false,"keywords":[{"keyword":"oceanspy model data analysis","score":0.7572},{"keyword":"python package","score":0.3965},{"keyword":"visualization","score":0.3365}],"concepts":[{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.8471532},{"id":"https://openalex.org/C36464697","wikidata":"https://www.wikidata.org/wiki/Q451553","display_name":"Visualization","level":2,"score":0.680695},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.61584914},{"id":"https://openalex.org/C121684516","wikidata":"https://www.wikidata.org/wiki/Q7600677","display_name":"Computer graphics (images)","level":1,"score":0.5546036},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.39252874},{"id":"https://openalex.org/C124101348","wikidata":"https://www.wikidata.org/wiki/Q172491","display_name":"Data mining","level":1,"score":0.19461447}],"mesh":[],"locations_count":2,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.21105/joss.01506","pdf_url":"https://joss.theoj.org/papers/10.21105/joss.01506.pdf","source":{"id":"https://openalex.org/S4210214273","display_name":"Journal of open source software","issn_l":"2475-9066","issn":["2475-9066"],"is_oa":true,"is_in_doaj":true,"host_organization":"https://openalex.org/P4310315853","host_organization_name":"Open Journals","host_organization_lineage":["https://openalex.org/P4310315853"],"host_organization_lineage_names":["Open Journals"],"type":"journal"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"http://nora.nerc.ac.uk/id/eprint/530123/1/joss.01506.pdf","pdf_url":"http://nora.nerc.ac.uk/id/eprint/530123/1/joss.01506.pdf","source":{"id":"https://openalex.org/S4306401451","display_name":"North American Electric Reliability Corporation Open Archive (North American Electric Reliability Corporation)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I26320469","host_organization_name":"North American Electric Reliability Corporation","host_organization_lineage":["https://openalex.org/I26320469"],"host_organization_lineage_names":["North American Electric Reliability Corporation"],"type":"repository"},"license":"cc-by","version":"acceptedVersion","is_accepted":true,"is_published":false}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.21105/joss.01506","pdf_url":"https://joss.theoj.org/papers/10.21105/joss.01506.pdf","source":{"id":"https://openalex.org/S4210214273","display_name":"Journal of open source software","issn_l":"2475-9066","issn":["2475-9066"],"is_oa":true,"is_in_doaj":true,"host_organization":"https://openalex.org/P4310315853","host_organization_name":"Open Journals","host_organization_lineage":["https://openalex.org/P4310315853"],"host_organization_lineage_names":["Open Journals"],"type":"journal"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/14","display_name":"Life below water","score":0.71},{"id":"https://metadata.un.org/sdg/13","display_name":"Climate action","score":0.11}],"grants":[],"referenced_works_count":3,"referenced_works":["https://openalex.org/W2057313876","https://openalex.org/W2604239613","https://openalex.org/W2922500853"],"related_works":["https://openalex.org/W2895805855","https://openalex.org/W3086036847","https://openalex.org/W3009871867","https://openalex.org/W1906486629","https://openalex.org/W3094286499","https://openalex.org/W4318619745","https://openalex.org/W3021560500","https://openalex.org/W4229046434","https://openalex.org/W4243252198","https://openalex.org/W4221006817"],"ngrams_url":"https://api.openalex.org/works/W2953401822/ngrams","abstract_inverted_index":null,"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W2953401822","counts_by_year":[{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":2}],"updated_date":"2023-12-11T01:24:27.854789","created_date":"2019-07-12"},"https://doi.org/10.5281/zenodo.3270646":null},"citation_counts":{"https://doi.org/10.21105/joss.01506":7},"total_citations":7,"keywords_from_contributors":["ocean-modelling"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/692","html_url":"https://ost.ecosyste.ms/projects/692"}