[SoC] GSoC 2018 final report week 13 - GRASS GIS module for Sentinel-2 cloud and shadow detection

Roberta Fagandini robifagandini at gmail.com
Mon Aug 13 01:20:52 PDT 2018


Hi all!
I'm Roberta Fagandini and this is the final report of my GSoC project.

The title of the project is "GRASS GIS module for Sentinel-2 cloud and
shadow detection". It adds new tools for the processing of Sentinel 2
images to GRASS GIS software (Organization: OSGeo).

*Abstract:*
Optical sensors are unable to penetrate clouds leading to related anomalous
reflectance values. Unlike Landsat images, Sentinel 2 datasets do not
include thermal and Quality Assessment bands that simplify the detection of
clouds avoiding erroneous classification. At the same time, also clouds
shadows on the ground lead to anomalous reflectance values which have to be
taken into account during the image processing.
The project creates a specific module for GRASS GIS application
(i.sentinel.mask) which implements an automatic procedure for clouds and
shadows detection for Sentinel 2 images. The procedure is based on an
algorithm, developed within my PhD research, which allows to automatically
identify clouds and their shadows applying some rules on reflectance values
(values thresholds, comparisons between bands, etc.). These have been
defined starting from rules found in literature and conveniently refined.
In order to increase the accuracy of the final results, a control check is
implemented. Clouds and shadows are spatially intersected in order to
remove misclassified areas. The final outputs are two different vector maps
(OGR standard formats), one for clouds and one for shadows.
To run i.sentinel.mask, the bands of the desired Sentinel 2 images have to
be imported and the atmospheric correction has to be applied.
In order to make the data preparation easier, another GRASS GIS addon module
has been developed within the GSoC project.
i.sentinel.preproc is a module for the preprocessing of Sentinel 2 images
(Level-1C Single Tile product) which wraps the import and the atmospheric
correction using respectively two existing GRASS GIS modules,
i.sentinel.import and i.atcorr.

*The state of the art before the project:*
Before this GSoC 2018 project, no modules for the detection of clouds and
shadows were available for Sentinel 2 images. Only a specific module for
Landsat automatic cloud coverage assessment was available within GRASS GIS
(i.landsat.acca) while regarding shadows, no specific module was available.
Moreover, performing the atmospheric correction was a bit complicated
especially for unexperienced users who have to process one band at a time
and provide all input parameters manually.

*The added value that the project brought to GRASS GIS:*
Now a specific module for clouds and shadows detection, i.sentinel.mask, is
available in GRASS GIS.
Moreover, i.sentinel.preproc provides a simplified module which allows
importing images and performing the atmospheric correction avoiding users
to supply all the required input parameters manually. The module should
help users in preparing data to use as input for i.sentinel.mask. In fact,
it makes especially the atmospheric correction procedure easier and faster
because it allows performing atmospheric correction of all bands of a
Sentinel 2 scene with a single process and it retrieves most of the
required input parameters from the image itself. Moreover, one of the
possible output of i.sentinel.preproc is a text file to be used as input
for i.sentinel.mask.

*Follow up:*
Both i.sentinel.mask and i.sentinel.preproc are complete and working
modules which can be easily installed with g.extension from the official
GRASS GIS SVN repository.
Obviously, they can be improved therefore the next steps could be:

   - Implementation of other existing algorithms of clouds and shadows
   detection (i.sentinel.mask)
   - Implementation of a new download procedure avoiding dependencies
   (i.sentinel.preproc)
   - Integration of the Topographic Correction (i.sentinel.preproc)

NOTE: Implementation of other existing algorithms of clouds and shadows
detection was one of the possible goals of the GSoC project but the coding and
debugging of some parts of the two addons required more time than expected.

*Permanent links:*

*Code developed during the GSoC coding period: *
https://github.com/RobiFag/GRASS_clouds_and_shadows

*Codes on the official GRASS GIS SVN repository:*
https://trac.osgeo.org/grass/browser/grass-addons/grass7/ima
gery/i.sentinel.mask
https://trac.osgeo.org/grass/browser/grass-addons/grass7/ima
gery/i.sentinel.preproc

*Documentation:*
https://grass.osgeo.org/grass74/manuals/addons/i.sentinel.mask.html
https://grass.osgeo.org/grass74/manuals/addons/i.sentinel.preproc.html

*Weekly reports: *
https://trac.osgeo.org/grass/wiki/GSoC/2018/CloudsAndShadowsDetection

*Images to showcase the project:*
i.sentinel.mask
https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_s
hadows/master/images/i_sentinel_mask_GWF.png
https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_s
hadows/master/images/i_sentinel_mask_CD.png
https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_s
hadows/master/images/i_sentinel_mask_SD.png
https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_s
hadows/master/images/i_sentinel_mask_CS.png
https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_s
hadows/master/images/i_sentinel_mask_ES.png
i.sentinel.preproc
https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_s
hadows/master/images/i_sentinel_preproc_GWF.png


Kind regards,
Roberta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/soc/attachments/20180813/9add3489/attachment-0001.html>


More information about the SoC mailing list