[go: nahoru, domu]

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added alpha-version code for new AZFP6 format #1323

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

dash-uvic
Copy link

Added in initial code for the new AZFP6 sensor format for *.azfp files from ASL Environmental services. The data is in a new format and has additional optional GPS information. The XML file is now embedded into the data file. No tests added.

@leewujung
Copy link
Member

Hey @dash-uvic : Thanks for the contribution! Could you fix the pre-commit errors? Also let us know what files you would like to add to the CI. As always, small files are better!

@dash-uvic
Copy link
Author

Fixed pre-commit errors.

@codecov-commenter
Copy link
codecov-commenter commented Jun 7, 2024

Codecov Report

Attention: Patch coverage is 17.30280% with 325 lines in your changes missing coverage. Please review.

Project coverage is 44.76%. Comparing base (9f56124) to head (96e52fa).
Report is 54 commits behind head on main.

Files Patch % Lines
echopype/convert/parse_azfp6.py 16.14% 239 Missing ⚠️
echopype/convert/set_groups_azfp6.py 16.66% 85 Missing ⚠️
echopype/core.py 66.66% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1323       +/-   ##
===========================================
- Coverage   83.52%   44.76%   -38.76%     
===========================================
  Files          64       66        +2     
  Lines        5686     6194      +508     
===========================================
- Hits         4749     2773     -1976     
- Misses        937     3421     +2484     
Flag Coverage Δ
unittests 44.76% <17.30%> (-38.76%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

from .set_groups_base import SetGroupsBase


class SetGroupsAZFP6(SetGroupsBase):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dash-uvic : It seems that a lot of the code here are copy-pasted here from SetGroupsAZFP? If that's the case, why don't you inherit from that and can only change the parts that are different? (Note I have not gone in detail to compare what was changed).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the hardware is still in flux (so Sv values, battery calculations, etc. may change) I decided to keep it separate for now, and then create a base class both ULS5/6 (both in groups and converter classes) would inherit from if we end up going with the current setup. You're right, the AZFP6 group has not changed a lot, and I don't think it'll change much in the future so I rewrite that to inherit from the original AZFP group

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To make sure I understand, the approach you are taking is to have 2 completely separate class for now and then will merge the common components to have a base class for both after the hardware is settled?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's my intention. Or if not a base class, inherit from the current AZFP class but as the class structure will remain the same, even if the internal function changes, so it makes sense to abstract and inherit. If there is a preference for how you'd like the code structure, I'm flexible.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think both would be fine. It seems that inheriting from a common based class into separate ULS5/6 classes would make it pretty extensible (not that anyone wants to think about more changes at the moment... lol), so we can go with that. :)

@leewujung
Copy link
Member

Hey @dash-uvic : Thanks for fixing the pre-commits.

I've just approved for the CI to run on this PR. If you could add file conversion tests to run on some example test files, that will allow us to review the changes more easily.

The way we organized test data now is for you to share the files with us with the specific path you would like those to be in under echopype/test_data/ (so these should correspond with what your tests use). We will add them to a google drive that the CI pulls automatically on each test run. This will change hopefully later this summer/fall to use GitHub Release Assets, but for now we will continue with this setup.

@leewujung
Copy link
Member
leewujung commented Jun 29, 2024

@dash-uvic : I saw that you added some tests and just "approved" the workflow to run - I think usually for a PR it just needs to be approved once and then it'll always run for new changes. If you see that stalled somehow feel free to ping me directly.

@dash-uvic
Copy link
Author

@leewujung What's the best method for adding/sending you the test files (average ~50M but there is a larger ~400M file)?

@leewujung
Copy link
Member

@dash-uvic : Is there a reason why the files need to be that large? If not, could you generated some smaller files? Large files will make CI runs a lot slower.

@dash-uvic
Copy link
Author

@leewujung Yeah I can probably truncate the larger azfp file down to fewer timesteps and remove unrequired fields from the expected output Mat file. I think doing that I can get them down to ~10M if that's sufficient.

@leewujung
Copy link
Member
leewujung commented Jul 2, 2024

@dash-uvic : Yes ~10MB would be nice. Thanks!

Also if it is easy for you to put the files on a cloud folder somewhere, I can download them and put them in the docker image we currently use for the CI. We would like to move all files to use the github release assets, but don't have time to do it just yet...

@dash-uvic
Copy link
Author

@leewujung Ok sounds goods, I'll put them on a cloud and email you the link next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

None yet

4 participants