[GRASS-user] i.atcorr with Sentinel2

Stefan Blumentrath Stefan.Blumentrath at nina.no
Mon Dec 18 07:39:32 PST 2017


P. S. Neither does it help to divide by 10000...
________________________________________
Von: grass-user [grass-user-bounces at lists.osgeo.org] im Auftrag von Stefan Blumentrath [Stefan.Blumentrath at nina.no]
Gesendet: Montag, 18. Dezember 2017 16:35
An: Moritz Lennert; Žofie Cimburová
Cc: GRASS user list
Betreff: Re: [GRASS-user] i.atcorr with Sentinel2

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...

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


More information about the grass-user mailing list