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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions