-
Notifications
You must be signed in to change notification settings - Fork 299
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.10% 96.01% -0.09%
==========================================
Files 377 380 +3
Lines 55163 55445 +282
==========================================
+ Hits 53012 53234 +222
- Misses 2151 2211 +60
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?
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.
No, unfortunately not, but there will soon be for EPS-Sterna. Not exactly the same format, but close. I hope that the same code can be used for both, but using different yaml files perhaps
…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]>
Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
Signed-off-by: Adam.Dybbroe <[email protected]>
@pytroll/core Do you what this is that cause the CI tests to fail now? |
This PR adds a reader for the ESA Arctic Weather Satellite (AWS) l1b format, as well as the corresponding EUMETSAT AWS Level-1b format. The latter to become the EPS-Sterna level-1b file format.
The ESA AWS file format is not documented anywhere but is netCDF and supposed to follow the EPS-SG MWS level-1b format. See https://www.eumetsat.int/media/44139
Here a draft version of the EPS-Sterna level-1b file format, as od December 2024:
[Uploading EPS-Sterna Level 1B Product Format Specification (PFS) v1C [Approved].docx…](EPS-Sterna l1b file format specification)
ESA has also developed a level-1c processor, mapping the data for all four channels groups (feed horns) to one of the groups, default is the 183 GHz group. This PR also includes a first reader for this L1c file format. The ESA L1c file format is neither documented, but it is following the L1b format closely.
This PR was started autumn 2023 where the ESA AWS level-1b file format had not matured. Now, the format is supposed to be the final, and we have used first real data processed and delivered to us (SMHI among other partners in the MWS/AWS SAG and EUMETSAT) in November 2024.
AUTHORS.md
if not there already