Closed djhoese closed 6 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Comparison is base (
989d9f0
) 95.39% compared to head (fb21a71
) 95.39%. Report is 2 commits behind head on main.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@djhoese I read your comments about the missing data and 16 bit integers versus 32 bit floats, and I agree with you, that it is not worth the risk of breaking the existing behavior. I do not know of anyone who is using the Sfc_type
parameter right now from these MiRS files.
Totals | |
---|---|
Change from base Build 7379871277: | 0.002% |
Covered Lines: | 50386 |
Relevant Lines: | 52509 |
Note: If NOAA-21 data is provided to this reader as-is it will fail to process because it will try to load/retrieve coefficient files that are not configured in the reader's YAML. We're currently doing this in our own custom configuration in Polar2Grid by replicating the NOAA-20 files for NOAA-21.
I need this PR to continue the work I'm doing that has a pretty tight deadline. I'm going to merge this now and if anyone does a post-merge review I can address issues then.
In the near future we hope to have limb correction for NOAA-21 from the algorithm developers. In the mean time we (the CSPP Polar2Grid team - @kathys) will use the NOAA-20 coefficients as if they were meant for NOAA-20. This PR fixes the MiRS reader so it can detect coefficient files for other NOAA satellites, not just NOAA-20 as it did previously.
This PR also includes a lot of refactoring and fixes for preserving 32-bit floats instead of accidentally upcasting to 64-bit floats.
Note to @kathys: I'm not sure we knew this but Sfc_type (surface type) is never treated as a mask variable from what I can tell in the unit tests here. Due to the way these files are structured (and that some satellite's files have less metadata than others) we use the global "missing_value" attribute which triggers the reader code to say "let's check for fills and replace with NaN". So this converts 16-bit integers to 32-bit floats. I could fix this, but it would risk breaking existing behavior and I'm not sure we have the time/funding/desire to go down that road so I'm leaving the behavior as is. Let me know if you think otherwise. In the end it probably doesn't change anything for us in Polar2Grid either way (for surface_type that is).
AUTHORS.md
if not there already