Skip to content

Alternative EchoData Beam_group structure for data from different channel/waveform #1721

Description

@leewujung

Right now we put complex or power-angle data from different channels (or waveforms) into the same Beam_group and pad NaNs for channels that are not transmitting or with less number of samples along the range_sample dimension. The advantage of this is that it makes easier to slice across different data dimensions, but now that we have a lot more complex sample datasets and the various ways to sequence different waveforms, this NaN-padding scheme becomes very inefficient.

An alternative way is to store data from different waveforms (ping library entries) into different Beam_groups, so that there is no cross-channel ping_time padding that is required (though within-channel padding with shorter range would still happen). In addition to storage efficiency, this will also make finding the right matching coefficients during compute_Sv way more efficient: right now it needs to find the match on a ping-by-ping level, but if we store each waveform in a separate Beam_group, we just need to index the Beam_groups.

This will require a larger change to the codebase, but I think it's worth doing now that we can have a diversity of transmission schemes.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions