-
Notifications
You must be signed in to change notification settings - Fork 309
Use effective_solar_pathlength_corrected for cloud type and cloud phase #3032
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
base: main
Are you sure you want to change the base?
Use effective_solar_pathlength_corrected for cloud type and cloud phase #3032
Conversation
Use the solar_pathlength_corrected modifier for cloud type and cloud phase RGBs for FCI. This makes the composite usable closer to the terminator but without the saturation seen in the ABI versions.
Nice work on this, it's clear that there is quite some more information to get from the imagery. But I have two questions:
And as a comment, I still find that at least for the thick part of the frontal cloud close to the terminator the level of saturation is a bit too high. But I'm also aware that it's hard to find settings that works well for all conditions. |
Fixed modifier name for solar pathlength corrected.
Oops. Only in my local recipes. Fixed with 6d5fe19. It shows why we need the automated imagery tests, and probably we should indeed merge #3013 first (where I added more on the behave tests) so I can leverage this! Will check the versions with |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3032 +/- ##
==========================================
- Coverage 96.23% 96.22% -0.02%
==========================================
Files 398 398
Lines 57325 57382 +57
==========================================
+ Hits 55168 55217 +49
- Misses 2157 2165 +8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Pull Request Test Coverage Report for Build 15068599121Warning: 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 |
Cloud type night IR 10.5, before: Cloud type night IR, after: Cloud phase night IR, before: Cloud phase night IR, after: For curiosity, our internal
whereas the satpy one is defined as: satpy/satpy/etc/composites/visir.yaml Lines 14 to 17 in 40a62fa
The version I showed in the initial issue description is with Cloud type with the effective solar pathlength corrector, default Cloud type with the solar pathlength corrector, no |
For the So perhaps you can add your local Thanks for the addition day/night blends. Doesn't seem to be much affected. But I believe that with these changes we can do the day/night blending at higher sunz angles to retain more of the daytime imagery, but that might be for another PR. |
Thank you for your work and analysis! |
There is a tradeoff between æsthetics and the ability to extract information. This is probably true for any RGB based on solar channels and also when considering the day/night-transition in geo colour. And any RGB, as well as quantitative products, will lose quality approaching the terminator. Maybe cloud type is more affected here because NIR 1.3 is so dark already. For our operational users, the ability to extract information is more important than æsthetics. I think they will accept and understand that. Colours are a bit different and noise becomes visible. OK.
Yes, the current PR code modification uses the default |
I agree that information content is more important than aesthetics, at least for the default recipe (a user interested in only PR-like nice looking images can still tune a different recipe to their wishes, but I'd say that the general focus should be on meteorological usability and usefulness). |
Really nice work! |
I'm all for removing artefacts, but removing the entire area that has artefacts in it has something of throwing out the child with the dirty bathwater... |
See also #3096 where @strandgren has made an excellent write-up of the different correction reductions near the terminator. |
solving one merge conflict
Sticking with correction limit 86 degree: correction limit 87 degree: correction limit 88 degree: correction limit 89 degree: correction limit 90 degree: with correction limit 86 degree: correction limit 87 degree: differences start to become small here, because the right part is taking over when using The same for cloud phase: correction limit 86 degree: correction limit 87 degree: correction limit 88 degree: |
@gerritholl Can you please add an example with this configuration as well:
which effectively disables the reduction functionality starting at Sorry for my unavailability this week, ping me on slack if you want me join any discussion on this. |
Thanks, actually I prefer this one. With 90 degrees there is a red tint for the space part. Furthermore, the ice clouds in the north are less saturated with 150 degrees compared to 90 degrees. I also thinks it an added value if we can say that we use the Li and Shibata parameterization as is, rather than a tweaked version of it. |
Set the default correction limit to 90° for the ``effective_solar_pathlength_corrected`` modifier in ``visir.yaml``. Add image comparison test. Add documentation on how to add a new image comparison test.
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.
LGTM, just one question regarding consistency.
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.
start behave test
# max_sza None means no reduction beyond correction_limit, see https://github.com/pytroll/satpy/issues/3096 | ||
max_sza: !!null | ||
correction_limit: 150 # use "raw" Li/Shibata without correction |
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.
This change will impact any composite that uses this default modifier, so not only the FCI Cloud type and Cloud Phase RGBs. Given the discussion during and past the RGB workshop I guess that's fine and even preferred. But in that case I suggest to modify the PR title and description to make this more clear.
alternatively make a local modifier inside ./satpy/etc/composites/fci.yaml
and then we change the default in a separate PR, potentially the one I want to do at some point refactoring the code for the standard and Li and Shibata sunz corrections.
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
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.
start behave test
Use the pure Li/Shibata
effective_solar_pathlength_corrected
modifier for cloud type and cloud phase RGBs for FCI. This makes the composite usable closer to the terminator, but without the saturation seen in the ABI versions. The pure correction is achieved by setting the correction limit very high (150 degree).Add an imagery test and documentation on how to add imagery tests.
See below (also the comments) for different versions.
Cloud type with only
sunz_corrected
(satpy name:cimss_cloud_type
):Cloud type with
sunz_corrected
andsunz_reduced
(satpy name:cloud_type
):Cloud type with
solar_pathlength_corrected
:Cloud type with
solar_pathlength_corrected
andrayleigh_corrected
(for VIS 0.6):Cloud phase with
sunz_corrected
andsunz_reduced
:Cloud phase with
solar_pathlength_corrected
:Cloud phase with
solar_pathlength_corrected
andrayleigh_corrected
(for VIS 0.6):