{"id":352194,"name":"PING-Mapper","description":"Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat.","url":"https://github.com/cameronbodine/pingmapper","last_synced_at":"2026-04-21T11:01:29.101Z","repository":{"id":37527193,"uuid":"339433489","full_name":"CameronBodine/PINGMapper","owner":"CameronBodine","description":"Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat","archived":false,"fork":false,"pushed_at":"2026-04-14T12:12:03.000Z","size":443066,"stargazers_count":78,"open_issues_count":18,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-14T13:32:26.863Z","etag":null,"topics":["aquatic","cerulean","ecology","garmin","humminbird","lowrance","remotesensing","sidescan","sidescan-sonar","sonar"],"latest_commit_sha":null,"homepage":"https://cameronbodine.github.io/PINGMapper/","language":"Python","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/CameronBodine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-16T14:57:19.000Z","updated_at":"2026-04-14T12:12:07.000Z","dependencies_parsed_at":"2023-09-28T01:48:19.873Z","dependency_job_id":"8122aa82-8b40-4d6f-9de1-7998aec83d4e","html_url":"https://github.com/CameronBodine/PINGMapper","commit_stats":{"total_commits":709,"total_committers":4,"mean_commits":177.25,"dds":"0.14104372355430184","last_synced_commit":"dae977169a893a4d76b1e7e740aea09e90b23f12"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/CameronBodine/PINGMapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CameronBodine","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32088913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T06:27:27.065Z","status":"ssl_error","status_checked_at":"2026-04-21T06:27:21.250Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"CameronBodine","name":"Cameron Bodine","uuid":"54146655","kind":"user","description":"Graduate research assistant and PhD candidate in Ecological Informatics","email":"","website":"https://ecoinfo.nau.edu/","location":null,"twitter":"bodine_cs","company":"Northern Arizona University","icon_url":"https://avatars.githubusercontent.com/u/54146655?u=b0a55f5bf81d1c1497f78966f9939e0c355f8577\u0026v=4","repositories_count":1,"last_synced_at":"2023-03-05T06:42:57.911Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CameronBodine","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T07:44:04.333Z","updated_at":"2023-03-05T06:42:57.932Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CameronBodine","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CameronBodine/repositories"},"packages":[{"id":11233262,"name":"pingmapper","ecosystem":"pypi","description":"Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat","homepage":"https://cameronbodine.github.io/PINGMapper/","licenses":"MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/CameronBodine/PINGMapper","keywords_array":["pingmapper","sonar","ecology","remotesensing","sidescan","sidescan-sonar","aquatic","humminbird","lowrance","gis","oceanography","limnology"],"namespace":null,"versions_count":64,"first_release_published_at":"2025-01-02T16:00:11.000Z","latest_release_published_at":"2026-03-20T11:08:29.000Z","latest_release_number":"5.1.1","last_synced_at":"2026-03-22T19:38:04.711Z","created_at":"2025-01-02T16:00:32.951Z","updated_at":"2026-03-22T19:38:04.711Z","registry_url":"https://pypi.org/project/pingmapper/","install_command":"pip install pingmapper --index-url https://pypi.org/simple","documentation_url":"https://pingmapper.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python :: 3","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: GIS","Topic :: Scientific/Engineering :: Hydrology","Topic :: Scientific/Engineering :: Oceanography","Topic :: Scientific/Engineering :: Visualization"],"normalized_name":"pingmapper","project_status":null},"repo_metadata":{"id":37527193,"uuid":"339433489","full_name":"CameronBodine/PINGMapper","owner":"CameronBodine","description":"Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat","archived":false,"fork":false,"pushed_at":"2025-10-17T13:53:18.000Z","size":442301,"stargazers_count":70,"open_issues_count":18,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-18T16:47:06.168Z","etag":null,"topics":["aquatic","cerulean","ecology","garmin","humminbird","lowrance","remotesensing","sidescan","sidescan-sonar","sonar"],"latest_commit_sha":null,"homepage":"https://cameronbodine.github.io/PINGMapper/","language":"Python","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/CameronBodine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-16T14:57:19.000Z","updated_at":"2025-10-17T16:44:19.000Z","dependencies_parsed_at":"2023-09-28T01:48:19.873Z","dependency_job_id":"8122aa82-8b40-4d6f-9de1-7998aec83d4e","html_url":"https://github.com/CameronBodine/PINGMapper","commit_stats":{"total_commits":709,"total_committers":4,"mean_commits":177.25,"dds":"0.14104372355430184","last_synced_commit":"dae977169a893a4d76b1e7e740aea09e90b23f12"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/CameronBodine/PINGMapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CameronBodine","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281059632,"owners_count":26437061,"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-26T02:00:06.575Z","response_time":61,"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":"CameronBodine","name":"Cameron Bodine","uuid":"54146655","kind":"user","description":"Graduate research assistant and PhD candidate in Ecological Informatics","email":"","website":"https://ecoinfo.nau.edu/","location":null,"twitter":"bodine_cs","company":"Northern Arizona University","icon_url":"https://avatars.githubusercontent.com/u/54146655?u=b0a55f5bf81d1c1497f78966f9939e0c355f8577\u0026v=4","repositories_count":1,"last_synced_at":"2023-03-05T06:42:57.911Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CameronBodine","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-15T07:44:04.333Z","updated_at":"2023-03-05T06:42:57.932Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CameronBodine","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CameronBodine/repositories"},"tags":[{"name":"v4.2","sha":"c8ceadaf3f76845973c62a3b9787cd195998391f","kind":"commit","published_at":"2025-02-24T09:14:51.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v4.2","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v4.2/manifests"},{"name":"v4.0","sha":"8d0d974ceae3328778882f624429ba6143efcf67","kind":"commit","published_at":"2025-01-21T16:52:20.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v4.0","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v4.0/manifests"},{"name":"v3.0.0","sha":"9d79c5f08c35c3613906dad918cdce08fd290a16","kind":"commit","published_at":"2024-12-28T09:22:27.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v3.0.0","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v3.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v3.0.0/manifests"},{"name":"v3.0.0-alpha","sha":"b4170041a13c53ad620250ecaea32d47160148b5","kind":"commit","published_at":"2024-12-12T07:09:43.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v3.0.0-alpha","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v3.0.0-alpha","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v3.0.0-alpha","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v3.0.0-alpha","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v3.0.0-alpha/manifests"},{"name":"v2.1.0","sha":"cb3b7614c08edd163f25f7e64a65b77d7b43c487","kind":"commit","published_at":"2024-11-26T13:51:49.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v2.1.0","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v2.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.1.0/manifests"},{"name":"v2.0.1-test","sha":"0bf0f7db9ffc02a6651ae086eb5398798218d4b0","kind":"commit","published_at":"2024-03-02T20:42:16.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v2.0.1-test","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v2.0.1-test","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v2.0.1-test","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.0.1-test","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.0.1-test/manifests"},{"name":"v2.0.0","sha":"b24c733773bf052c89c29d01b8554457ce0932ef","kind":"commit","published_at":"2023-11-13T19:11:02.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v2.0.0","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v2.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.0.0/manifests"},{"name":"v2.0.0-alpha","sha":"6b89e962d3162f93587d63590bcd8f58d83fbf86","kind":"commit","published_at":"2023-08-31T20:52:02.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v2.0.0-alpha","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v2.0.0-alpha","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v2.0.0-alpha","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.0.0-alpha","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v2.0.0-alpha/manifests"},{"name":"v1.1.0","sha":"30d3478e3d6aafc3cafd65e34354d7fe97d76ae1","kind":"commit","published_at":"2022-12-28T21:24:44.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v1.1.0","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"a8dc1f99ec04996da9c677e92e9b6c1fd03ebd31","kind":"commit","published_at":"2022-06-01T23:18:34.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/v1.0.0","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/v1.0.0/manifests"},{"name":"delete","sha":"a8dc1f99ec04996da9c677e92e9b6c1fd03ebd31","kind":"commit","published_at":"2022-06-01T23:18:34.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/delete","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/delete","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@delete","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/delete","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/delete/manifests"},{"name":"data","sha":"8602ff59a7997d25971b5ede38e60e51dd25dd9a","kind":"commit","published_at":"2022-06-01T21:17:50.000Z","download_url":"https://codeload.github.com/CameronBodine/PINGMapper/tar.gz/data","html_url":"https://github.com/CameronBodine/PINGMapper/releases/tag/data","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/CameronBodine/PINGMapper@data","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/data","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/tags/data/manifests"}]},"repo_metadata_updated_at":"2026-03-22T19:37:59.033Z","dependent_packages_count":0,"downloads":550,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":55.262043550877834,"dependent_packages_count":9.816814297205697,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":32.539428924041765},"purl":"pkg:pypi/pingmapper","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pingmapper","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pingmapper","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pingmapper/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-18T18:05:25.094Z","issues_count":102,"pull_requests_count":61,"avg_time_to_close_issue":7166965.37037037,"avg_time_to_close_pull_request":5768.377049180328,"issues_closed_count":81,"pull_requests_closed_count":61,"pull_request_authors_count":2,"issue_authors_count":32,"avg_comments_per_issue":4.264705882352941,"avg_comments_per_pull_request":0.04918032786885246,"merged_pull_requests_count":51,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":29,"past_year_pull_requests_count":25,"past_year_avg_time_to_close_issue":1796519.6666666667,"past_year_avg_time_to_close_pull_request":587.0,"past_year_issues_closed_count":15,"past_year_pull_requests_closed_count":25,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":14,"past_year_avg_comments_per_issue":2.8275862068965516,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":17,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/issues","maintainers":[{"login":"CameronBodine","count":118,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CameronBodine"},{"login":"dbuscombe-usgs","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dbuscombe-usgs"},{"login":"Sturggie","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sturggie"}],"active_maintainers":[{"login":"CameronBodine","count":36,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CameronBodine"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pingmapper/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pingmapper/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pingmapper/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pingmapper/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pingmapper/codemeta","maintainers":[{"uuid":"cameronbodine","login":"cameronbodine","name":null,"email":null,"url":null,"packages_count":10,"html_url":"https://pypi.org/user/cameronbodine/","role":"Owner","created_at":"2025-01-02T16:03:11.470Z","updated_at":"2025-01-02T16:03:11.470Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/cameronbodine/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":846375,"maintainers_count":361683,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":1327495,"full_name":"CameronBodine/PINGMapper","default_branch":"main","total_commits":1036,"total_committers":4,"total_bot_commits":1,"total_bot_committers":1,"mean_commits":259.0,"dds":0.0038610038610038533,"past_year_total_commits":129,"past_year_total_committers":3,"past_year_total_bot_commits":1,"past_year_total_bot_committers":1,"past_year_mean_commits":43.0,"past_year_dds":0.023255813953488413,"last_synced_at":"2026-04-19T10:21:54.087Z","last_synced_commit":"b0188c5cb6ddf738a82b9c676fa2e9cde5a61031","created_at":"2023-09-11T16:22:43.121Z","updated_at":"2026-04-19T10:21:52.896Z","committers":[{"name":"Cameron Bodine","email":"csb67@nau.edu","login":"CameronBodine","count":1032},{"name":"iury simoes-sousa","email":"iuryt@pm.me","login":"iuryt","count":2},{"name":"copilot-swe-agent[bot]","email":"198982749+Copilot","login":"Copilot","count":1},{"name":"Mirko Denecke","email":"mirkix@gmail.com","login":"mirkix","count":1}],"past_year_committers":[{"name":"Cameron Bodine","email":"bodine.cs@gmail.com","login":"CameronBodine","count":126},{"name":"iury simoes-sousa","email":"iuryt@pm.me","login":"iuryt","count":2},{"name":"copilot-swe-agent[bot]","email":"198982749+Copilot","login":"Copilot","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.949Z","repositories_count":6215238,"commits_count":899442080,"contributors_count":34906356,"owners_count":1143767,"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":"CameronBodine/PINGMapper","html_url":"https://github.com/CameronBodine/PINGMapper","last_synced_at":"2026-04-19T10:21:47.502Z","status":"active","issues_count":104,"pull_requests_count":62,"avg_time_to_close_issue":7166965.37037037,"avg_time_to_close_pull_request":5768.377049180328,"issues_closed_count":81,"pull_requests_closed_count":61,"pull_request_authors_count":3,"issue_authors_count":33,"avg_comments_per_issue":4.211538461538462,"avg_comments_per_pull_request":0.06451612903225806,"merged_pull_requests_count":51,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":13,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":542096.0,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":9,"past_year_avg_comments_per_issue":1.0,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-09-11T16:23:19.185Z","updated_at":"2026-04-19T10:21:47.502Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CameronBodine%2FPINGMapper/issues","issue_labels_count":{"0_Code":91,"enhancement":43,"end user issue - general bug":20,"bug":19,"end user issue":11,"end user issue - processing bug":9,"help wanted":5,"question":3,"tidy up":3,"error - dependency":3,"documentation":3,"install":3},"pull_request_labels_count":{"enhancement":1},"issue_author_associations_count":{"OWNER":58,"NONE":44,"COLLABORATOR":2},"pull_request_author_associations_count":{"OWNER":60,"CONTRIBUTOR":2},"issue_authors":{"CameronBodine":58,"philippetournevase-spec":3,"bthetford":3,"Hesslertm":3,"AdrianPinchbeck":3,"dfcscience":3,"mihykavetu":2,"vshie":2,"DWhettam":2,"mmcintosh":2,"mstuart5":1,"AlexandreAvz":1,"kbartelt1":1,"mjhawker":1,"BGunnett8":1,"CRT345":1,"Jdubs6":1,"saaseasyllc":1,"Dabbler23":1,"belostomatidae":1,"dbuscombe-usgs":1,"pndphd":1,"arelkins1":1,"jasonfischer":1,"odsemblante":1,"henzb72":1,"gushangzao007":1,"Sturggie":1,"jvandens":1,"luomaxiu":1,"bestplanetarian":1,"AngelDelacroix":1,"BadeA-gov":1},"pull_request_authors":{"CameronBodine":60,"mirkix":1,"iuryt":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.919Z","repositories_count":14347496,"issues_count":34455477,"pull_requests_count":112783298,"authors_count":11241665,"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":{"0_Code":12,"end user issue - general bug":6,"end user issue - processing bug":4,"enhancement":2},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":11,"OWNER":2},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":1},"past_year_issue_authors":{"philippetournevase-spec":3,"CameronBodine":2,"vshie":2,"belostomatidae":1,"Hesslertm":1,"jvandens":1,"luomaxiu":1,"mstuart5":1,"pndphd":1},"past_year_pull_request_authors":{"iuryt":1},"maintainers":[{"login":"CameronBodine","count":118,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CameronBodine"},{"login":"dbuscombe-usgs","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dbuscombe-usgs"},{"login":"Sturggie","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Sturggie"}],"active_maintainers":[{"login":"CameronBodine","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/CameronBodine"}]},"events":{"total":{"CreateEvent":11,"CommitCommentEvent":1,"ReleaseEvent":3,"DeleteEvent":6,"PullRequestEvent":31,"ForkEvent":5,"DiscussionEvent":2,"IssuesEvent":63,"WatchEvent":18,"IssueCommentEvent":154,"PushEvent":211},"last_year":{"DeleteEvent":1,"PullRequestEvent":3,"ForkEvent":2,"DiscussionEvent":2,"IssuesEvent":32,"WatchEvent":11,"IssueCommentEvent":50,"PushEvent":60,"CreateEvent":2,"CommitCommentEvent":1}},"keywords":["aquatic","cerulean","ecology","garmin","humminbird","lowrance","remotesensing","sidescan","sidescan-sonar","sonar"],"dependencies":[],"score":12.262377361740642,"created_at":"2026-04-19T10:21:47.479Z","updated_at":"2026-04-21T11:01:29.123Z","avatar_url":"https://github.com/CameronBodine.png","language":"Python","category":"Hydrosphere","sub_category":"Ocean and Hydrology Data Access","monthly_downloads":550,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# PING-Mapper\r\n[![PyPI - Version](https://img.shields.io/pypi/v/pingmapper?style=flat-square\u0026label=Latest%20Version%20(PyPi))](https://pypi.org/project/pingmapper/)\r\n\u003c!-- ![PING-Mapper](./docs/attach/PINGMapper_Logo.png) --\u003e\r\n![PINGMapper_Logo](https://github.com/CameronBodine/PINGMapper/blob/main/docs/attach/PINGMapper_Logo.png?raw=true)\r\n\r\n[![GitHub last commit](https://img.shields.io/github/last-commit/CameronBodine/PINGMapper)](https://github.com/CameronBodine/PINGMapper/commits)\r\n[![GitHub commit activity](https://img.shields.io/github/commit-activity/m/CameronBodine/PINGMapper)](https://github.com/CameronBodine/PINGMapper/commits)\r\n[![GitHub](https://img.shields.io/github/license/CameronBodine/PINGMapper)](https://github.com/CameronBodine/PINGMapper/blob/main/LICENSE)\r\n\r\n[![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54)](https://www.python.org/)\r\n[![Anaconda](https://img.shields.io/badge/conda-342B029.svg?\u0026style=for-the-badge\u0026logo=anaconda\u0026logoColor=white)](https://www.anaconda.com/)\r\n[![Numpy](https://img.shields.io/badge/Numpy-791a9d?style=for-the-badge\u0026logo=numpy\u0026logoColor=white)](https://numpy.org/)\r\n[![Pandas](https://img.shields.io/badge/Pandas-2C2D72?style=for-the-badge\u0026logo=pandas\u0026logoColor=white)](https://pandas.pydata.org/)\r\n[![Tensorflow](https://img.shields.io/badge/TensorFlow-FF6F00?style=for-the-badge\u0026logo=TensorFlow\u0026logoColor=white)](https://www.tensorflow.org/)\r\n\r\n## \r\n\r\n**Transform recordings from recreation-grade side scan sonar systems...**\r\n\r\n![Suwa_Son](https://github.com/CameronBodine/PINGMapper/blob/main/docs/attach/Suwa_Son.gif?raw=true)\r\n\r\n*Video made with [HumViewer](https://humviewer.cm-johansen.dk/)*\r\n\r\n**...into scientific datasets!**\r\n\r\n![GithubMap](https://github.com/CameronBodine/PINGMapper/blob/main/docs/attach/GithubMap.png?raw=true)\r\n\r\n\r\n\r\n# Overview\r\n\r\n`PINGMapper` is an open-source Python interface for reading and processing side scan sonar datasets and reproducibly mapping benthic habitat features. `PINGMapper` transforms recreation-grade sonar systems (i.e. fishfinders) into scientific data collectors, allowing researchers and citizens alike to reproducibly map their aquatic system with minimal expertise in data processing.\r\n\r\n## Learn More Now!\r\nCheck out PING-Mapper's [website](https://cameronbodine.github.io/PINGMapper/) for most up to date information:\r\n\r\n- [Homepage](https://cameronbodine.github.io/PINGMapper/)\r\n- [Getting Started](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted)\r\n- [Advanced Topics](https://cameronbodine.github.io/PINGMapper/docs/advanced)\r\n- [Tutorials](https://cameronbodine.github.io/PINGMapper/docs/tutorials)\r\n- [FAQ's](https://cameronbodine.github.io/PINGMapper/docs/faq.html)\r\n- *and more!*\r\n\r\n## Published Documentation\r\n### v1.0.0 (August 29, 2022)\r\nAn overview of `PINGMapper` v1.0.0 functionality and justification are published in AGU's Earth and Space Science scientific journal.\r\n\r\n#### Journal Article\r\nBodine, C. S., Buscombe, D., Best, R. J., Redner, J. A., \u0026 Kaeser, A. J. (2022). PING-Mapper: Open-source software for automated benthic imaging and mapping using recreation-grade sonar. Earth and Space Science, 9, e2022EA002469. [https://doi.org/10.1029/2022EA002469](https://doi.org/10.1029/2022EA002469)\r\n\r\n#### Preprint\r\n[![Earth ArXiv Preprint DOI](https://img.shields.io/badge/%F0%9F%8C%8D%20EarthArXiv%F0%9F%8C%8D-doi.org%2F10.31223%2FX5XP8Q-%23FF7F2A)](https://doi.org/10.31223/X5XP8Q)\r\n\r\n#### Code\r\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6604785.svg)](https://doi.org/10.5281/zenodo.6604785)\r\n\r\n### v2.0.0 (July 9, 2024)\r\nA manuscript detailing the automated substrate mapping features made availabe in v2.0.0 is published in AGU's Journal of Geophysical Research: Machine Learning and Computation.\r\n\r\n#### Journal Article\r\n Bodine, C. S., Buscombe, D., \u0026 Hocking, T. D. (2024). Automated river substrate mapping from sonar imagery with machine learning. Journal of Geophysical Research: Machine Learning and Computation, 1, e2024JH000135. [https://doi.org/10.1029/2024JH000135](https://doi.org/10.1029/2024JH000135) \r\n\r\n#### Preprint\r\n[![Earth ArXiv Preprint DOI](https://img.shields.io/badge/%F0%9F%8C%8D%20EarthArXiv%F0%9F%8C%8D-doi.org%2F10.31223%2FX5K402-%23FF7F2A)](https://doi.org/10.31223/X5K402)\r\n\r\n#### Code\r\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10120054.svg)](https://doi.org/10.5281/zenodo.10120054)\r\n\r\n#### Segmentation models\r\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10093642.svg)](https://doi.org/10.5281/zenodo.10093642)\r\n\r\n#### Segmentation model training datasets\r\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10119320.svg)](https://doi.org/10.5281/zenodo.10119320)\r\n\r\n## Acknowledgements\r\n\r\n### v1.0 - 2.0\r\n\r\n*This study was originally made possible by a partnership between the U.S. Fish and Wildlife Service and Northern Arizona University. Funding for this work was provided by the Open Ocean Trustee Implementation Group to restore natural resources injured by the 2010 Deepwater Horizon oil spill in the Gulf of Mexico. The contents of this website are those of the authors and do not necessarily represent the views of the U.S. Fish and Wildlife Service or Northern Arizona University.*\r\n\r\n**Primary Developer:** [Dr. Cameron S. Bodine](https://github.com/CameronBodine)\r\n\r\n**Co-Developer:** [Dr. Daniel Buscombe](https://github.com/dbuscombe-usgs)\r\n\r\n**Project Collaborators:** Thanks to Adam Kaeser (USFWS), Channing St. Aubin (USFWS), Mike Andres (USM), Kasea Price (USM), Alyssa Pagel (USM), Eric Haffey (USM), and Katherine Wright (USM).\r\n\r\n**Advocates \u0026 Early-Adopters:** A special thanks to advocates and early-adoptors including, but not limited to, Jennylyn Redner, Adrian Pinchbeck, Art Trembanis, Dan Carlson, Alan Ryon, Mirko Denecke, Dan Haught, Dan Hamill, Mark Lundine, Elizabeth Greenheck, Hendra Kurnia Febriawan, Bryan Bozeman, Paul Grams, Matt Kaplinski, Jess Kozarek, Chris Milliren, Brett Connell and James Parham.\r\n\r\n**PhD Committee:** Cameron wishes to thank his PhD dissertation committee: Toby Hocking, Co-Chair; advisor Dan Buscombe, Co-Chair; Rebecca Best; and Adam Kaeser.\r\n\r\n### v3.0 - 4.0\r\n\r\nContinued support for PINGMapper and tools in the [PING Ecosystem](./docs/PINGEcosystem.md) is made possible through mentorship, partnerships, and financial support listed below.\r\n\r\n**Primary Developer:** [Dr. Cameron S. Bodine](https://github.com/CameronBodine)\r\n\r\n**PostDoctoral Advisor:** [Dr. Arthur Trembanis](https://www.udel.edu/academics/colleges/ceoe/departments/smsp/faculty/arthur-trembanis/)\r\n\r\n**Lab**: [Coastal Sediments, Hydrodynamics and Engineering Lab (CSHEL)](https://sites.udel.edu/ceoe-art/)\r\n\r\n**Institution**: [College of Earth, Ocean, \u0026 Environment (CEOE)](https://www.udel.edu/ceoe/) at the [University of Delaware](https://www.udel.edu/)\r\n\r\n**Advocates \u0026 Mentors**: Vincent Capone - [Black Laser Learning](https://blacklaserlearning.com/)\r\n\r\n## Quick Start\r\n\r\n### Option A: Conda\r\n\r\nPlease see [Getting Started](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted) for full instructions, or simply run:\r\n\r\n```bash\r\nconda env create -f pingmapper/conda/PINGMapper.yml\r\nconda activate ping\r\npython -m pingmapper gui\r\n```\r\n\r\n### Option B: Pixi\r\n\r\n[Pixi](https://pixi.sh) manages all dependencies (including GDAL) automatically from a single `pyproject.toml`.\r\n\r\n1. [Install pixi](https://pixi.sh)\r\n2. Clone and run:\r\n   ```bash\r\n   git clone https://github.com/CameronBodine/PINGMapper.git\r\n   cd PINGMapper\r\n   pixi run pingmapper  # Launches PINGWizard\r\n   ```\r\n3. For machine learning features (substrate mapping):\r\n   ```bash\r\n   pixi run -e full gui    # GUI with ML support\r\n   ```\r\n\r\n## Ready to get started?\r\n\r\nFollow the installation and testing instructions to [Get Started!](https://cameronbodine.github.io/PINGMapper/docs/gettingstarted)\r\n\r\n## Future Development, Collaborations, \u0026 Partnerships\r\n\r\nIf you are interested in partnering on future developments, please reach out to [Cameron Bodine](https://cameronbodine.github.io/).\r\n\r\n# PING-Mapper is part of the Doodleverse!\r\n![153729377-e16d0679-ca0d-4d0d-a9f9-90306ba2f871](https://github.com/CameronBodine/PINGMapper/assets/54146655/54df6fdd-26a6-4c26-9cab-9fc834e60ed1)\r\n\r\nThe Doodleverse is an opinionated collection of Python packages designed for geoscientific image segmentation. Find out more on [GitHub](https://github.com/Doodleverse).\r\n\r\n\r\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1029/2022EA002469","https://doi.org/10.31223/X5XP8Q","https://doi.org/10.5281/zenodo.6604785","https://doi.org/10.1029/2024JH000135","https://doi.org/10.31223/X5K402","https://doi.org/10.5281/zenodo.10120054","https://doi.org/10.5281/zenodo.10093642","https://doi.org/10.5281/zenodo.10119320"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/352194","html_url":"https://ost.ecosyste.ms/projects/352194"}