Cloud masking
From AWF-Wiki
(Difference between revisions)
(→Sentinel-2 cloud masking) |
(→Sentinel-2 cloud masking) |
||
Line 1: | Line 1: | ||
− | == Sentinel-2 cloud masking == | + | == Sentinel-2 cloud and cloud shaodow masking == |
The exclusion of clouds and cloud shadow is an important processing step which is usually done in an early preprocessing stage. | The exclusion of clouds and cloud shadow is an important processing step which is usually done in an early preprocessing stage. | ||
The Sentinel-2 products are annotated with Quality Indicators (QI_DATA). In the Level 2A product you may find a file in the folder '''QI_DATA''' with the extension '''_CLD_20m.jp2''' (data type: 8bit unsigned integer, spatial resolution 20m) which might be used for masking clouds. The data range is from 0 for high confidence clear sky to 100 for high confidence cloudy (for more details see [https://earth.esa.int/documents/247904/685211/S2+L2A+Product+Definition+Document/2c0f6d5f-60b5-48de-bc0d-e0f45ca06304 L2A Product Definition Document]). | The Sentinel-2 products are annotated with Quality Indicators (QI_DATA). In the Level 2A product you may find a file in the folder '''QI_DATA''' with the extension '''_CLD_20m.jp2''' (data type: 8bit unsigned integer, spatial resolution 20m) which might be used for masking clouds. The data range is from 0 for high confidence clear sky to 100 for high confidence cloudy (for more details see [https://earth.esa.int/documents/247904/685211/S2+L2A+Product+Definition+Document/2c0f6d5f-60b5-48de-bc0d-e0f45ca06304 L2A Product Definition Document]). | ||
Line 6: | Line 6: | ||
[[File:Qgis_cloud_tcc.png|400px]] [[File:Qgis_cloud_fcc.png|400px]] | [[File:Qgis_cloud_tcc.png|400px]] [[File:Qgis_cloud_fcc.png|400px]] | ||
# The original single band cloud quality indicator band is included in this specifc multiband file as band No. 13. Follow [[Split stack]] to extract this band. | # The original single band cloud quality indicator band is included in this specifc multiband file as band No. 13. Follow [[Split stack]] to extract this band. | ||
− | # Overlay the QI Cloud band on top of the color composites. Use the Identify Feature Tool for requesting pixel values of the QI band file inside a cloud. Which values represent clouds? | + | # Overlay the QI Cloud band on top of the color composites. Use the {{tool|text=Identify Feature Tool}} for requesting pixel values of the QI band file inside a cloud. Which values represent clouds? |
# In (Layer Properties Style load '''Load''' the full data range (minimum/maximum values) ). Then change the Style to a Pseudocolor map with interpolation '''discrete''' and 10 equal interval classes as shown in the screenshot. | # In (Layer Properties Style load '''Load''' the full data range (minimum/maximum values) ). Then change the Style to a Pseudocolor map with interpolation '''discrete''' and 10 equal interval classes as shown in the screenshot. | ||
# Double click on a color field of some classes (Layer Properties Style) to open the change color window. Change the opacity from 100% to 0%. Find the best threshold for clouds. | # Double click on a color field of some classes (Layer Properties Style) to open the change color window. Change the opacity from 100% to 0%. Find the best threshold for clouds. | ||
[[File:Qgis_cloud_qi_pseudo.png|400px]] [[File:Qgis_cloud_qi_opacity.png|400px]] | [[File:Qgis_cloud_qi_pseudo.png|400px]] [[File:Qgis_cloud_qi_opacity.png|400px]] | ||
− | # Create a binary cloud mask (bitmask) where clouds = 1 and non-clouds = 0. Use the Processing tool OTB Band math. You may write a conditional ifelse expression using lazy operators. Type into the expression field | + | # Create a binary cloud mask (bitmask) where clouds = 1 and non-clouds = 0. Use the Processing tool OTB Band math. You may write a conditional ''ifelse expression'' using lazy operators. Type into the expression field |
− | im1b1>30?1:0 | + | {{typed|text=im1b1>30?1:0}} |
− | That means if the pixel value of band 1 of multiband image 1 is | + | That means if the pixel value of band 1 of multiband image 1 is larger than 30 then replace with 1 otherwise replace with 0. |
− | # | + | # Apply a circular majority filter with a radius of 7 pixels. |
[[Category:QGIS Tutorial]] | [[Category:QGIS Tutorial]] |
Revision as of 06:51, 13 November 2017
Sentinel-2 cloud and cloud shaodow masking
The exclusion of clouds and cloud shadow is an important processing step which is usually done in an early preprocessing stage. The Sentinel-2 products are annotated with Quality Indicators (QI_DATA). In the Level 2A product you may find a file in the folder QI_DATA with the extension _CLD_20m.jp2 (data type: 8bit unsigned integer, spatial resolution 20m) which might be used for masking clouds. The data range is from 0 for high confidence clear sky to 100 for high confidence cloudy (for more details see L2A Product Definition Document).
- Load a multiband Sentinel-2 satellite image (Level 2-A product) Changing Raster Layer Style to display a true color and a false color composite.
- Zoom in to a cloudy part of the image and compare the extent of cloud and cloud shadow in both composites. Which composite is better for displaying clouds?
- The original single band cloud quality indicator band is included in this specifc multiband file as band No. 13. Follow Split stack to extract this band.
- Overlay the QI Cloud band on top of the color composites. Use the Identify Feature Tool for requesting pixel values of the QI band file inside a cloud. Which values represent clouds?
- In (Layer Properties Style load Load the full data range (minimum/maximum values) ). Then change the Style to a Pseudocolor map with interpolation discrete and 10 equal interval classes as shown in the screenshot.
- Double click on a color field of some classes (Layer Properties Style) to open the change color window. Change the opacity from 100% to 0%. Find the best threshold for clouds.
- Create a binary cloud mask (bitmask) where clouds = 1 and non-clouds = 0. Use the Processing tool OTB Band math. You may write a conditional ifelse expression using lazy operators. Type into the expression field
im1b1>30?1:0 That means if the pixel value of band 1 of multiband image 1 is larger than 30 then replace with 1 otherwise replace with 0.
- Apply a circular majority filter with a radius of 7 pixels.