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

Rayleigh correction in bands l2 of the ABI sensor #957

Closed
urielzan opened this issue Nov 5, 2019 · 4 comments
Closed

Rayleigh correction in bands l2 of the ABI sensor #957

urielzan opened this issue Nov 5, 2019 · 4 comments
Labels

Comments

@urielzan
Copy link

urielzan commented Nov 5, 2019

Rayleigh correction in bands l2 from ABI sensor

Could we applied Pyspectral rayleigh correction at ABI L2 bands? We would like to obtain numpy arrays to generate cleaner products.

@djhoese
Copy link
Member

djhoese commented Nov 5, 2019

This would require providing rayleigh corrected reflectances to the ABI L2 software (ex. CSPP Geo AIT Framework). To do this would require producing NetCDF files in Satpy that resemble the original L1b files. This is not possible out of the box right now, but could possibly be done with a custom script which writes out the NetCDF files using Satpy's cf writer. This would require making sure the global attributes and variable attributes match those of the L1b file.

Secondly, and probably more importantly, the L2 algorithms are not necessarily designed to be run with rayleigh corrected data. They may have adjustments of their own that remove some level of atmospheric correction or at the very least they may adjust their calculations assuming that atmospheric scattering is occurring.

Another option would be to call the L2 algorithms from Python with the data loaded by Satpy. This is outside the scope of Satpy; at least the core package.

If I've misunderstand your question or if I've raised more questions, let me know.

@adybbroe is one of the creators of pyspectral's rayleigh correction and may have other opinions on the matter.

@urielzan
Copy link
Author

urielzan commented Nov 6, 2019

Thanks for your answer, we wrote @adybbroe and he give us a complementary answer. If you want to consult that it is in:
pytroll/pyspectral#90

I am going to close this issue.
Regards.

@urielzan urielzan closed this as completed Nov 6, 2019
@djhoese
Copy link
Member

djhoese commented Nov 6, 2019

I'm confused. You can produce rayleigh corrected ABI L1b bands perfectly fine in Satpy and it will call pyspectral for you. No need to use pyspectral directly/manually. The part that isn't possible is feeding that data in to an ABI L2 algorithm which I thought was the main point you were trying to solve. Doing the rayleigh correction directly with pyspectral doesn't change that.

@urielzan
Copy link
Author

urielzan commented Nov 6, 2019

Ok thank you very much, now I understand that it is easier to use satpy for obtaining reflectance with rayleigh correction.

Yes, I had an error mentioning l2, I was referring specifically to the bands of reflectance in the CMI product, but I understand that these already have a type of correction, what I want to obtain are bands 2, 3 and 5 in reflections corrected with rayleigth for an index that it requires.

I'll try satpy with the load function and the 'sunz_corrected' and 'rayleigh_corrected' modifier as you mentioned @adybbroe.

@urielzan urielzan reopened this Nov 6, 2019
@urielzan urielzan closed this as completed Nov 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants