SPOT4(Take5) first cloud masks

=>

Now that you know almost everything on our cloud detection method and on our shadow detection method, we can show you the first results obtained by Mireille Huc (CESBIO) with SPOT4(Take5) time series. As the method is multi-temporal, it needs an initialisation phase, and we had to wait until we had a sufficient number of images to produce the masks. These first results are not (yet) perfect, but are already quite presentable.

 

The images shown below are a series of 6 Level 1C images, expressed in Top of Atmosphere reflectance, with the contours of several masks orverlayed : the clouds are circled in green, their shadows in black, the water and snow mask are respectively circled in blue and pink. You may click twice on the images to see the details of the masks. These images were acquired in Provence (France), each of them is made from 4 (60x60 km²) SPOT Images obtained on the same day, ortho-rectified, then merged.

 

Most clouds are detected, including very thin clouds, while the number of false cloud detections is very low. Most large cloud shadow are also detected, even if a few of them were missed. The water mask is also quite accurate with nearly no false detections, taking into account it is produced at 200m resolution. The snow is well classified when the snow cover is high, but often, pixels with a moderate snow cover are classified as clouds. This is a classical difficulty with snow masks.

 

However, we know that your sharp eyes will have noticed some very thin clouds partly missed by our classification in the North East of the first image, a few false cloud detections on the 3rd and the 5th images (the ground dries and becomes brighter and whiter), some missed cloud shadows for some small clouds once in a while (we know why, it is an initialisation problem, but quite long to explain...). The cloud detection threshold for water pixels (the method is different from the cloud detection above land), is maybe a little to low, as some bright Camargue Lakes are wrongly classified as cloudy. But after all, for a first run, the result is not bad, and we will refine all the parameters when we have a sufficient number of images.

On the Fourth Image, only two of the 4 (60*60 km²) images are available, because the two others are too cloudy to be ortho-rectified, as we need to see the surface to take ground control points. In fact, the ortho-rectification step is the first of our cloud masking steps.

 

The clouds are circled in green, their shadows in black, the water and snow mask are respectively circled in blue and pink. You may click twice on the images to see the details of the masks.

Instrumentation du site Loire-Estuaire pour valider les hauteurs d'eau tirées de SPOT4(Take5)

Dans l'estuaire de la Loire, entre Lavau-sur-Loire et Rohars, les berges sont constituées d'anciennes îles séparées par d'anciens bras de Loire colmatés, sur lesquelles les eaux du fleuve débordent librement lorsque leur niveau franchit la ligne de rive. Sur ces espaces, les submersions sont fréquentes et dynamiques.
Afin de compléter les observations et mesures aux échelles faites par ailleurs sur toute la période du programme spot4/take5 pour le projet DETECLOIRE, le GIP Loire Estuaire et IFREMER ont décidé de positionner des capteurs de pression afin de mesurer les hauteurs d'eau toutes les 75 secondes en 4 points stratégiques, dans le but de :

  • valider la hauteur d'eau interprétée avec les "taches d'inondation" issues des données Spot4 et des données LIDAR du GIP Loire Estuaire : L'image SPOT4 fournit la surface en eau, et le modèle d'élévation fourni par LIDAR permet d'en déduire la hauteur d'eau, qui est validée par le capteur de pression.
  • valider la propagation des submersions afin de qualifier les résultats dans le cycle de débordement : une surface inondée à un instant "t" peut être le résultat de submersions répétées, et pas seulement de la pleine mer précédent l'acquisition par Spot4.

La détection des ombres de nuages, comment ça marche ?

=>

Les ombres des nuages sont sombres, et ont été causées par la présence d'un nuage.

A l'exception de ces deux faits, on ne dispose pas de beaucoup d'informations pour détecter une ombre, et pour cette raison, les ombres sont encore plus difficiles à détecter que les nuages. Les ombres ne sont pas les seuls objets sombres, et les ombres de nuages peuvent être confondues avec des parcelles de sols nus humides, avec des étendues d'eau, ou avec des ombres projetées par le relief.

Ici encore, l'observation multi-temporelle peut aider à la détection, puis qu'il y aura moins de confusions si on détecte un assombrissement brutal de l'image. Cependant, l'effet d'une pluie ou d'une irrigation sur un sol nu peut-être similaire à l'effet d'une ombre de nuages.

Pour être sûr que les pixels détectés comme une ombre sont bien des ombres, il est donc bien utile de vérifier si l'on trouve le nuage qui les auraient créées.

Dans notre chaîne de traitement, nous procédons de la manière suivante :

1. Détection des nuages
2. Calcul de la différence entre l'image à traiter, et une image de référence acquise précédemment, dans la bande rouge
3. Recherche de l'altitude des nuages. Pour une altitude allant de 500 à 10000m :

  • calcul de la position éventuelle des ombres.
  • calcul de l'assombrissement moyen observé pour cette position à partir de l'image différence calculée lors de l'étape 2.

4. Recherche de l'altitude pour laquelle l'assombrissement est maximal
5. Calcul du masque d'ombres à partir du masque de nuages projeté pour l'altitude calculée lors de l'étape 4

Malheureusement, il se peut que des nuages situés en dehors de l'image projettent leurs ombres dans l'image. Ces ombres là ne seront pas détectées par la méthode ci-dessus. Si l'on tient compte du fait que les nuages peuvent atteindre 5 à 10 kilomètres d'altitude, et qu'en hiver, l'élévation solaire peut être faible, la surface concernée par ce problème peut être assez étendue. Sur ce plan là, les meilleures images sont les plus grandes, et c'est Sentinel-2 avec 300 km de largeur, qui remportera la palme.

The detection of cloud shadows : how it works.

=>

The cloud shadows are dark and, of course, they are due the presence of a nearby cloud.

Apart from these facts, there is not much information to detect clouds, and for this reason, the cloud shadows are even more difficult to detect than the clouds themselves.

The shadows are not the only dark objects, and cloud shadows can be confused with plots of bare soil, with water bodies or with shadows cast by the terrain. Again, using multi-temporal methods can reduce the risk of confusion : here the algorithm must detect a sudden darkening of a pixel. However, the effect of plowing, rainfall or irrigation on a bare soil may be similar to the effect of a cloud shadow.

To be sure that the pixels that suddenly darkened are true cloud shadows, it is useful to check that the shadow matches the cloud that casted it.

In our processor, we do as follows :

1. Cloud detection
2. Compute the difference between the processed image and a previous image (using the red spectral band)
3. For an altitude between 500m and 10000m :

  • compute the cloud shadow projection for this altitude.
  • compute the average darkening for this altitude from the diference image obtained at step 2.

4. Find the altitude for which the darkening is maximal
5. Compute the shadow mask from the cloud mask, for the altitude obtained at step 4.

However, one has to pay attention that some clouds, outside the image may cast shadows within the image. As the clouds may reach 5 to 10 km altitude, and the solar elevation may be low in winter, some shadows  in a large par of the image near the borders mays be missed. With this regard, the larger the image the better. This will be the case with sentinel 2.

 

Une image claire en Bretagne, une !

Mosaïque de 120*120 km sur la Bretagne. (c) CNES, traitement CESBIO.

Ça n'arrive pas tous les jours d'observer une grande partie de la Bretagne (120*120 km²) sans aucun nuage, surtout au cours de ce mois de février 2013 très nuageux en France.

Évidemment, en prenant une image tous les 5 jours, la probabilité d'observation augmente, mais je pense que nous avons eu beaucoup de chance...

 

 

 

La détection des nuages, comment ça marche ?

=>

Les nuages sont blancs, brillants, plutôt hauts dans le ciel. Leur température est en général plus basse que celle de la surface. Ils se déplacent et changent d'aspect, il n'y a donc jamais le même nuage au dessus du même endroit. Les nuages produisent des ombres sur le sol.

Toutes ces propriétés peuvent être utilisées pour détecter automatiquement les nuages.

 

Détection classique

Lorsqu'on ne dispose pas d'une série temporelle, la technique de base consiste à seuiller l'image d'une des bandes spectrales dans les courtes longueurs d'onde, de préférence dans le bleu. Les pixels dont la réflectance dépasse le seuil sont déclarés nuageux. Cette méthode n'est cependant pas très subtile et souvent ne parvient pas à détecter les nuages fins, elle fait aussi de nombreuses fausses détections. On peut aussi vérifier que le nuage est blanc, mais l'apport de cette vérification n'est pas énorme car les nuages fins ne sont pas parfaitement blancs, alors que de nombreux pixels brillants sont blancs, dans les villes par exemple.

 

Détection multi-temporelle

Les nuages détectés par la méthode multi-temporelle sur cette image Formosat-2 sont entourés de blanc. Noter que certaines parcelles agricoles sont plus brillantes que certains nuages. Cliquer sur l'image pour voir l'animation.

Lorsqu'on dispose de séries temporelles d'images de satellites à acquisition systématique, obtenues sous un angle à peu près constant, comme c'est le cas pour SPOT4(Take5),  Venµs, LANDSAT, Sentinel-2, on peut utiliser des critères temporels pour détecter les nuages.

 

La réflectance des surfaces terrestres évolue en général lentement, mais lorsqu'un nuage apparaît, la réflectance augmente brusquement. En comparant donc l'image à traiter avec une image précédente, on peut classer comme nuages les pixels pour lesquels la réflectance dans le bleu a notablement augmenté. On peut aussi vérifier que les pixels ainsi détectés ont un spectre plus blanc que dans l'image précédente. Cette méthode améliore très fortement la discrimination entre pixels nuageux et pixels clairs.

 

Cependant, cette méthode de détection présente un coût, car elle oblige à traiter les données dans l'ordre chronologique et empêche un traitement indépendant par image. Elle complique donc le centre de traitement et nuit également à la parallélisation des traitements. C'est cependant cette méthode que nous mettons en place dans MUSCATE, pour traiter les données de SPOT4(Take5), LANDSAT, Venµs et Sentinel-2.

 

Pour en savoir plus sur cette méthode, utilisée dans la chaîne de niveau 2A MACCS :

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.

 

Détection des nuages hauts dans une bande d'absorption

Les traces d'avion seront beaucoup plus faciles à détecter avec la nouvelle bande 1380nm présente sur Landsat 8 et Sentinel-2.

Sur Sentinel-2 et sur Landsat 8, une nouvelle bande spectrale sera disponible, avec une longueur d'onde de 1380 nm. Cette bande spectrale correspond à une bande d'absorption totale de la vapeur d'eau. A cette longueur d'onde, le rayonnement solaire est totalement absorbé dans son aller retour entre le sommet de l'atmosphère et la surface. En revanche, le rayonnement réfléchi par un nuage à plus de 3000 mètres d'altitude n'est pas totalement absorbé car la vapeur d'eau est majoritairement située dans les basses couches de l'atmosphère. Cette bande va donc nous permettre de détecter les nuages élevés, même s'ils sont fins. Les cirrus sont en général très difficiles à détecter, ce n'est plus le cas avec cette méthode, que avons mise en place dans MACCS pour ces deux satellites.

 

Détection par la température

Les nuages hauts sont en général plus froids que la surface, la présence d'une bande thermique sur les satellites Landsat permet d'utiliser ce critère de détection. Cependant, les variations thermiques de la surface sont importantes d'un jour à l'autre, il est donc difficile de détecter les nuages bas, dont la température est proche de celle de la surface. Nous n'avons pas retenu cette méthode qui ne s'applique qu'à LANDSAT.

 

Détection stéréoscopique

Le satellite Venµs possède deux bandes identiques qui observent les scènes sous deux angles différents. Cette bande permet donc de voir le relief, avec une précision modérée, mais suffisante pour distinguer les nuages de la surface terrestre. Nous utiliserons cette méthode pour Venµs, en complément de la méthode multi-temporelle. Elle devrait permettre de détecter les nuages situés à plus de 500 mètres d'altitude, et surtout, la connaissance de cette altitude facilitera la détection des ombres.

 

Détection des ombres

La détection des ombres est expliquée ici.

The cloud detection : how it works.

=>

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.

 

Standard detection

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.

 

Multi-temporal detection

The clouds detected by the multi-temporal methodon this FORMOSAT-2 image are outlined by white contours. Note that some agricultural plots are brighter than some clouds, with nearly no confusion. Click on the image to view animation

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

Plane contrails will be much easier to detect with the new 1380nm band available on Landsat 8 and Sentinel-2.

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.

 

3D detection

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.

 

Shadow detection

To be continued