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

NEXRAD Level2 structured reader #158

Merged
merged 14 commits into from
Mar 13, 2024
Merged

Conversation

kmuehlbauer
Copy link
Collaborator

@kmuehlbauer kmuehlbauer commented Mar 6, 2024

This is a rewrite of #147 using parts of the structured reader of the iris/sigmet reader. This also enhances the ability of reading much more metadata from the nexrad level 2 archive.

Note: this only implements MSG_31 as of now. MSG_1 need to be included after adding such file to open-radar-data repo.

There is also relevant code over in https://github.com/jthielen/xradar/tree/nexrad-level2 by @jthielen, which should be added to this structured reader in a follow-up PR.

@kmuehlbauer
Copy link
Collaborator Author

Finally linting is good. Had outdated version on my machine 😬

@kmuehlbauer
Copy link
Collaborator Author

@mgrover1

This only reads the absolutely necessary metadata to get a hunch on sweeps/moments. Everything else is read when first requested by xarray (so it's lazy too). The reader uses numpy.memmap (like the sigmet reader). Will push the fixture in a minute...

Copy link

codecov bot commented Mar 6, 2024

Codecov Report

Attention: Patch coverage is 94.62963% with 29 lines in your changes are missing coverage. Please review.

Project coverage is 91.30%. Comparing base (a854715) to head (63301e9).

Files Patch % Lines
xradar/io/backends/nexrad_level2.py 94.51% 29 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #158      +/-   ##
==========================================
+ Coverage   90.79%   91.30%   +0.51%     
==========================================
  Files          20       21       +1     
  Lines        3421     3956     +535     
==========================================
+ Hits         3106     3612     +506     
- Misses        315      344      +29     
Flag Coverage Δ
notebooktests 80.71% <87.96%> (+1.11%) ⬆️
unittests 89.61% <87.77%> (-0.31%) ⬇️

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.

@kmuehlbauer
Copy link
Collaborator Author

@mgrover1 Somehow my rebase threw away to much. Finally this is working again. Maybe we can talk in the next days, if necessary?

@mgrover1
Copy link
Collaborator

mgrover1 commented Mar 6, 2024

yes! next week's radar community meeting?

Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

Copy link
Collaborator

@mgrover1 mgrover1 left a comment

Choose a reason for hiding this comment

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

This looks great - thanks for your hard work here @kmuehlbauer

@mgrover1
Copy link
Collaborator

The docs and test coverage look great - we can continue to iterate + test through other PRs - what do you think about merging @kmuehlbauer ?

@kmuehlbauer
Copy link
Collaborator Author

Let's wait after the meeting today. There are some issues which I want to show before we get this in.

@mgrover1
Copy link
Collaborator

I am putting together a notebook right now comparing the data fields from Py-ART + xradar here as well... which should help us understand some of the differences?

@kmuehlbauer
Copy link
Collaborator Author

I am putting together a notebook right now comparing the data fields from Py-ART + xradar here as well... which should help us understand some of the differences?

Great idea! One major difference is that this PR does not mask the data. We would need to think how we want to handle masking in the future. But we can make first make a list with the current differences.

@kmuehlbauer
Copy link
Collaborator Author

@mgrover1 If you think we should move forward from here, please go ahead and merge. I'll add several issues dedicated to different aspects/downsides of this implementation. Please also add any issues you find to the tracker, so that we can work on fixing enhancing.

@mgrover1
Copy link
Collaborator

Great!! Agreed 😄

@mgrover1
Copy link
Collaborator

@kmuehlbauer - should we close out #40 here and open new issues related to more specific improvements?

@kmuehlbauer
Copy link
Collaborator Author

Or let's use this issue (#40) as a tracking issue. We could list all related PR/issues there? Can also pin that issue to the top. WDYT? I'm also good with closing #40.

@mgrover1
Copy link
Collaborator

Ohh I like that idea... that can be the issue we refer back to + scaffold out. We can rename it to NEXRAD Support, and refer to the different readers and improvements.

@mgrover1
Copy link
Collaborator

I created #160 to reflect this single reader, and modified #40 accordingly. Sound reasonable @kmuehlbauer ?

@kmuehlbauer
Copy link
Collaborator Author

@mgrover1 Yes, sounds good.

@mgrover1 mgrover1 merged commit 56a9ca1 into openradar:main Mar 13, 2024
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

ENH: Add a NEXRAD Level2 Reader
2 participants