Skip to content

Enable processing CW/FM interleaving data#1508

Merged
leewujung merged 120 commits intoOSOceanAcoustics:mainfrom
leewujung:fm_cw_interleave
Apr 13, 2026
Merged

Enable processing CW/FM interleaving data#1508
leewujung merged 120 commits intoOSOceanAcoustics:mainfrom
leewujung:fm_cw_interleave

Conversation

@leewujung
Copy link
Copy Markdown
Member

This addresses #1506 and #1507 in one go, since they are tightly linked.

@ctuguinay : I think I've only gotten to store ping-by-ping filter coefficients (FIL1 datagram), but it's been a while so my memory is pretty faded. Please check. Thanks a lot for picking this up!

@leewujung leewujung moved this to In Progress in Echopype 2026 Apr 2, 2026
@leewujung leewujung moved this from In Progress to In Review in Echopype 2026 Apr 2, 2026
Comment thread echopype/convert/parse_base.py Outdated
Comment thread echopype/echodata/echodata.py Outdated
Comment thread echopype/echodata/echodata.py Outdated
@leewujung
Copy link
Copy Markdown
Member Author

@ctuguinay : I have made a number of changes to clean a few things up - the main things are:

  • the logic surrounding calibrate using using a single or multiple different filter_time in calibration/api.py::_compute_cal()
    • there are many remaining TODOs that I don't think I can get to in the next few days, so I think we can go ahead to merge this (because the code works) to get a release ready, and then debug/fix in a later release
  • simplify _retrieve_correct_beam_group_EK80 to return only 1 beam group name
    • I think _retrieve_correct_beam_group_EK60 and _retrieve_correct_beam_group_EK80 can be merged to leave just one function, but am also running out of time to do that -- will fix in a later release

I also have a question about this code block: I couldn't immediately figure out why this block would not work when there is only 1 filter_time in the Vendor-specific group, but it fails test_ek80_BB_complex_multiplex_NaNs_and_non_NaNs for both files:
https://github.com/leewujung/echopype/blob/62aeaf19100ed39a07ca4e2e4b7c049b0ef54531/echopype/calibrate/api.py#L127-L164
For the first file "NYOS2105-D20210525-T213648.raw" , instead of producing Sv with 4 channels, it only produces data for 2 channels. I think something is not quite right for the stack operation, but I couldn't figure out why dropna("pairs") drops those channels. Maybe you know?

@leewujung leewujung changed the title Enable processing CW/FM interleaving data [all tests ci] Enable processing CW/FM interleaving data Apr 13, 2026
@leewujung leewujung merged commit 846b002 into OSOceanAcoustics:main Apr 13, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from In Review to Done in Echopype 2026 Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants