The C Function of Mask (CFMask) cloud cover algorithm is used for Landsat Collection 1 Level-1 Landsat 4-5 Thematic Mapper (TM), Landsat 7 Enhanced Thematic Mapper Plus (ETM+), and Landsat 8 Operational Land Imager (OLI)/Thermal Infrared Sensor (TIRS) data products to allow for consistent results. (Landsat 1-5 Multispectral Scanner (MSS) data will be considered for Collection 1 processing later).
This paper, published in 2017, describes the comparison of the various cloud detection algorithms used for Landsat data products, and provides important information about CFMask: Foga, S., Scaramuzza, P.L., Guo, S., Zhu, Z., Dilley, R.D., Beckmann, T., Schmidt, G.L., Dwyer, J.L., Hughes, M.J., Laue, B. (2017). Cloud detection algorithm comparison and validation for operational Landsat data products. Remote Sensing of Environment, 194, 379-390. http://doi.org/10.1016/j.rse.2017.03.026.
For Pre-Collection Landsat data, there are several cloud cover algorithms used. These are described in further detail below.
In late 2013, a scene-based automated Cloud Cover Assessment (CCA) was implemented for Landsat 1-5 MSS data. The CCA is determined using the output of a trained Cubist model. A 0-100 bit-mask is created using the model output (0=fill, 1=non-cloud, 100=cloud; 2-99=likelihood of the pixel being a cloud based on the model prediction). A cut value is applied to the model results to help refine the final score where the cutoff defaults to 10. The scene cloud score is created by taking the number of pixels in the scene that have a cloud value exceeding the cut value, and dividing the result by the total number of scene pixels. The final cloud score is stored in the “Cloud Cover” field within the metadata (MTL) file.
The percentage of cloud cover for Landsat 4-5 TM and Landsat 7 ETM+ data is calculated using the Landsat 7 Automatic Cloud Cover Assessment (ACCA) algorithm. The L7 ACCA algorithm is described in these Landsat Science Team Meeting slides as well as the original L7 ACCA publication. This algorithm uses a number of spectral tests and is based on the premise that clouds are brighter and colder than most of the Earth’s surface. The ACCA, however, does not perform as well over snow and ice due to their similar spectral response in multiple Landsat bands. ACCA works well in most cases, but occasionally, temperature inversions occur and invalid cloud cover assessments may result. While there are also intermittent problems with the ACCA detection of popcorn clouds and haze, the ACCA algorithm maintains a higher degree of overall accuracy relative to the previous methods employed for past Landsat processing systems.
The Landsat 8 CCA system uses multiple algorithms to detect clouds in scene data. Each algorithm creates its own pixel mask; the masks are then merged to create the final Level-1 Quality Assessment (QA) Band. Landsat 8 CCA system algorithms include:
The Landsat 8 ACCA algorithm used in Landsat 8 is the same algorithm used in TM/ETM+ cloud assessment, but it creates a full mask instead of a scene-wide score, and is used to detect land cover types as well as clouds. ACCA is responsible for filling the water and snow/ice bits in the Landsat 8 band. The L8 ACCA algorithm is described in these Landsat Science Team Meeting slides as wells as the original L8 ACCA publication.
The See-5 CCA algorithm is a large decision tree that runs 244 threshold tests using inputs from OLI bands 2-7. See-5 CCA generates a confidence score that is used to label the pixel as low, medium, or high confidence cloud. See-5 is responsible for filling the cloud and cloud confidence bits in the Landsat 8 QA band.
Landsat 8 OLI contains a cirrus detection band (Band 9) centered on shortwave infrared light at 1.38 µm. Light at this wavelength is strongly absorbed by water vapor in the Earth’s atmosphere and therefore cannot reflect back to the satellite. Cirrus clouds consist of ice crystals and are high in the atmosphere and thus above most of the water vapor, so they are strong reflectors of this 1.38 µm radiation. The Cirrus CCA algorithm fills the cirrus bit in the Landsat QA band using information from OLI Band 9.
The Artificial Thermal (AT) variant of the ACCA algorithm is intended for use only when thermal data from the TIRS instrument are not available. It creates the AT band by using reflectance from Bands 2-7 and a statistical model to approximate the brightness temperature of the missing thermal band. Once the AT band is created, a modified ACCA algorithm uses it as a replacement for brightness temperature. AT-ACCA is used to fill water and snow/ice bits in the Landsat 8 QA band only when TIRS data are not available.
Note: ACCA and AT-ACCA are never used together. If a thermal band exists, only ACCA is utilized.