-
Notifications
You must be signed in to change notification settings - Fork 295
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
Add arctic weather satelliter l1b reader #2565
base: main
Are you sure you want to change the base?
Add arctic weather satelliter l1b reader #2565
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2565 +/- ##
========================================
Coverage 96.06% 96.06%
========================================
Files 373 375 +2
Lines 54465 54691 +226
========================================
+ Hits 52321 52539 +218
- Misses 2144 2152 +8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just two comments for now.
name: aws_l1b_nc | ||
short_name: AWS L1B RAD NetCDF4 | ||
long_name: AWS L1B Radiance (NetCDF4) | ||
description: Reader for the ESA AWS (Arctic Weather Satellite) Sounder level-1b files in netCDF4. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a link to online documentation of the format we could use?
…cation and angles Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
Pull Request Test Coverage Report for Build 11277592514Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks very nice, many thanks!
So, just a comment/observation. The AWS testdata file delivered August 2023 has the datasets structured a bit odd and different from most other satellite datasets (e.g. the EPS-SG MWS testdata which format it is supposed to follow). Here a phrase communicated to ESA abouth this layout issue: "The ordering of the dimensions is unexpected, e.g. for “aws_toa_brightness_temperature” we have (19, 145, 4991) which is (n_channels, n_fovs, n_scans). But in netCDF the first dimension is always the one that varies the most slowly. For MWS the order is reversed, i.e. (n_scans, n_fovs, n_channels)." This ordering currently has the unfortunate consequence that the optimal radius of influence used for remapping cannot be determined. The method I am preparing a PR for Pyresample on this. Until now one has to provide a reasonable value (say 40000) for When doing this one may be able create an image like the below using code similar to this (I have here skipped the decoration/coast overlay part for simplification):
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments inline. I'd like some clarifiactions, but in general LGTM!
- QH | ||
- QV |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, what are these polarizations? It's been ages when I've done anything with microwave data, and from there I just remember H (horizontal linear polarization), V (vertical), VH (send vertical, receive horizontal, for radars), LHC (left-handed circular), RHC but nothing starting with Q comes to mind.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pnuu The Q here stands for "Quasi"
"QV" means Vertical polarization in nadir, but as the mirror rotates towards the scan edges, the radiation measured will be effectively containing more and more contribution from H and less from V.
By design it is not possible to measure only one component.
central: 325.15 | ||
side: 1.2 | ||
bandwidth: 0.8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to clarify, there's one 800 MHz wide side-band 1.2 GHz below and above the central frequenzy?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exactly!
Also see the figure I made for MWS (which has both "quadruple side-bands" and "double side-bands") here:
https://user-images.githubusercontent.com/169069/171609031-a1a26b42-211e-411a-92bb-93d090eccb7c.png
satpy/readers/aws_l1b.py
Outdated
AWS_CHANNEL_NAMES_TO_NUMBER = {"1": 1, "2": 2, "3": 3, "4": 4, | ||
"5": 5, "6": 6, "7": 7, "8": 8, | ||
"9": 9, "10": 10, "11": 11, "12": 12, | ||
"13": 13, "14": 14, "15": 15, "16": 16, | ||
"17": 17, "18": 18, "19": 19} | ||
|
||
AWS_CHANNEL_NAMES = list(AWS_CHANNEL_NAMES_TO_NUMBER.keys()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The name -> number conversion is not used, so this could be simplified to
AWS_CHANNEL_NAMES_TO_NUMBER = {"1": 1, "2": 2, "3": 3, "4": 4, | |
"5": 5, "6": 6, "7": 7, "8": 8, | |
"9": 9, "10": 10, "11": 11, "12": 12, | |
"13": 13, "14": 14, "15": 15, "16": 16, | |
"17": 17, "18": 18, "19": 19} | |
AWS_CHANNEL_NAMES = list(AWS_CHANNEL_NAMES_TO_NUMBER.keys()) | |
AWS_CHANNEL_NAMES = [str(i) for i in range(1, 20)] |
And if there's a need for the conversion you could have a utility function to convert from name to the number. Or just use int(name)
.
def _name2num(name):
return int(name)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose I was not sure if we should name the channels 1 to 19 or as indicated on the ESA web site by using two digits where the first one indicate the group...
https://www.esa.int/Applications/Observing_the_Earth/Meteorological_missions/Arctic_Weather_Satellite/The_instrument
I somehow thought we had merged this long ago? Sorry for not coming back to your comments/questions earlier! |
Any news on the new test dataset? |
Test data is supposed to come in ~2 weeks according to latest news from ESA (August 16). Let's hope this latest forecast is more accurate than the previous. |
Signed-off-by: Adam.Dybbroe <[email protected]>
…rption channel for the blue band rather than highest Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
This PR adds a reader for the ESA Arctic Weather Satellite (AWS) l1b format.
The AWS file format is netCDF and supposed to follow the EPS-SG MWS level-1b format. See https://www.eumetsat.int/media/44139
However, please be aware that there are some issues with the level-1b format of the test data we have acquired from ESA. It is yet unsure to what extent ESA will adapt to our feedback.
AUTHORS.md
if not there already