Development roadmap#

Dependency#

Echopype depends on many libraries in the scientific Python ecosystem, and therefore need to keep up with their updates. The two big ticket items that we hope to resolve soon are:

  • Upgrade to use Numpy version 2

  • Upgrade to use Zarr version 3

See the requirements.txt file for the current pinned versions. We aim to remove the specification of maximum version (e.g., zarr<3) whenever possible.

Data conversion and standardization#

Echopype currently support converting files from a few echosounder models to netCDF or Zarr files following a modified version of the ICES SONAR-netCDF4 convention. As the core data representation stabilizes, the next steps are to:

Rule-based algorithms#

We plan to add more common rule-based (i.e. non-ML) echosounder data analysis algorithms into Echopype. The high priority items are:

  • Full support for broadband processing (in the calibrate subpackage)

    • currently calibrate.compute_Sv supports generating band-averaged Sv for broadband data

  • Noise removal (in the clean subpackage)

  • Regridding (in the commongrid subpackage)

  • Bottom detection (in the mask subpackage)

  • Swarm or school detection (in the mask subpackage)

  • Single target detection (in the mask subpackage)

  • Calibration and other utility functions

    • standard target calibration

    • updated estimates of sound speed and absorption coefficients

    • water column profile-based (rather than water column average-based) Sv and TS computation

Note

Echopype is designed to be used as a programmatic API and not for manual editing. For interactive visualization, check out Echoshader.

Data processing levels#

Parallel to Echopype, the Echostack team is also working on defining a set of “data processing levels” for echosounder data: see the proposal in Echolevels. Clearly defined data processing levels are conducive to broader data usage. Many Echopype functions generate prototype data provenance and processing level information as data attributes. However, both the proposed data processing levels and the implementation require revision. Please chime in with any input or questions via GitHub issues!

Echostack: Companion developments#

Echopype focuses on data standardization, aggregations, and processing for building efficient and scalable data workflow. To address other needs in integrative analysis of echosounder data, check out the following companion libraries in the Echostack:

  • Echoregions: Interface with echogram interpretation masks from physics-based or data-driven methods

  • Echoshader: Interactive visualization widgets leveraging the HoloViz suite of tools

  • Echopop: Incorporate trawl biological data and scattering models for biomass estimation, currently focused on Pacific hake

  • Echodataflow: Orchestrate workflow on the cloud or local platforms

  • Echolevels: Proposed specifications of echosounder data processing levels