[GRASS-user] i.atcorr with Sentinel2

Žofie Cimburová zoficimburova at gmail.com
Mon Jan 22 23:31:40 PST 2018


On Mon, Jan 22, 2018 at 3:17 PM, Markus Metz <markus.metz.giswork at gmail.com>
wrote:

>
>
> On Mon, Jan 22, 2018 at 1:01 PM, Žofie Cimburová <zoficimburova at gmail.com>
> wrote:
> >
> > Dear list,
> > I came across another strange behaviour in i.atcorr used for Sentinel 2A
> data - for most of the scenes I process, the output of i.atcorr (for each
> band) is correct (i.e. contains values), but for several scenes, the output
> (for each band) contains just -nans. I thought this is caused by the input
> scenes, but apparently, it is rather caused by the date (line 2, first two
> numbers) in the 6s file. Some days in the 6s file lead to a correct result,
> other days in the 6s file lead to -nans.
> >
> > Example:
> > date in 6s file = 08 16
> > i.atcorr input=S2A_20160816.B02 range=0,10000 elevation=dem_10m
> parameters=param_6s_20160816.txt output=S2A_20160816.B02_atcorr1
> > -> only -nans in output map
>
> I get values in the output with Debian testing and G7.4 with latest
> i.atcorr r72101. Please update your GRASS version.
>

Yes, in the latest version the problem doesn't occur. Thanks for testing
Markus M!

There is one more thing I am not sure about - can the geometrical
conditions parameter and sensor bands parameter used for Sentinel2-A (i.e.
25 and 166-178) be used for Sentinel2-B as well?

Thanks,
Zofie


>
BTW, the 6s file has 166 as band number which is band 1, but the example
> seems to be band 2 -> should be 167 in the 6s file.
>
> Markus M
>
>
> >
> > date in 6s file = 09 05
> > i.atcorr input=S2A_20160816.B02 range=0,10000 elevation=dem_10m
> parameters=param_6s_20160905.txt output=S2A_20160816.B02_atcorr2
> > -> values in output map
> >
> > date in 6s file = 08 16
> > i.atcorr input=S2A_20160905.B02 range=0,10000 elevation=dem_10m
> parameters=param_6s_20160816.txt output=S2A_20160905.B02_atcorr3
> > -> only -nans in output map
> >
> > date in 6s file = 09 05
> > i.atcorr input=S2A_20160905.B02 range=0,10000 elevation=dem_10m
> parameters=param_6s_20160905.txt output=S2A_20160905.B02_atcorr4
> > -> values in output map
> >
> > Version:
> > g.version -g
> > version=7.4.0svn
> > date=2017
> > revision=r71960M
> > build_date=2017-12-22
> > build_platform=x86_64-pc-linux-gnu
> > build_off_t_size=8
> >
> > I checked the verbose module output, and the only difference is
> (obviously) in solar zenith angle, solar azimuth angle, view zenith angle
> etc., but these values look correct in all cases.
> >
> > Could this be caused by numerical instability as in the previous
> problem? The data (two scenes, DEM and two 6s files) can be downloaded from
> here, it would be great if someone could check whether the issue occurs as
> well.
> > https://www.dropbox.com/sh/ntg46stpjhxyqov/AADVBHVHHI_
> ap1W32kqesaHna?dl=0
> >
> >
> > Thanks a lot.
> > Zofie
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > On Mon, Jan 8, 2018 at 9:01 AM, Stefan Blumentrath <
> Stefan.Blumentrath at nina.no> wrote:
> >>
> >> Hi,
> >>
> >>
> >>
> >> This is how you can patch i.atcorr and compile into home dir.:
> >>
> >>
> >>
> >> svn checkout https://svn.osgeo.org/grass/grass/branches/releasebranch_
> 7_4 grass_74
> >>
> >> cd grass_74
> >>
> >> wget https://trac.osgeo.org/grass/raw-attachment/ticket/3469/i_
> atcorr_double.patch
> >>
> >> patch -p0 -i i_atcorr_double.patch
> >>
> >> CFLAGS=”-g -Wall -Wextra -Wpedantic -Wshadow -Wno-sign-compare
> -fno-common -fexceptions -Werror=implicit-function-declaration
> -Wp,-D_FORTIFY_SOURCE=2 -O3 -fno-fast-math” CXXFLAGS=”-g -Wall -Wextra
> -Wpedantic -Wshadow -Wno-sign-compare -fno-common -fexceptions
> -Werror=implicit-function-declaration -Wp,-D_FORTIFY_SOURCE=2 -O3
> -fno-fast-math” ./configure --with-cxx --with-sqlite --with-postgres
> --with-postgres-includes=/usr/include/postgresql --with-odbc --with-cairo
> --with-proj-share=/usr/local/share/proj --with-tcltk-includes=/usr/include/tcl8.4/
> --with-freetype --with-freetype-includes=/usr/include/freetype2
> --with-fftw --with-nls --with-python --with-tiff --with-geos
> --enable-largefile --with-readline --with-blas --with-glw --with-motif
> --with-openmp --with-wxwidgets --with-liblas --with-netcdf --with-lapack
> --with-mysql-includes=/usr/include/mysql --with-mysql --with-opencl
> --with-pdal --with-bzlib –prefix=~/
> >>
> >> make –j 20
> >>
> >> make install
> >>
> >>
> >>
> >> Cheers
> >>
> >> Stefan
> >>
> >>
> >>
> >> From: grass-user [mailto:grass-user-bounces at lists.osgeo.org] On Behalf
> Of Žofie Cimburová
> >> Sent: mandag 18. desember 2017 16.14
> >> To: Moritz Lennert <mlennert at club.worldonline.be>
> >> Cc: GRASS user list <grass-user at lists.osgeo.org>
> >> Subject: Re: [GRASS-user] i.atcorr with Sentinel2
> >>
> >>
> >>
> >> 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.
> >>
> >>
> >>
> >> Zofie
> >>
> >>
> >>
> >> On Mon, Dec 18, 2017 at 3:35 PM, Moritz Lennert <
> 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> 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> 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> 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>"
> 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>> 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>> wrote:
> >>
> >>
> >>         On Dec 15, 2017 3:54 PM, "Žofie Cimburová"
> >>         <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
> >> 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/20180123/878e6cde/attachment-0001.html>


More information about the grass-user mailing list