pyafscgap
Community contributed Python-based tools for working with public bottom trawl surveys data from the NOAA Alaska Fisheries Science Center Groundfish Assessment Program.
https://github.com/SchmidtDSE/afscgap
Category: Biosphere
Sub Category: Marine Life and Fishery
Keywords
biodiversity biology fish fisheries noaa
Last synced: about 19 hours ago
JSON representation
Repository metadata
Python-based tools for NOAA AFSC GAP marine species surveys data
- Host: GitHub
- URL: https://github.com/SchmidtDSE/afscgap
- Owner: SchmidtDSE
- License: bsd-3-clause
- Created: 2023-02-18T05:24:26.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-08T21:40:47.000Z (4 months ago)
- Last Synced: 2025-04-22T07:03:14.479Z (5 days ago)
- Topics: biodiversity, biology, fish, fisheries, noaa
- Language: Python
- Homepage: https://pyafscgap.org
- Size: 4.07 MB
- Stars: 5
- Watchers: 3
- Forks: 4
- Open Issues: 3
- Releases: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Citation: CITATION.cff
- Zenodo: .zenodo.json
README.md
Python Tools for AFSC GAP
Group | Badges |
---|---|
Status | |
Usage | |
Publication | |
Archive |
Python-based tool chain ("Pyafscgap.org") for working with the public bottom trawl data from the NOAA AFSC GAP. This provides information from multiple survey programs about where certain species were seen and when under what conditions, information useful for research in ocean health.
See webpage, project Github, and example notebook.
Quickstart
Taking your first step is easy!
Explore the data in a UI: To learn about the datasets, try out an in-browser visual analytics app at https://app.pyafscgap.org without writing any code.
Try out a tutorial in your browser: Learn from and modify an in-depth tutorial notebook in a free hosted academic environment (all without installing any local software).
Jump into code: Ready to build your own scripts? Here's an example querying for Pacific cod in the Gulf of Alaska for 2021:
import afscgap # install with pip install afscgap
query = afscgap.Query()
query.filter_year(eq=2021)
query.filter_srvy(eq='GOA')
query.filter_scientific_name(eq='Gadus macrocephalus')
results = query.execute()
Continue your exploration in the developer docs.
Installation
Ready to take it to your own machine? Install the open source tools for accessing the AFSC GAP via Pypi / Pip:
$ pip install afscgap
The library's only dependency is requests and Pandas / numpy are not expected but supported. The above will install the release version of the library. However, you can also install the development version via:
$ pip install git+https://github.com/SchmidtDSE/afscgap.git@main
Installing directly from the repo provides the "edge" version of the library which should be treated as pre-release.
Purpose
Unofficial Python-based tool set for interacting with bottom trawl surveys from the Ground Fish Assessment Program (GAP). It offers:
- Pythonic access to the NOAA AFSC GAP datasets.
- Tools for inference of the "negative" observations not provided by the API service.
- Visualization tools for quickly exploring and creating comparisons within the datasets, including for audiences with limited programming experience.
Note that GAP are an excellent collection of datasets produced by the Resource Assessment and Conservation Engineering (RACE) Division of the Alaska Fisheries Science Center (AFSC) as part of the National Oceanic and Atmospheric Administration's Fisheries organization (NOAA Fisheries).
Please see our objectives documentation for additional information about the purpose, developer needs addressed, and goals of the project.
Usage
This library provides access to the AFSC GAP data with optional zero catch ("absence") record inference.
Examples / tutorial
One of the best ways to learn is through our examples / tutorials series. For more details see our usage guide.
API Docs
Full formalized API documentation is available as generated by pdoc in CI / CD.
Data structure
Detailed information about our data structures and their relationship to the data structures found in NOAA's upstream database is available in our data model documentation.
Absence vs presence data
By default, the NOAA service will only return information on hauls matching a query. So, for example, requesting data on Pacific cod will only return information on hauls in which Pacific cod is found. This can complicate the calculation of important metrics like catch per unit effort (CPUE). That in mind, one of the most important features in afscgap
is the ability to infer "zero catch" records as enabled by set_presence_only(False)
. See more information in our inference docs.
Data quality and completeness
There are a few caveats for working with these data that are important for researchers to understand. These are detailed in our limitations docs.
Community flat files
The upstream datasets have shifted starting in 2024 with one important change including decomposing the dataset into hauls, catches, and species. Without the ability to join through the API endpoint, the entire catch dataset has to be queried or catches named individually in requests in order to retrieve complete records. Therefore, starting with the 2.x
releases, this library uses pre-joined community Avro files to speed up requests, offering precomputed indicies such that, where available, hauls can be pre-filtered to reduce download payload size and running time. See flat file documentation for more details about this service.
License
We are happy to make this library available under the BSD 3-Clause license. See LICENSE for more details. (c) 2023 Regents of University of California. See the Eric and Wendy Schmidt Center for Data Science and the Environment
at UC Berkeley.
Developing
Intersted in contributing to the project or want to bulid manually? Please see our build docs for details.
People
Sam Pottinger is the primary contact with additional development from Giulia Zarpellon. Additionally some acknowledgements:
- Thank you to Carl Boettiger and Fernando Perez for advice in the Python library.
- Thanks also to Maya Weltman-Fahs, Brookie Guzder-Williams, Angela Hayes, David Joy, and Magali de Bruyn for advice on the visual analytics tool.
- Lewis Barnett, Emily Markowitz, and Ciera Martinez for general guidance.
This is a project of the The Eric and Wendy Schmidt Center for Data Science and the Environment
at UC Berkeley where Kevin Koy is Executive Director. Please contact us via [email protected].
Open Source
We are happy to be part of the open source community. We use the following:
- Requests which is available under the Apache v2 License from Kenneth Reitz and other contributors.
- fastavro by Miki Tebeka and Contributors under the MIT License.
In addition to Github-provided Github Actions, our build and documentation systems also use the following but are not distributed with or linked to the project itself:
- mkdocs under the BSD License.
- mkdocs-windmill under the MIT License.
- mypy under the MIT License from Jukka Lehtosalo, Dropbox, and other contributors.
- nose2 under a BSD license from Jason Pellerin and other contributors.
- pdoc under the Unlicense license from Andrew Gallant and Maximilian Hils.
- pycodestyle under the Expat License from Johann C. Rocholl, Florent Xicluna, and Ian Lee.
- pyflakes under the MIT License from Divmod, Florent Xicluna, and other contributors.
- sftp-action under the MIT License from Niklas Creepios.
- ssh-action under the MIT License from Bo-Yi Wu.
Next, the visualization tool has additional dependencies as documented in the visualization readme. Similarly, the community flat files snapshot updater has additional dependencies as documented in the snapshot readme.
Finally, note that the website uses assets from The Noun Project under the NounPro plan. If used outside of https://pyafscgap.org, they may be subject to a different license.
Thank you to all of these projects for their contribution.
Version history
Annotated version history:
2.0.1
: Some minor changes to better support weaker internet connections.2.0.0
: Switch to support new NOAA endpoints.1.0.4
: Minor documentation fypo fix.1.0.3
: Documentation edits for journal article.1.0.2
: Minor documentation touch ups for pyopensci.1.0.1
: Minor documentation fix.1.0.0
: Release with pyopensci.0.0.9
: Fix with issue for certain import modalities and thehttp
module.0.0.8
: New query syntax (builder / chaining) and units conversions.0.0.7
: Visual analytics tools.0.0.6
: Performance and size improvements.0.0.5
: Changes to documentation.0.0.4
: Negative / zero catch inference.0.0.3
: Minor updates in documentation.0.0.2
: License under BSD.0.0.1
: Initial release.
The community files were last updated on Jan 7, 2025.
Citation (CITATION.cff)
cff-version: 1.1.0 message: "If you use this software, please cite it as below." authors: - family-names: Pottinger given-names: A Samuel orcid: 0000-0002-0458-4985 - family-names: Zarpellon given-names: Giulia orcid: 0000-0002-9122-4709 title: Pyafscgap.org abstract: Python-based tools for NOAA AFSC GAP marine species surveys data. license: BSD-3-Clause version: 1.0.2 date-released: 2023-06-02
Owner metadata
- Name: DSE
- Login: SchmidtDSE
- Email: [email protected]
- Kind: organization
- Description: The Eric and Wendy Schmidt Center for Data Science & Environment at Berkeley
- Website: https://dse.berkeley.edu/
- Location: United States of America
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/124641794?v=4
- Repositories: 7
- Last ynced at: 2023-08-07T03:56:15.442Z
- Profile URL: https://github.com/SchmidtDSE
GitHub Events
Total
- Create event: 9
- Release event: 1
- Issues event: 7
- Issue comment event: 1
- Push event: 99
- Pull request event: 15
Last Year
- Create event: 9
- Release event: 1
- Issues event: 7
- Issue comment event: 1
- Push event: 99
- Pull request event: 15
Committers metadata
Last synced: 5 days ago
Total Commits: 643
Total Committers: 2
Avg Commits per committer: 321.5
Development Distribution Score (DDS): 0.005
Commits in past year: 117
Committers in past year: 1
Avg Commits per committer in past year: 117.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
Sam Pottinger | s****r@b****u | 640 |
gizarp | g****n@p****a | 3 |
Committer domains:
- polymtl.ca: 1
- berkeley.edu: 1
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 27
Total pull requests: 96
Average time to close issues: about 1 month
Average time to close pull requests: 1 day
Total issue authors: 2
Total pull request authors: 1
Average comments per issue: 0.7
Average comments per pull request: 0.48
Merged pull request: 96
Bot issues: 0
Bot pull requests: 0
Past year issues: 5
Past year pull requests: 8
Past year average time to close issues: 2 months
Past year average time to close pull requests: 8 days
Past year issue authors: 1
Past year pull request authors: 1
Past year average comments per issue: 0.4
Past year average comments per pull request: 0.0
Past year merged pull request: 8
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- sampottinger (26)
- 7yl4r (1)
Top Pull Request Authors
- sampottinger (96)
Top Issue Labels
- enhancement (2)
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 931 last-month
- Total dependent packages: 0
- Total dependent repositories: 2
- Total versions: 16
- Total maintainers: 1
pypi.org: afscgap
Tools for interacting with the public bottom trawl surveys data from the NOAA AFSC GAP.
- Homepage: https://pyafscgap.org
- Documentation: https://pyafscgap.org/devdocs/afscgap.html
- Licenses: BSD License
- Latest release: 2.0.1 (published 4 months ago)
- Last Synced: 2025-04-25T12:01:10.017Z (2 days ago)
- Versions: 16
- Dependent Packages: 0
- Dependent Repositories: 2
- Downloads: 931 Last month
-
Rankings:
- Dependent packages count: 9.795%
- Dependent repos count: 11.678%
- Forks count: 15.375%
- Average: 15.711%
- Downloads: 18.589%
- Stargazers count: 23.117%
- Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- requests ~= 2.28.2
- actions/checkout v3 composite
- actions/setup-python v4 composite
- Creepios/sftp-action v1.0.3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v1 composite
- appleboy/ssh-action v0.1.8 composite
- openjournals/openjournals-draft-action master composite
- ubuntu jammy-20230301 build
- 218 dependencies
- grunt ^1.5.2
- grunt-contrib-connect ^3.0.0
- grunt-contrib-qunit ^6.1.0
- Flask *
- afscgap *
- geolib *
- toolz *
- Cartopy *
- afscgap *
- geolib *
- jupyterlab *
- matplotlib *
- notebook *
- pandas *
- scipy *
Score: 9.612065160468624