<div dir="ltr">Roberta,<div>Thank you for this work!  </div><div>Doug</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Aug 13, 2018 at 4:21 AM Roberta Fagandini <<a href="mailto:robifagandini@gmail.com">robifagandini@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><div>Hi all!</div><div>I'm Roberta Fagandini and this is the final report of my GSoC project.</div></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">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).</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><b>Abstract:</b></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">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.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">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.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">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.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">In order to make the data preparation easier, another GRASS GIS<span> </span><span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_100 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ins-del" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-100" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">addon</span><span> </span>module has been developed within the GSoC project.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">i.sentinel.<span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_103 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-103" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">preproc</span><span> </span>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.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><b>The state of the art before the project:</b></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">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. </div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">Moreover, performing the atmospheric correction was a bit complicated especially for <span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_97 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ins-del" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-97" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">unexperienced</span><span> </span>users who have to process one band at a time and provide all input parameters manually.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><b>The added value that the project brought to GRASS GIS:</b></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">Now a specific module for clouds and shadows detection, i.sentinel.<span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_89 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_gramm m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-Punctuation m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-only-del m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-replaceWithoutSep" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-89" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">mask,</span><span> </span>is available in GRASS GIS. </div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">Moreover, i.sentinel.<span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_105 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-105" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">preproc</span><span> </span>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.<span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_106 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-106" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">preproc</span><span> </span>is a text file to be used as input for i.sentinel.mask.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><b>Follow up:</b></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">Both i.sentinel.mask and i.sentinel.<span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_83 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-83" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">preproc</span><span> </span>are complete and working modules which can be easily installed with g.extension from the official GRASS GIS SVN repository. </div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">Obviously, they can be improved therefore the next steps could be:</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><ul><li style="margin-left:15px">Implementation of other existing algorithms of clouds and shadows detection (i.sentinel.mask)<br></li><li style="margin-left:15px">Implementation of a new download procedure avoiding dependencies (i.sentinel.preproc)<br></li><li style="margin-left:15px">Integration of the Topographic Correction (i.sentinel.preproc)</li></ul></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">NOTE: Implementation of other existing algorithms of clouds and shadows detection was one of the possible goals of the GSoC project but the coding<span> </span><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">and debugging<span> </span></span>of some parts of the two<span> </span><span class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_ m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_85 m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr-alert m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_spell m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_inline_cards m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-gr_disable_anim_appear m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ContextualSpelling m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-ins-del" id="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-85" style="display:inline;border-bottom:2px solid transparent;background-repeat:no-repeat;color:inherit;font-size:inherit">addons</span><span> </span>required more time than expected.</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><b>Permanent links:</b></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><b><br></b></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><i>Code developed during the GSoC coding period: </i></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://github.com/RobiFag/GRASS_clouds_and_shadows" style="color:rgb(17,85,204)" target="_blank">https://github.com/RobiFag/GRASS_clouds_and_shadows</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><i>Codes on the official GRASS GIS SVN repository:</i></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://trac.osgeo.org/grass/browser/grass-addons/grass7/imagery/i.sentinel.mask" style="color:rgb(17,85,204)" target="_blank">https://trac.osgeo.org/grass/browser/grass-addons/grass7/imagery/i.sentinel.mask</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://trac.osgeo.org/grass/browser/grass-addons/grass7/imagery/i.sentinel.preproc" style="color:rgb(17,85,204)" target="_blank">https://trac.osgeo.org/grass/browser/grass-addons/grass7/imagery/i.sentinel.preproc</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><i>Documentation:</i></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://grass.osgeo.org/grass74/manuals/addons/i.sentinel.mask.html" style="color:rgb(17,85,204)" target="_blank">https://grass.osgeo.org/grass74/manuals/addons/i.sentinel.mask.html</a><span> </span><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://grass.osgeo.org/grass74/manuals/addons/i.sentinel.preproc.html" style="color:rgb(17,85,204)" target="_blank">https://grass.osgeo.org/grass74/manuals/addons/i.sentinel.preproc.html</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><i>Weekly reports: </i></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://trac.osgeo.org/grass/wiki/GSoC/2018/CloudsAndShadowsDetection" style="color:rgb(17,85,204)" target="_blank">https://trac.osgeo.org/grass/wiki/GSoC/2018/CloudsAndShadowsDetection</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><i>Images to showcase the project:</i></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">i.sentinel.mask</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_GWF.png" style="color:rgb(17,85,204)" target="_blank">https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_GWF.png</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_CD.png" style="color:rgb(17,85,204)" target="_blank">https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_CD.png</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_SD.png" style="color:rgb(17,85,204)" target="_blank">https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_SD.png</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_CS.png" style="color:rgb(17,85,204)" target="_blank">https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_CS.png</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_ES.png" style="color:rgb(17,85,204)" target="_blank">https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_mask_ES.png</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial">i.sentinel.preproc</div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><a href="https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_preproc_GWF.png" style="color:rgb(17,85,204)" target="_blank">https://raw.githubusercontent.com/RobiFag/GRASS_clouds_and_shadows/master/images/i_sentinel_preproc_GWF.png</a></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br class="m_7112251209436416796gmail-m_4030499089103921637m_-2610429073799107059m_5042319165151825666gmail-m_-5301908558565922964m_-6303958635125757003gmail-m_4436043715409084186gmail-m_-1989571003477281350m_-800271396420177324gmail-m_9180020946824201098m_-1601624339059765609gmail-m_9096001880818850393gmail-Apple-interchange-newline">Kind regards,</div><div style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Roberta</div></div><div class="m_7112251209436416796gmail-yj6qo" style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"></div><br></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div><div>Doug Newcomb - Cartographer</div><div>USFWS</div><div>551F Pylon Dr</div><div>Raleigh, NC</div><div>919-856-4520 ext. 14 <a href="mailto:doug_newcomb@fws.gov" target="_blank">doug_newcomb@fws.gov</a></div><div>---------------------------------------------------------------------------------------------------------</div><div><br></div></div><div><b style="font-size:12.8px"><i><font color="#0000ff">NOTE: This email correspondence and any attachments to and from this sender is subject to the Freedom of Information Act (FOIA) and may be disclosed to third parties.</font></i></b><span style="color:rgb(0,0,255);font-family:"courier new",monospace;font-size:12.8px">​</span><br></div></div></div></div></div></div></div></div>