Comments (8)
@urielzan Just to add to what @adybbroe says, one of the medium-term goals of my colleagues is to include the CAMS aerosol forecast, to enable a more accurate retrieval that doesn't use a climatology. It probably won't be available until the middle of 2020 at the earliest, but I thought I'd let you know.
from pyspectral.
Hi @urielzan
Yes indeed you could. In the example you found we derive the background (climatological) "rayleigh scattering" (it is not only the rayleigh scattering part but that is dominating - we also correct for atmospheric absorption by aerosols) contribution to the signal. This part should then be subtracted from the obtained uncorrected reflectance.
Se here as well:
https://pyspectral.readthedocs.io/en/master/rayleigh_correction.html
You can do it for all bands in the 400-700 nanometer regions.
from pyspectral.
Thanks for your answer, We have other question:
Are there in pyspectral or another the sunz, satz and ssadiff parameters calculation to obtain it for ABI L1b?
Regards
from pyspectral.
You would be able to get the sun-satellite viewing geometry when reading the data with Satpy.
But if I understand your quest correctly, you want to be able to read ABI level-1 data and generate the atmosphere (Rayleigh etc) corrected reflectance. Also this can be done quite easily with Satpy (using Pyspectral underneath). Here a quick example:
from glob import glob
from satpy.scene import Scene
from satpy.dataset import DatasetID
from satpy.utils import debug_on
debug_on()
fl_ = glob("/home/a000680/data/GOES-16/20180114/OR_ABI-L1b-RadF*")
scn = Scene(reader='abi_l1b', filenames=fl_)
scn.load([DatasetID(name='C01', modifiers=('sunz_corrected', 'rayleigh_corrected')),
DatasetID(name='C01', modifiers=('sunz_corrected',))])
new_scn = scn.resample(resampler='native')
dsids = new_scn.keys()
print(dsids)
print(new_scn[dsids[0]][8000:8002, 8000:8002].values)
print(new_scn[dsids[1]][8000:8002, 8000:8002].values)
In my case it gave this output:
[DatasetID(name='C01', wavelength=(0.45, 0.47, 0.49), resolution=1000, polarization=None, calibration='reflectance', level=None, modifiers=('sunz_corrected',)), DatasetID(name='C01', wavelength=(0.45, 0.47, 0.49), resolution=1000, polarization=None, calibration='reflectance', level=None, modifiers=('sunz_corrected', 'rayleigh_corrected'))]
[[17.82372238 17.82372238]
[17.82372238 17.82372238]]
[[5.26325568 5.2656558 ]
[5.26494942 5.26734895]]
So in this example the second dataset loaded contains the corrected reflectances for the complete ABI Conus.
from pyspectral.
Thank you very much, yes, it is exactly what I want to do, obtaining these bands corrected by rayleigth for the calculation of an index, I will try the code for conus.
from pyspectral.
@urielzan Fine, I am glad. I think what you try doing is fine, but you should be aware that the correction we apply is purely a "climatological/view-geometry" one. It does not account for the actual aerosol load in the line of sight of the satellite of course. So, in case you want to derive information about the surface (LAI or NDVI for instance) your retrieval will of course be affected negatively in cases of events (e.g. smoke or dust) with excessive aerosol loads, just as it will also be affected by clouds if these are not removed correctly. But, hopefully using the "corrected" reflectances should give you a better input to your retrievals than the non-corrected!
All this you are probably well aware of, just wanted to make a disclaimer!
Good luck!
from pyspectral.
@adybbroe Yes, I am taking into account all these considerations, for the clouds I use the product L2 ACM and the index that I try to obtain is the Index of alternative floating algae (AFAI) tested in MODIS, the index requires the correction of Rayleigth, it is only a test to know the result in ABI.
Thanks again for the prompt responses.
from pyspectral.
@simonrp84 ok thanks for the news, I will be aware of the publication
from pyspectral.
Related Issues (20)
- `rayleigh.py` needs refactoring - mainly concerning the handling of Dask vs non-Dask input
- Implement RSRs for AGRI aboard FengYun-4B HOT 2
- Could you add spectral response function for GCOM-C/SGLI sensor ? HOT 3
- On the application of spectral response function HOT 2
- Add FY4B AGRI bands HOT 1
- tb2rad_dir as config option is not documented
- NOAA-6 spectral responses are wrong for channel 1 & 2 HOT 2
- Investigate `np.nan_to_num` usage in Rayleigh correction
- Rayleight correction reflectance with Landsat 8 HOT 1
- Pyspectral is trying to read wrong RSR file for FY-3D/MERSI-2 HOT 4
- raise keyerror when loading B07 of himawari_ahi using DataQuery
- Bug plotting spectral responses with MODIS
- Unit Convert Error in the Doc. HOT 2
- whatβs the unit of rayleigh reflectance HOT 2
- pyspectral_rsr_data.tgz cannot be downloaded HOT 5
- Feature request for extending the Rayleigh reduction functionality HOT 1
- Question: Is there any details about LUT? HOT 9
- blackbody functions not dask friendly, trigger early dask computation HOT 3
- Near infrared reflectance calculation does not preserve input dtype
- RTD pages need a face lift - look ugly in Pyspectral, Pyorbital and others HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyspectral.