Clouds are white, bright, rather high in the sky. Their temperature is generally lower than that of the surface. They move and change appearance, and they cast shadows on the ground.
All these properties can be used to automatically detect clouds.
The basic technique consists in thresholding the image of a spectral band in the short wavelength range (preferably a blue band). Pixels whose reflectance is above the threshold are declared cloudy. This method is not very subtle and often does not detect thin clouds, it also makes many false detections. We can also check that the cloud is white, but the contribution of this verification is not really effective, because thin clouds are not perfectly white, while many bright pixels are white, in cities for example.
A multi-temporal detection may be applied when time series of satellite images are available, if they are acquired with a roughly constant viewing angle, as in the case of SPOT4 (Take5), Venμs, LANDSAT, and Sentinel-2.
Usually, reflectances of land surfaces change slowly, but when a cloud appears, the reflectance increases sharply. So, by comparing the processed image with a previous image, the pixels for which the reflectance in the blue increased significantly can be classified as clouds, provided the detected pixels have a whiter spectrum than in the previous image. This method greatly improves the discrimination between cloudy and clear pixels.
However, this detection method has a cost, because it requires to process the data in chronological order and therefore prevents processing the image independently. It complicates the processing center and also affects the parallelization of processing. However, this method is implemented in MUSCATE center, to process SPOT4 (Take5), LANDSAT, Venμs and Sentinel-2 time series.
For more details on this method, used in MACCS Level 2A processor :Hagolle, O., Huc, M., Villa Pascual D., & Dedieu, G. (2010). A multi-temporal method for cloud detection, applied to FORMOSAT-2, VENµS, LANDSAT and SENTINEL-2 images. Remote Sensing of Environment, 114(8), 1747-1755.
Detection of high clouds using an absorption band
On Landsat 8 and Sentinel-2, a new spectral band is available, at 1380 nm. This spectral band corresponds to a strong water vapour absorption band. At this wavelength, the solar radiation is totally absorbed in his back and forth between the top of the atmosphere and the surface. In contrast, the radiation reflected by a cloud above 3000 meters is not totally absorbed as water vapor is mainly located in the lower layers of the atmosphere. Therefore, a simple threshold on the reflectance of this band enables to detect high clouds. Cirrus clouds are usually very difficult to detect, it will not be the case with this method which is also used within MUSCATE for LANDSAT-8 and Sentinel-2 satellites.
Thermal Infrared detection
High clouds are usually colder than the surface, the presence of a thermal band on Landsat satellites enables to use this property as a detection criterion. However, the thermal variations of the earth surface from a day to another are large, and prevent from detecting low clouds which have a temperature close to that of earth surface. We have not used this method as it applies only to LANDSAT.
The Venµs satellite has two identical bands that observe scenes from two slightly different angles. This couple of bands makes it possible to see the terrain in 3D, with a moderate accuracy, but sufficient to tell the clouds from the surface. We use this method to detect clouds on Venμs data, in addition to the multi-temporal method. It should detect clouds more than 500 meters high, and most importantly, knowing the cloud altitude will help detecting shadows.