{"id":22134134,"url":"https://github.com/mbari-org/pbp","last_synced_at":"2025-06-28T23:38:33.750Z","repository":{"id":168386973,"uuid":"601867860","full_name":"mbari-org/pbp","owner":"mbari-org","description":"Process ocean audio data archives to daily analysis products of hybrid millidecade spectra using PyPAM.","archived":false,"fork":false,"pushed_at":"2025-06-13T18:19:49.000Z","size":3615,"stargazers_count":15,"open_issues_count":17,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-06-14T15:20:18.212Z","etag":null,"topics":["audio-processing","cloud","docker","hybrid-millidecade-bands","notebook","pypam","soundscape"],"latest_commit_sha":null,"homepage":"https://docs.mbari.org/pbp","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mbari-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-15T01:52:10.000Z","updated_at":"2025-06-13T17:51:34.000Z","dependencies_parsed_at":"2024-03-02T00:29:48.235Z","dependency_job_id":"aea5cf5e-b2d5-42b7-8cd1-4d030e4c1405","html_url":"https://github.com/mbari-org/pbp","commit_stats":null,"previous_names":["mbari-org/pypam-based-processing","mbari-org/pbp"],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/mbari-org/pbp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbari-org%2Fpbp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbari-org%2Fpbp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbari-org%2Fpbp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbari-org%2Fpbp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mbari-org","download_url":"https://codeload.github.com/mbari-org/pbp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbari-org%2Fpbp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262513634,"owners_count":23322663,"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"}},"keywords":["audio-processing","cloud","docker","hybrid-millidecade-bands","notebook","pypam","soundscape"],"created_at":"2024-12-01T19:09:35.709Z","updated_at":"2025-06-28T23:38:33.742Z","avatar_url":"https://github.com/mbari-org.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MBARI](https://www.mbari.org/wp-content/uploads/2014/11/logo-mbari-3b.png)](http://www.mbari.org)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Python](https://img.shields.io/badge/language-Python-blue.svg)](https://www.python.org/downloads/)\n\n# PyPAM based data processing\n\nThe [mbari-pbp](https://pypi.org/project/mbari-pbp/) package allows to\nprocess ocean audio data archives to daily analysis products of hybrid millidecade spectra using\n[PyPAM](https://github.com/lifewatch/pypam/).\n\n**Status**: Functional version, including support for cloud based processing.\n\n- [x] JSON generation of timekeeping with indication of start and duration of recognized sound files\n- [x] Audio file processing\n    - [x] Frequency and psd array output\n    - [x] Concatenation of processed 1-minute segments for daily product\n    - [x] Calibration with given sensitivity file (NetCDF), or flat sensitivity value\n- [x] Data products\n    - [x] NetCDF with metadata\n    - [x] Summary plot\n- [x] Cloud processing\n    - [x] Inputs can be downloaded from and uploaded to S3\n    - [x] Inputs can be downloaded from public GCS bucket\n    - [ ] Outputs can be uploaded to GCS\n\n## Documentation\n\nOfficial documentation is available at\n[docs.mbari.org/pbp](https://docs.mbari.org/pbp/).\n\n## Installation\n\nThe only requirement is Python 3.9, 3.10, or 3.11 on your environment.[^1]\nYou can run `python3 --version` to check the version of Python installed.\n\n[^1]: As currently [required by PyPAM](https://github.com/lifewatch/pypam/blob/29e82f0c5c6ce43b457d76963cb9d82392740654/pyproject.toml#L16).\n\nAs a general practice, it is recommended to use a virtual environment for the installation.\n```shell\npython3.11 -m venv virtenv\nsource virtenv/bin/activate\n```\n\nInstall the package:\n```shell\npip install mbari-pbp\n```\n\n## Programs and API\n\nThe mbari-pbp package includes command line interface (CLI) programs,\nand also provides APIs you can use in your Python scripts or notebooks.\n\n### CLI Programs\n\nThe package includes the following CLI programs:\n\n| Program                                                    | Description                             |\n|------------------------------------------------------------|-----------------------------------------|\n| [`pbp-meta-gen`](https://docs.mbari.org/pbp/pbp-meta-gen/) | Generate JSON files with audio metadata |\n| [`pbp-hmb-gen`](https://docs.mbari.org/pbp/pbp-hmb-gen/)   | Main HMB generation program             |\n| [`pbp-cloud`](https://docs.mbari.org/pbp/pbp-cloud/)       | Program for cloud based processing      |\n| [`pbp-hmb-plot`](https://docs.mbari.org/pbp/pbp-hmb-plot/) | Utility program to plot HMB product     |\n\n### API\n\nAPI documentation is available at [docs.mbari.org/pbp/api](https://docs.mbari.org/pbp/api/).\n\n## References\n\n- PyPAM - Python tool for Passive Acoustic Monitoring –\n  \u003chttps://doi.org/10.5281/zenodo.6044593\u003e\n- Computation of single-sided mean-square sound pressure spectral density with 1 Hz resolution follows\n  ISO 18405 3.1.3.13 (International Standard ISO 18405:2017(E), Underwater Acoustics – Terminology. Geneva: ISO)\n  – https://www.iso.org/standard/62406.html\n- Hybrid millidecade spectra: A practical format for exchange of long-term ambient sound data –\n  \u003chttps://asa.scitation.org/doi/10.1121/10.0003324\u003e\n- Erratum: Hybrid millidecade spectra –\n  \u003chttps://asa.scitation.org/doi/10.1121/10.0005818\u003e\n\n## Development\n\nSee [DEVELOPMENT.md](./DEVELOPMENT.md) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbari-org%2Fpbp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmbari-org%2Fpbp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbari-org%2Fpbp/lists"}