Releases: SchmidtDSE/afscgap
v2.0.0
A start to the 2.x series
🐟 We have a new year and now we have a new release! 🎉 The focus of this latest version is to support updated upstream datasets.
🔭 Overview
This new release supports updated upstream datasets. These new data products from NOAA add important features like a system-wide species list. We thank them very much for their hard work on this important service! All that said, though the community flat files have changed in response, the API for this Python library remains (almost entirely) the same.
⭐️ What’s new
Some of the internal mechanics of the library have evolved to accommodate the new upstream datasets.
New major version
Despite largely maintaining the same library API (for pyafscgap
), we are moving to a new major version given the new global species list and because some lesser used functionality was deprecated.
Incomplete species information
We now add support for some records which have incomplete species information. These data may report on species outside of the formal species list. Note that they are marked as incomplete and not subject to zero inference.
Community flat files expanded
The new upstream dataset cannot reference catches by metadata. Therefore, catch filtering by survey or haul attribute is no longer efficiently possible from the upstream service. For example, official guidance for R users is to download all catches. In response, community flat files now offer indexed information about catch data via community Avro files in addition to the previous haul index. Avro indicies prevent the need to download the all catches for most requests.
🔧 What’s changed
There are some internal changes to this library even as the API it offers Python developers remains the same.
Community files changed to Avro
The community flat files still maintain a haul index but now use Avro. See the community Avro files documentation for further details. This adds fastavro as a dependency.
New strategy implementors
The structure of the library allows for multiple implementations of the same API (different cursor
objects and implementors of the Model
interface). We have removed the prior implementors using the now deprecated upstream endpoints. The new implementation interacts with the flat files by making requests for static files via HTTPS.
More specific haul locations
Instead of a haul having a single location, there is now a haul start and end location. For backwards compatibility, the midpoint of these start / end points is used when requesting the point location of a haul. Filters will return records by filtering using midpoint for compatibility.
New inference logic
As reflected in our documentation, the global species list means that zero catch inference is now more accurate. More specifically, zero catch data generation now uses the global species list as opposed to inferring that list from returned catch data. This means that it is no longer an approximation for formally tracked species. That said, this generally only applies to those not using a species filter and reporting on hauls without any catch records.
Manual pagination removed
As catches cannot be filtered by their hauls through ORDS, pagination happens within the library as it moves between different Avro files. Therefore, manually requesting ORDS pages has been removed.
⏳ What’s left
There’s a few leftovers that we are holding out on for the purpose of providing access to 2024 data.
- The visualization is not updated yet though the code generated is still valid. See #117.
- The notebook is note technically updated though it may be re-run without changing code which is still valid. See #118.
- Filters for start and endpoints are not yet added. See #119.
Finally, in conversation with community members, it was desirable to deprecate the community flat files but that is not possible given current available services and a desire to maintain compatibility with the 1.x
series. This is currently considered a non-goal until upstream changes or a 3.x
release.
⛴️ Thanks
This starts our third year of offering this service. Thank you to the community!
1.0.4
Python-based tool chain ("Pyafscgap.org") for working with the public bottom trawl surveys data from the NOAA AFSC GAP. This provides information 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.
This version introduces minor documentation edits over 1.0.0
through 1.0.3
.
1.0.3
Python-based tool chain ("Pyafscgap.org") for working with the public bottom trawl surveys data from the NOAA AFSC GAP. This provides information 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.
This version introduces minor documentation edits over 1.0.0
through 1.0.2
.
1.0.2
Python-based tool chain ("Pyafscgap.org") for working with the public bottom trawl surveys data from the NOAA AFSC GAP. This provides information 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.
This version introduces minor documentation edits over 1.0.0
and 1.0.1
.
1.0.1: Minor documentation fix
Same as 1.0.0 but with a minor documentation fix in README.
1.0.0
Through to PyOpenSci with the builder interface, chaining, microsite, and more. Thanks to everyone's help over at pyOpenSci/software-submission#93!