Showing results for 
Search instead for 
Do you mean 

Simple Cloud Mask for Landsat Imagery

by Technical Evangelist on ‎11-20-2015 07:36 AM - edited on ‎02-24-2020 04:52 AM by Community Manager (4,511 Views)

Download Model


Based on the paper "Implementation on Landsat Data of a Simple Cloud Mask Algorithm Developed for MODIS Land Bands", Oreopoulos, Lazaros; Wilson, Michael; Varnai, Tamas;


The paper presents a modified version of a cloud masking algorithm originally developed for clear-sky compositing of Moderate Resolution Imaging Spectroradiometer (MODIS) images at northern mid-latitudes, but modifies it to apply to Landsat imagery. While data from recent Landsat missions include measurements at thermal wavelengths which are commonly used to derive cloud masks, thermal tests are not included in the suggested algorithm in its present form to maintain greater versatility and ease of use.


The algorithm requires presence of bands covering the following wavelengths:


450 - 515nm (Landsat ETM+ Band 1)

630 - 690nm (Landsat ETM+ Band 3)

750 - 900nm (Landsat ETM+ Band 4)

1550 - 1750nm (Landsat ETM+ Band 5)


It also requires the data to have been converted to Surface Reflectance. Note that imagery that has been converted to Reflectance often has a scaling factor applied to it so that it can be stored as Integer values rather than as Float. For example, USGS Landsat Surface Reflectance datasets are scaled up by 10,000. Consequently, the Model provides a Reflectance Multiplier input which is used to scale the data back to reflectance values.


A good source of candidate Landsat surface reflectance images is the USGS website When choosing images from this Landsat Archive, there are options for finding Landsat Surface Reflectance data sets. A description of these products is found here Note that these products use a scaling factor of 10,000.  However these products also use a pixel DN value of 20,000 to flag saturated (very bright) pixels. The recommendation is to use a model scaling factor of 10,000 with this data. Saturated pixels seem to mask fairly well in the model using 10,000.


The Model produces five major pixel classes: non-vegetated land, vegetated land, water, ice/snow and cloudy classes. However, the primary intent of the technique is to produce the cloud mask; the other classes are included mainly to exclude those pixel locations from consideration as cloud.


 Landsat 5 Reflectance image on the left (Bands 4,3,2), Cloud Mask on the right






Input parameters:

Input Landsat: The input Landsat multispectral image where the bands are expected to include at least the following wavelengths: L(ayer)1 (450-515nm), L3 (630-690nm), L4 (750-900nm) and L5 (1550-1750nm), which is standard for Landsat 4 and 5. Values must have been converted to Reflectance.

Reflectance Multiplier: The factor by which Reflectance has been adjusted to the range in the input image (e.g. 10000)

Output Masks: Name of the output thematic file. A Class_Names field will be added with appropriate names and associated colors.



on ‎11-15-2020 11:43 AM

Greetings Ian:


As for images such as Pleiades, Spot 6, 7 and other sensors that have fewer bands, for example Pleiades four, how can the clouds be masked.


Thank you very much, your contribution is excellent.

by Technical Evangelist
on ‎11-16-2020 06:10 AM

Hi @neo ,


Most current cloud masking algorithms rely on the presence of SWIR bands or dedicated Cirrus bands. If all you have is visible and NIR bands then it's very difficult because clouds tend to be bright at all those wavelengths and hence are very similar to concrete and other light materials.


I spent some time earlier this year researching exactly this problem for a project we had. I tried implementing several papers which sounded promising, but which in the end were not robust to changing conditions in the imagery.


Deep Learning shows promise however. Inception has shown to be good for cloud estimation. For actual cloud masking we may have to wait for some additional algorithms to be implemented in Spatial Modeler.




on ‎11-16-2020 06:50 AM

Greetings Ian:


Thank you very much for your excellent explanation, I remain pending on the progress soon on this issue.


Jorge Castillo