[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