[GRASS-user] Re: i.atcorr returns all NULL values

Daniel Victoria daniel.victoria at gmail.com
Tue May 31 11:14:05 EDT 2011


I'll have to check but I believe I used constant visibility for the 6S
correction but, I did use an elevation map from SRTM. Of course the
area is rather flat (a wetland).

Daniel

On Tue, May 31, 2011 at 11:35 AM, Markus Metz
<markus.metz.giswork at googlemail.com> wrote:
> On Sun, May 29, 2011 at 8:16 PM, Daniel Victoria
> <daniel.victoria at gmail.com> wrote:
>> I'm also struggling with i.atcorr for Landsat. A friend of my
>> corrected some TM images using the Flash module in ENVI (based on
>> modtran) and I tried to correct the same images using 6S in grass
>> (i.atcorr). We both used the same radiance images that had some
>> problems with a few negative values in water areas. I set the negative
>> values to 0.
>>
>> After correcting the TM images in Grass I created 6000 random point in
>> order to compare the images (flash vs. 6s). The attached graph shows
>> the density plot (~histogram) for each band (band 6 is actually TM
>> band7). For all images, value have been scaled from 0 to 1. Black line
>> is radiance, red is 6S and blue is flash. What we see is that for
>> bands 4, 5 and 7 there are no big differences but, for bands 1, 2 and
>> 3, the correction done by flash is more pronounced.
>>
>> Now, what I don't know:
>> 1) Is this type of analysis (looking at the image histogram) OK?
>> 2) Should atmospheric correction change the histogram?
>> 3) For i.atcorr I get a sort of "linear" relation between radiance &
>> reflectance. That is, for each radiance there is only one value for
>> reflectance. But the flash correction gives a point cloud when I
>> compare radiance & reflectance (more than one reflectance value for
>> the same radiance). What is the expected behavior?
>
> If you use global values for elevation and visibility, you will only
> one output value for each input value. If you use an elevation and/or
> visibility map as additional input (granted that the values in these
> maps are not constants), you may get point clouds, i.e. several
> different output values for the same input value if this input value
> occurs more than once and either elevation or visibility differ
> between the occurences.
>
> Markus M
>
>>
>> I'm using Grass 7 svn from about 2 weeks ago. The images are from the
>> Pantanal wetland in Brazil in the dry period (still lots of water
>> there). For 6S the settings are: Tropical atmosphere, continental
>> aerosol mode, 20km visibility.
>>
>> Thanks and cheers
>> Daniel
>>
>>
>> On Fri, May 27, 2011 at 7:34 PM, Juan Benavides Duque <jbenavid at siu.edu> wrote:
>>> I'm sending the code I used to run the i.atcorr module (including the
>>> i.landsat.toar transformation)
>>>
>>> (I also used the code sent by Yann Chemin (May 23) with the same results)
>>>
>>> Of two files attached one has the code and other one the  univariate stats
>>> output of the band 1 TOAR raster  for one of the 1986 scenes
>>>
>>> A copy of the original landsat used have been  placed temporarily at the
>>> following location " assets "
>>>
>>> hope somebody can help
>>>
>>>
>>> thanks
>>>
>>> juan
>>>
>>>
>>> I'm using a desktop running Ubuntu 10.10 with a 64bit  Intel(R) Core(TM) i7
>>> CPU 860  @ 2.80GHz
>>>
>>>
>>>
>>>
>>> 2011/5/27 Gaspar Reyes Póndigo <gos47 at hotmail.com>
>>>>
>>>> I had same problem, i.atcorr not work with landsat 5TM band 1, 2 and
>>>> sometimes with band 3
>>>> I tried i.atcorr in different versions of grass, this is my results:
>>>>
>>>> 1. GRASS-6.4.1-2 under Mac Snow-Leopard 10.6.7: Not work band 1, 2, and
>>>> sometimes with band 3 (for years 1992, 1993, 1995 and 1997).
>>>> 2. GRASS-6.5. revision 46428 compiled in Mac Snow-Leopard 10.6.7: Not work
>>>> band 1, 2, and sometimes with band 3 (for years 1992, 1993, 1995 and 1997)
>>>> 3. GRASS-6.5svn45719(2011) under Microsoft Windows Xp sp3: All the bands
>>>> work,THIS IS VERY RARE
>>>>
>>>> My images landsat 5 TM are from Tonameca, Oaxaca, México of years 1985 to
>>>> 1999, and 2010 to 2011 (one image series for year), i am work with AOD and
>>>> visibility value,  and convert manually DN to radiance (a).
>>>>
>>>> (a) Lλ = [(LMAXλ − LMINλ) / (Qcalmax − Qcalmin)] (Qcal − Qcalmin) + LMINλ
>>>>
>>>> Gaspar Reyes Póndigo
>>>> Universidad del Mar, Oaxaca, México
>>>> Campus Puerto-Ángel
>>>> Carretera principal Puerto Ángel Zipolite km 1.5
>>>> C.P. 70902
>>>>
>>>> -------------------------------------------------------------------
>>>>
>>>> Message: 1
>>>>
>>>> Date: Fri, 27 May 2011 08:53:32 +0530
>>>>
>>>> From: "Chemin, Yann (IWMI)" <Y.Chemin at cgiar.org>
>>>>
>>>> Subject: RE: [GRASS-user] Re: i.atcorr returns all NULL values
>>>>
>>>> To: "Juan Benavides Duque" <jbenavid at siu.edu>,
>>>>
>>>> <grass-user at lists.osgeo.org>
>>>>
>>>> Cc: Markus Metz <markus.metz.giswork at googlemail.com>, Elena Mezzini
>>>>
>>>> <elena.mezzini at gmail.com>
>>>>
>>>> Message-ID:
>>>>
>>>> <001F233294EA894387CFDAADAB87DE25085063E9 at iwmix.IWMI.CGIARAD.ORG>
>>>>
>>>> Content-Type: text/plain; charset="us-ascii"
>>>>
>>>> Hi Juan,
>>>>
>>>>
>>>>
>>>> Can you please give the download link for your images,
>>>>
>>>> Could you also check the output of i.landsat.toar for them and tell if
>>>>
>>>> reflectance ranges are valid/logic.
>>>>
>>>>
>>>>
>>>> Thank you,
>>>>
>>>> Yann
>>>>
>>>>
>>>>
>>>> From: Juan Benavides Duque [mailto:jbenavid at siu.edu]
>>>>
>>>> Sent: Thursday, May 26, 2011 11:38 PM
>>>>
>>>> To: Chemin, Yann (IWMI)
>>>>
>>>> Cc: Markus Metz; Elena Mezzini
>>>>
>>>> Subject: Re: [GRASS-user] Re: i.atcorr returns all NULL values
>>>>
>>>>
>>>>
>>>>
>>>> I tried Yann's code for the i.atcorr on some Landsat TM5 images
>>>>
>>>> It worked very nice for images taken after 1995 but before that still
>>>>
>>>> returns null values when running i.atcorr for bands 1 and 2
>>>>
>>>> I used TM5 scenes from the same location for 1986, 1989, and 1996 and
>>>>
>>>> the first two (1986 and 1989) had the same problem with the null
>>>>
>>>> values...
>>>>
>>>> sorry I can provide a way to fix it but  I hope somebody will
>>>>
>>>> juan c
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, May 24, 2011 at 3:49 AM, Chemin, Yann (IWMI)
>>>>
>>>> <Y.Chemin at cgiar.org> wrote:
>>>>
>>>> Each created visibility map holds only one value r.mapcalc
>>>>
>>>> expression="visibility=${vis_list[$i]}" --overwrite so why not just use
>>>>
>>>> this visibility value as input in the >parameter file instead of
>>>>
>>>> creating a map where all cells have the same value?
>>>>
>>>> Yes, this is a valid point, the script is designed to (hopefully soon)
>>>>
>>>> encompass raster maps of visibility data (maybe interpolated...), so
>>>>
>>>> this is a placeholder for the next steps.
>>>>
>>>>
>>>> -----Original Message-----
>>>>
>>>> From: Markus Metz [mailto:markus.metz.giswork at googlemail.com]
>>>>
>>>> Sent: Tuesday, May 24, 2011 12:52 PM
>>>>
>>>> To: Chemin, Yann (IWMI)
>>>>
>>>> Cc: grass-user at lists.osgeo.org; Elena Mezzini; Markus Neteler
>>>>
>>>> Subject: Re: [GRASS-user] Re: i.atcorr returns all NULL values
>>>>
>>>> On Mon, May 23, 2011 at 9:36 PM, Markus Neteler <neteler at osgeo.org>
>>>>
>>>> wrote:
>>>>
>>>> Hi Yann,
>>>>
>>>> On Mon, May 23, 2011 at 5:07 AM, Chemin, Yann (IWMI)
>>>>
>>>> <Y.Chemin at cgiar.org> wrote:
>>>>
>>>> p192 r030 image of July 2003 of Italy (L5TM) successfully corrected
>>>>
>>>> for band 1 and 2.
>>>>
>>>> The following script works well in GRASS GIS Trunk SVN.
>>>>
>>>> (better send as attachment since a series of line breaks got broken)
>>>>
>>>> ...
>>>>
>>>> # For i.atcorr scripting
>>>>
>>>> #-----------------------------------------------------
>>>>
>>>> vis_list=(10 10 8 9.7 15 8 7 10 10 9.7 12 9.7 7 12 12 12 3 15 12 9.7
>>>>
>>>> 6 15) vis_len=${#vis_list[*]} echo $vis_len
>>>>
>>>> ... this is not clear to me: why so many values and where do they
>>>>
>>>> originate from? Since we have only 6 channels to work with...
>>>>
>>>> Moreover, how can it be possible that visibility is different for
>>>>
>>>> different channels of the same scene? From the documentation it seems
>>>>
>>>> that visibility is related to aerosol concentration at 550nm which can
>>>>
>>>> not possibility be different for different bands of the same scene.
>>>>
>>>> Each created visibility map holds only one value r.mapcalc
>>>>
>>>> expression="visibility=${vis_list[$i]}" --overwrite so why not just use
>>>>
>>>> this visibility value as input in the parameter file instead of creating
>>>>
>>>> a map where all cells have the same value?
>>>>
>>>> Markus M
>>>>
>>>> _______________________________________________
>>>>
>>>> grass-user mailing list
>>>>
>>>> grass-user at lists.osgeo.org
>>>>
>>>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>>>
>>>>
>>>>
>>>> -------------- next part --------------
>>>>
>>>> An HTML attachment was scrubbed...
>>>>
>>>>
>>>> URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20110527/211bcf66/attachment-0001.html
>>>>
>>>> _______________________________________________
>>>> grass-user mailing list
>>>> grass-user at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>>>
>>>
>>>
>>> _______________________________________________
>>> grass-user mailing list
>>> grass-user at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>>
>>>
>>
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>
>>
>


More information about the grass-user mailing list