Not logged inOcean Color Forum

The forum is locked.

The Ocean Color Forum has transitioned over to the Earthdata Forum ( The information existing below will be retained for historical reference. Please sign into the Earthdata Forum for active user support.

Up Topic SeaDAS / SeaDAS - General Questions / invalid/nodata pixels when processing MODIS data over water using l2gen
- By eccc_modis Date 2018-08-01 18:32 Edited 2018-08-01 19:33
When process archive MODIS Aqua data with l2gen, the resultant Level 2 product has invalid Rrs at highly productive water.  Any comment is appreciated.  My experiment is given below.

[img] [/img]
(MYD01.A2017266.1830.061.2018163171904.hdf; L1B; 667nm)

Started from download hdf file, I ran GEO and L1A/B processing (figure above, overlapped with lake boundary in blue lines), then I ran l2gen :
l2gen ifile=$l1b_file, geofile=$geo_file, ofile=’rst.L2', maskhilt=0
with the results as follows:
[img] [/img]
resultant Rrs is nodata or -0.01553sr-1 for the high chlorophyll region in the lake (such as red circled). I expect some positive, varied Rrs in the same area, considering no saturation in the L1B data as shown above. I tried different mask combinations, such as additional maskcloud=0, maskstlight=0, maskland=0, same invalid regions.

In addition, artificial lines like horizontal strips exist in the resultant map, what is the cause?
- By seanbailey Date 2018-08-01 21:52
The problem is that there *are* saturated data.  The 869nm and 748nm bands both saturate over that region.  Since these two are the bands used by default in the aerosol selection, the processing fails.  You can choose an alternative atmospheric correction algorithm that does not employ these bands (but you'll also have to select an alternate band for cloud masking, since it uses 869nm by default as well... 

MODIS has multiple detectors per scan.  The stripes you are seeing are at the scan boundaries.  We do our best to mitigate this calibration artifact, but it will never be completely eliminated.  That said it is not as evident when I process the scene.  Are you using the latest calibration?

- By eccc_modis Date 2018-08-02 20:47
Hi Sean, Thank you for the reply.

I tried options for aer_opt, the best (with least nodata/invalid pixel) result comes from:
aer_opt=-8, aer_wave_short=2130, aer_wave_long=2130
as an approach you mentioned in a previous post:;hl=l2gen%20aer_opt
It still has a small portion of invalid pixels in the Rrs748nm band. I used "cloud_wave=1240".
I tried aer_opt=-2, -3, both are not ideal, even changing the "aer_wave_short,aer_wave_long". And I am not sure which wavelengths would be correct to assign to them. 

Then my followup question is, what is the BEST choice of atmospheric correction for MODIS Aqua image at highly productive inland water?
Or, what is a safe approach with l2gen that at least give me valid Rrs over the entire region, esp at areas with dense algae?

I think the closest answer I can find is what you gave in previous posts:;hl=l2gen%20aer_opt
and here:;hl=l2gen%20aer_opt
"When the issues are relate to the pixel-by-pixel aerosol determination - particularly in small regional studies - you may have success with a fixed aerosol implementation. If you have a priori knowledge of the aerosol type, you can simply choose a single aerosol model.  You could also take an iterative approach, using valid aerosol retrievals in a first run to select the aerosol model to use in as second, fixed aerosol run (an approach described by Hu et al., 2000"
But I am not very familiar with AC, more details about the implementation in seadas would be very helpful. such as how "iterative approach" using l2gen?

Thank you and really appreciate your help.

- By seanbailey Date 2018-08-03 14:09
There is no "best" approach for dealing with water conditions that violate the basic assumptions (or stretch them to their limits) of the various atmospheric correction approaches. 
What may work for you may not work for someone else's favorite neck of the kelp forest.  In fact, what works for you today, may not work six months from now.

That said, the fixed AOT approach is a decent choice, but as you found even that doesn't resolve all the "problems".  Your ROI is pretty close to land, yes geographically, but I mean optically. 
You could try using the rhos product, which does not employ an aerosol correction.

Try using 2130 for the cloud_wave and lower the cloud_thresh to 0.018.

The "iterative approach" is described in the Hu's a manual method.

- By eccc_modis Date 2019-01-11 14:55
Hello Sean,

Still want some further comments on this topic.
My goal is to use MODIS aqua [667,678,748]nm bands to calculate florescence line height (FLH) and test its relation to chlorophyll concentration. I obviously want the **maximum valid** coverage in each MODIS image. But I have the above mentioned band saturation issue. So I used l2gen and other approaches to generate different levels of MODIS products (L1B, rhos, L2, etc) and evaluate which one is the best for my work.

1. Considering the MODIS bands are saturated when sensed as delivered in L1 product, is that suggesting all the derived products have the same extent of valid pixels?
(L1B preview of the MODIS file mentioned before)

2. If bands are saturated from beginning, is there any way to recover (expend) the extent of valid pixels? such as by interpolation or build look-up-table to fill the saturated pixels with reasonable (thought not observed) values?

3. Also, how to exploit the value of "_lo" and "_hi" bands, or what separate value each of them provide? (I notice low and high bands saturated in L1B products at different values: EV_1KM_RefSB_14hi: 0.0559; 14low:0.15316;  13hi: 0.7134; 13lo:0.14981;)

Thank you,
- By seanbailey Date 2019-01-28 19:49
Saturation, however, is not something that can be overcome.  The l2gen code reads the low gain variants of bands 13 and 14 (more data would be saturated if we read the high gain datasets).

BTW, FLH is a standard product in our Level-2 Ocean Color data for the  MODIS instruments.

- By lianfeng619 Date 2019-05-22 23:45
Dear Sean,

Just a follow up question for this comment. When using fixed AOT approach, L2gen need to specify a AOT value for the entire image. Don't know if there is way to use pixel-specific AOT (i.e., a AOT image with several bands instead of a single value)? The aerosol conditions may very over a large area.


- By seanbailey Date 2019-05-24 19:43
The fixed AOT option is just that, a fixed AOT.  If you want per-pixel aerosol retrieval, use another the default :grin:

Up Topic SeaDAS / SeaDAS - General Questions / invalid/nodata pixels when processing MODIS data over water using l2gen

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill