[GRASS-user] i.atcorr with Sentinel2
Sajid Pareeth
spareeth at gmail.com
Tue Dec 19 03:41:50 PST 2017
Dear Stefan
I have applied i.atcorr to many S2A scenes last year and it worked. Today I
rechecked them again, and it worked on a older svn version (7.3) and also
on the latest trunk version.
All the steps I have taken is similar to what you have done, so I dont
really know whats going wrong with you.
Here is the command I used:
i.atcorr -r input="S2A_OPER_MSI_L1C_TL_MTI_20151012T101024457Z_T32TPR_B02"
> range=0,10000 elevation="eudem_euregio_utm32_10m"
> parameters="S2_B02_T32TPR.txt"
> output="S2A_OPER_MSI_L1C_TL_MTI_20151012T101024457Z_T32TPR_02_6S"
> rescale=0,10000
>
S2_B02_T32TPR.txt:
[image: Inline image 1]
The AOD value is coming from the output of Sen2cor (It was a trial approach
!). I tried with a visibility value of 15 and it works.
And the ouput of r.univar is:
[image: Inline image 2]
I also tried it on a smaller clip (1000 X 1000), and it is giving some
output.
Let me know if you need any more info.
Regards
Sajid
On Tue, Dec 19, 2017 at 11:33 AM, Stefan Blumentrath <
Stefan.Blumentrath at nina.no> wrote:
> Hi again,
>
> Even with constant spectral conditions and values for filter function from
> Sentinel-2, all combinations of input band ranges result in empty maps.
> Constant spectral conditions and values for filter function from Landsat7
> however, give results in the expected scale (0-255) regardless input image
> and value ranges...
>
> Shall I open a ticket?
>
> Any idea/chance to get this new feature in G7.4 to work...?
>
> Any pointer/help would be very much appreciated!
>
> Cheers
> Stefan
>
> -----Original Message-----
> From: Stefan Blumentrath
> Sent: tirsdag 19. desember 2017 10.56
> To: Stefan Blumentrath <Stefan.Blumentrath at nina.no>; Moritz Lennert <
> mlennert at club.worldonline.be>; Žofie Cimburová <zoficimburova at gmail.com>
> Cc: GRASS user list <grass-user at lists.osgeo.org>
> Subject: RE: [GRASS-user] i.atcorr with Sentinel2
>
> Hi again,
>
> Still trying to track down the issue...
> I now ran i.atcorr with constant spectral condition and manually defined
> "wl inf" and "wl sup".
>
> First I got those values for Sentinel-2 band 2:
> * spectral condition
> *
> * ------------------
> *
> * sentinel2a blue b2
> *
> * value of filter function :
> *
> * wl inf= 0.300 mic wl sup= 2.600 mic
> *
>
> Then for Landsat 7 band 4 (that was known to give results):
> * spectral condition
> *
> * ------------------
> *
> * etm+ 4
> *
> * value of filter function :
> *
> * wl inf= 0.740 mic wl sup= 0.913 mic
> *
>
>
> If I then feed those values into a filter function for constant spectral
> conditions, and again the Sentinel-2 values:
> * spectral condition
> *
> * ------------------
> *
> * constant
> *
> * value of filter function :
> *
> * wl inf= 0.300 mic wl sup= 2.600 mic
> *
> lead to empty maps, while Landsat7 values:
> * spectral condition
> *
> * ------------------
> *
> * constant
> *
> * value of filter function :
> *
> * wl inf= 0.740 mic wl sup= 0.913 mic
> *
> work fine (with all other settings being equal).
>
> That makes me suspect that the values of the Sentinel-2 filter function
> are actually causing the issue here...
> I am currently testing all thinkable combinations of input band ranges to
> see if any of them works with wl inf=0.300 mic and wl sup=2.600 mic and
> will report back from that exercise.
>
> Meanwhile, can anyone confirm that i.atcorr in GRASS 7.4.0RC1 actually
> works with Sentinel-2 data?
>
> Cheers
> Stefan
>
>
>
> -----Original Message-----
> From: grass-user [mailto:grass-user-bounces at lists.osgeo.org] On Behalf Of
> Stefan Blumentrath
> Sent: tirsdag 19. desember 2017 08.45
> To: Moritz Lennert <mlennert at club.worldonline.be>; Žofie Cimburová <
> zoficimburova at gmail.com>
> Cc: GRASS user list <grass-user at lists.osgeo.org>
> Subject: Re: [GRASS-user] i.atcorr with Sentinel2
>
> Hi again,
>
> A little update on the problem:
> Now I ran i.atcorr with all possible band values for Sentinel-2 in the 6s
> parameters (166-178) with input maps ranges scaled to 0-1, 0-255, 0-10000
> All runs resulted in completely empty maps!
> Any ideas?
>
> Thanks for helping in advance!
>
> Kind regards,
> Stefan
>
> -----Original Message-----
> From: Moritz Lennert [mailto:mlennert at club.worldonline.be]
> Sent: mandag 18. desember 2017 16.58
> To: Stefan Blumentrath <Stefan.Blumentrath at nina.no>; Žofie Cimburová <
> zoficimburova at gmail.com>
> Cc: GRASS user list <grass-user at lists.osgeo.org>
> Subject: Re: [GRASS-user] i.atcorr with Sentinel2
>
> On 18/12/17 16:35, Stefan Blumentrath wrote:
> > Hi Moritz,
> >
> > Thanks for helping with troubleshooting!
> > QUANTIFICATION_VALUE is 10000, Thus dividing with it gives a maximum
> value of 2.8...
> > Any idea how to figure out if it is 12 or 16 bit image. It is directly
> downloaded from ESA...
>
> Check which proportion of the image is > 1. AFAIR (which is a bit
> limited), you might have reflectances above 1 in saturated pixels. I just
> checked on a random image and I also have some pixels above 1, but only
> 0.25% of the pixels:
>
> GRASS 7.5.svn (UTM32N):/data/home/mlennert > r.mapcalc "test =
> if(b04_refl>1,1,0)"
> 100%
> GRASS 7.5.svn (UTM32N):/data/home/mlennert > r.stats -cp test
> 100%
> 0 120259106 99.75%
> 1 301294 0.25%
>
> And all the pixels with value 1 are in clouded areas.
>
> Moritz
>
> >
> > Cheers
> > Stefan
> >
> > -----Original Message-----
> > From: grass-user [mailto:grass-user-bounces at lists.osgeo.org] On Behalf
> > Of Moritz Lennert
> > Sent: mandag 18. desember 2017 16.26
> > To: Žofie Cimburová <zoficimburova at gmail.com>
> > Cc: GRASS user list <grass-user at lists.osgeo.org>
> > Subject: Re: [GRASS-user] i.atcorr with Sentinel2
> >
> > On 18/12/17 16:13, Žofie Cimburová wrote:
> >> Dear Moritz,
> >>
> >> According to
> >> https://earth.esa.int/web/sentinel/user-guides/sentinel-2-msi/product
> >> - types , the L1C product I am using already is in top of atmosphere
> >> reflectance, so this should not be the problem (?).
> >> I tried running i.atcorr both with and without the -r flag.
> >
> > Reflectance is the percentage of light that is reflected either from
> > the top of the atmosphere or from the surface. Reflectance values
> > should thus be real values between 0 and 1. Your data have
> >
> > Range of data: min = 1 max = 28000
> >
> > This means that they are expressed in digital (integer) numbers. Try
> transforming these DN into real numbers. IIRC, in the metadata, you have a
> variable QUANTIFICATION_VALUE. Divide your pixel values by that value to
> get real TOA reflectance values.
> >
> > AFAIK, it also depends on whether you directly imported the original
> 12-bit file, or possibly a modified, e.g. 16-bit, version.
> >
> > Moritz
> >
> >> On Mon, Dec 18, 2017 at 3:35 PM, Moritz Lennert
> >> <mlennert at club.worldonline.be <mailto:mlennert at club.worldonline.be>>
> wrote:
> >>
> >> On 18/12/17 13:14, Žofie Cimburová wrote:
> >>
> >> Hi all,
> >> Now the 6S parameters are complete, but the output map contains
> >> only NULLs, no matter what combinations of input parameters and
> >> flags I use. Have anyone encountered the same issue? (Info
> >> below.)
> >>
> >>
> >> In the i.atcorr man page it says:
> >>
> >> "If flag -r is used, the input raster data are treated as
> >> reflectance. Otherwise, the input raster data are treated as
> >> radiance values"
> >>
> >> IIUC, your data is still in DN. You might want to try to transform
> >> this into radiance values before sending it into i.atcorr.
> >>
> >> Moritz
> >>
> >>
> >> Thanks again.
> >> Zofie
> >>
> >> ----------------------------------------
> >> Version:
> >> g.version -g
> >> version=7.4.0RC1
> >> date=2017
> >> revision=exported
> >> build_date=2017-11-18
> >> build_platform=x86_64-pc-linux-gnu
> >> build_off_t_size=8
> >>
> >> ----------------------------------------
> >> Region:
> >> g.region -p
> >> projection: 1 (UTM)
> >> zone: 33
> >> datum: etrs89
> >> ellipsoid: grs80
> >> north: 6653695
> >> south: 6643685
> >> west: 256495
> >> east: 266505
> >> nsres: 10
> >> ewres: 10
> >> rows: 1001
> >> cols: 1001
> >> cells: 1002001
> >>
> >> ----------------------------------------
> >> Input data: Sentinel2 L1C product B02 (tried with B01 too)
> >> r.info <http://r.info> <http://r.info>
> >> map=test_B02 at p_Sentinel4Nature_S2_Oslo
> >> +---------------------------------------------------------
> -------------------+
> >> | Map: test_B02 at p_Sentinel4Nat Date: Wed Dec 6
> >> 12:06:39 2017
> >> | Mapset: p_Sentinel4Nature_S2_Oslo Login of Creator:
> >> stefan.blumentr
> >> | Location: ETRS_33N
> >> | DataBase: /data/grass
> >> | Title:
> >> S2A_OPER_PRD_MSIL1C_PDMC_20160907T044118_R008_
> V20160905T104022_2
> >> | Timestamp: none
> >> |---------------------------------------------------------
> -------------------|
> >> |
> >> | Type of Map: raster Number of
> Categories: 0
> >> | Data Type: CELL
> >> | Rows: 1001
> >> | Columns: 1001
> >> | Total Cells: 1002001
> >> | Projection: UTM (zone 33)
> >> | N: 6653695 S: 6643685 Res: 10
> >> | E: 266505 W: 256495 Res: 10
> >> | Range of data: min = 1 max = 28000
> >> |
> >> | Data Description:
> >> | generated by r.in.gdal
> >>
> >> +--------------------------------------------------------------------
> >> +-
> >> -------+
> >>
> >> ----------------------------------------
> >> 6s file:
> >> 25- geometrical conditions=Sentinel-2A
> >> 9 5 10.6728 10.73413 59.90647- month day hh.ddd longitude
> latitude
> >> 4 - atmospheric model=subarctic summer
> >> 3- aerosol model=urban
> >> 50- visibility [km] (aerosol model concentration) (this is
> >> estimated, I also tried with AOD specified)
> >> -0.055- mean target elevation above sea level [km]
> >> -1000- sensor height
> >> 166- Sentinel2A Blue band B2 (440nm - 535nm)
> >>
> >> ----------------------------------------
> >> Command:
> >> i.atcorr input=test_B02 at p_Sentinel4Nature_S2_Oslo
> range=1,28000
> >> elevation=dem_10m_25833 at p_Sentinel4Nature_S2_Oslo
> >> parameters=/home/NINA.NO/zofie.cimburova/
> Sentinel4Nature/DATA/6s.txt
> >> <http://NINA.NO/zofie.cimburova/Sentinel4Nature/DATA/6s.txt>
> >> <http://NINA.NO/zofie.cimburova/Sentinel4Nature/DATA/6s.txt
> >> <http://NINA.NO/zofie.cimburova/Sentinel4Nature/DATA/6s.txt>>
> >> output=test_B02_atcorr
> >> >Atmospheric correction...
> >> >Atmospheric correction complete.
> >>
> >> (I am not sure about the range parameter, tried with 0,255 too.
> >> The DEM contains no NULLs. Also tried running with -r and -a
> >> flags.)
> >>
> >> ----------------------------------------
> >> Output:
> >> r.info <http://r.info> <http://r.info>
> >> map=test_B02_atcorr at p_Sentinel4Nature_S2_Oslo
> >> +---------------------------------------------------------
> -------------------+
> >> | Map: test_B02_atcorr at p_Sentinel4N Date: Mon Dec 18
> >> 13:10:14 2017
> >> | Mapset: p_Sentinel4Nature_S2_Oslo Login of Creator:
> >> zofie.cimburova
> >> | Location: ETRS_33N
> >> | DataBase: /data/grass
> >> | Title: test_B02_atcorr2
> >> | Timestamp: none
> >> |---------------------------------------------------------
> -------------------|
> >> |
> >> | Type of Map: raster Number of
> Categories: 0
> >> | Data Type: FCELL
> >> | Rows: 1001
> >> | Columns: 1001
> >> | Total Cells: 1002001
> >> | Projection: UTM (zone 33)
> >> | N: 6653695 S: 6643685 Res: 10
> >> | E: 266505 W: 256495 Res: 10
> >> | Range of data: min = -nan max = -nan
> >> |
> >> | Data Description:
> >> | generated by i.atcorr
> >> |
> >> | Comments:
> >> | i.atcorr input="test_B02 at p_Sentinel4Nature_S2_Oslo"
> >> range=1,28\
> >> | 000 elevation="dem_10m_25833 at p_
> Sentinel4Nature_S2_Oslo"
> >> para\
> >> |
> >> meters="/home/NINA.NO/zofie.cimburova/Sentinel4Nature/
> DATA/6s.txt <http://NINA.NO/zofie.cimburova/Sentinel4Nature/DATA/6s.txt>
> >> <http://NINA.NO/zofie.cimburova/Sentinel4Nature/DATA/6s.txt
> >> <http://NINA.NO/zofie.cimburova/Sentinel4Nature/DATA/6s.txt>>"
> o\
> >> | utput="test_B02_atcorr2" rescale=0,255
> >> |
> >>
> >> +--------------------------------------------------------------------
> >> +-
> >> -------+
> >>
> >>
> >>
> >> On Fri, Dec 15, 2017 at 5:12 PM, Žofie Cimburová
> >> <zoficimburova at gmail.com <mailto:zoficimburova at gmail.com>
> >> <mailto:zoficimburova at gmail.com
> >> <mailto:zoficimburova at gmail.com>>> wrote:
> >>
> >> Dear Markus,
> >> thanks for your reply, this is exactly what I need to
> know!
> >>
> >> Best, Zofie
> >>
> >> On Fri, Dec 15, 2017 at 5:09 PM, Markus Neteler
> >> <neteler at osgeo.org <mailto:neteler at osgeo.org>
> >> <mailto:neteler at osgeo.org <mailto:neteler at osgeo.org>>>
> wrote:
> >>
> >>
> >> On Dec 15, 2017 3:54 PM, "Žofie Cimburová"
> >> <zoficimburova at gmail.com
> >> <mailto:zoficimburova at gmail.com> <mailto:zoficimburova at gmail.
> com
> >> <mailto:zoficimburova at gmail.com>>> wrote:
> >> >
> >> > Dear all,
> >> > I am trying to use i.atcorr (GRASS 7.4) to apply
> >> atmospheric corrections for Sentinel 2 data. The documentation
> >> provides a great help, but there are two points I am not sure
> >> about - >
> >> > - I don't need the atmospheric correction to be
> >> applied to the whole scene, so I only imported a small clip of
> >> the scene to GRASS. What longitude and latitude shall I then
> >> specify in the 6S parameters?
> >>
> >> I'd use the center coordinates of the clipped area.
> >>
> >> > Or is it necessary to apply the corrections to the
> >> entire scene?
> >>
> >> No since it is a pixel based algorithm.
> >>
> >> > - How can I estimate the value of
> visibility (aerosol
> >> model concentration)?
> >> There are AERONET data online somewhere which might be
> >> the best
> >> choice.
> >>
> >> Markus
> >>
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> grass-user mailing list
> >> grass-user at lists.osgeo.org <mailto:grass-user at lists.osgeo.org>
> >> https://lists.osgeo.org/mailman/listinfo/grass-user
> >> <https://lists.osgeo.org/mailman/listinfo/grass-user>
> >>
> >>
> >>
> >>
> >
> >
> > _______________________________________________
> > grass-user mailing list
> > grass-user at lists.osgeo.org
> > https://lists.osgeo.org/mailman/listinfo/grass-user
> >
>
>
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20171219/a5a30fd9/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 47974 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20171219/a5a30fd9/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 8235 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20171219/a5a30fd9/attachment-0003.png>
More information about the grass-user
mailing list