Les séries temporelles d'images pour reconnaître les essences en forêt

Les collègues du laboratoire DYNAFOR (INRA / INP-ENSAT / INP-EI Purpan), en collaboration avec le Centre National de la Propriété Forestière (CNPF), travaillent depuis quelques années sur la reconnaissance des espèces arborées en forêt. Les premiers travaux ont démarré avec des séries temporelles d'images MODIS et ont permis de cartographier la chaîne des Pyrénées à moyenne résolution spatiale. Plus récemment, pour préparer l'arrivée des images Sentinel-2, des séries temporelles denses à haute résolution spatiale (FORMOSAT-2), couvrant tout le cycle annuel de la végétation, ont été exploitées. Les séries temporelles sont particulièrement utiles pour ce type d'application puisque d'une essence à l'autre, les cycles végétatifs sont différents avec des dates de débourrement ou de jaunissement et chute des feuilles différentes (le terme technique est senescence, et l'étude inter-annuelle des dates auxquelles se répètent les événements caractéristiques, comme la senescence, s'appelle la phénologie). On peut s'en rendre compte facilement en comparant deux images acquises à 2 dates différentes, comme c'est le cas ci-dessous. La première est un extrait d'image FORMOSAT-2 en fausses couleurs infra-rouge datant du 16 février 2013 (la végétation apparaît dans la gamme des rouges). La seconde image est datée du 20 juillet 2013. On peut observer une différence importante entre les feuillus et les conifères aux deux dates. Les feuillus ayant perdus leurs feuilles en hiver, ils n'apparaissent pas en rouge sur l'image de Février, contrairement à l'image de Juillet.

 

Image d'hiver en fausses couleurs infra-rouge FORMOSAT-2 datée du 16/02/2013 (résolution spatiale : 8m)


Image d'été en fausses couleurs infra-rouge FORMOSAT-2 datée du 20/07/2013 (résolution spatiale : 8m)

Continue reading

First Sentinel-2 snow map

=>

 

In the framework of the THEIA land data center, we have developed a simple but robust method to map the snow cover from Sentinel-2-like level 2A products. This code was tested with SPOT-4 Take-5 and Landsat-8 series, but it remained to adapt it so that it can run on real Sentinel-2 images! This is now done thanks to Manuel Grizonnet, which allowed us to process the Sentinel-2A image acquired on 06-July-2015 in the Pyrenees as a first example. This image was produced at level 2A by Olivier Hagolle using the MACCS processor. The snow mask from Sentinel-2 images is calculated at 20 m resolution after resampling the green and red bands that are originally at 10 m resolution while the NIR band is at 20 m.

How to make sure everything went well? We can control the snow mask by superposing the mask boundaries on a false color composite:

 

The Sentinel-2A image of 06-July-2015 (level 2A, tile 30TYN) and its snow mask. The snow mask is in magenta and the background image is a color composite RGB NIR/Red/Green. We also show a zoom in the Vignemale area.

Continue reading

Premier masque de neige Sentinel-2

=>

Dans le cadre du Centre d'expertise scientifique THEIA "surface enneigée" nous avons développé une méthode simple et robuste pour détecter la neige à haute-resolution à partir des produits de niveau 2A de type Sentinel-2. Ce code a été testé sur des séries SPOT-4 Take-5 et Landsat-8, mais il restait à l'adapter pour qu'il puisse tourner sur de vraies images Sentinel-2 ! C'est chose faite grâce à Manuel Grizonnet, ce qui nous a permis de traiter l'image Sentinel-2A du 06-juillet-2015 sur les Pyrénées. Cette image avait été produite au niveau 2A par Olivier Hagolle avec la chaine MACCS. Le masque de neige est calculé à 20 m de résolution après ré-échantillonnage des bandes vertes et rouges qui sont d'origine à 10 m de résolution alors que la bande MIR est à 20 m. Continuer à lire

The snow cover area of the Canigou mountain in January since 1985

=>

Franck Roux told this sentence in his lecture "Should we be afraid of climate change?" given at the University Paul Sabatier on December 10, 2015 (I quote from memory):
 

"The human being is a very good weather sensor, but it is a poor climate sensor."

 

Since our memory can play tricks on us, satellite images are valuable data. As we have seen in a previous article, the snow cover area in the Pyrenees was rather small in January 2016. We can reconstruct the snow extent across the whole mountain range since 2000 with MODIS or even 1998 with SPOT-VGT. However if you want to zoom in on a specific region, the spatial resolution offered by these sensors quickly becomes insufficient so we must turn to the Landsat archive. Continue reading

Enneigement du Canigou en janvier depuis 1985

=>

Franck Roux a prononcé cette phrase lors de sa conférence "Faut-il avoir peur du changement climatique" donnée à l'Université Paul Sabatier le 10 décembre 2015 (je cite de tête) :
 

"L'être humain est un très bon capteur météorologique, mais il est un piètre capteur climatologique."

 

Puisque notre mémoire peut nous jouer des tours, les archives satellites sont précieuses. Comme nous l'avons vu dans un article précédent, l'enneigement en janvier 2016 était plutôt déficitaire dans les Pyrénées. On peut reconstituer l'enneigement à l'échelle des Pyrénées depuis l'an 2000 avec MODIS voire 1998 avec SPOT-VGT. En revanche si on veut zoomer sur un massif en particulier, la résolution spatiale offerte par ces capteurs devient vite insuffisante et il faut se tourner vers l'archive Landsat. Continuer à lire

First comparison of Sentinel-2 cloud masks delivered by MACCS and SEN2COR

 

=>

A new version o Sen2cor has been published recently, and this comparison was re-iterated with Sen2cor 2.2.1. The corresponding post is published here.

 

While CNES is getting ready to produce and distribute Sentinel-2A  products obtained with our MACCS processor, I have been asked by impatient users what I thought of SEN2COR Sentinel-2 cloud masks. In this aim, I have downloaded SEN2COR and made a few runs. SEN2COR works on all sorts of multi-platform, and is rather easy to install and to run in its nominal configuration, which is not the case of MACCS, which is intended to be implemented in ground segments, and only works on a Red Hat environment. However, I have been able to process the same date on two sites, and here are the results I obtained.

 

MACCS

SEN2COR

Comparison of MACCS and SEN2COR cloud masks on a cloud free image of Toulouse. The contours of detected clouds (green), shadows (yellow), water (blue), and snow (pink) are overlayed on the images.
Continue reading

Première comparaison des masques de nuages Sentinel-2 produits par MACCS et SEN2COR

=>

Une nouvelle version de Sen2cor a été publiée récemment, et nous avons refait la comparaison. Les résultats sont publiés ici.

 

Alors que le CNES se prépare à produire et distribuer des données de niveau 2A pour Sentinel-2 à partir de notre processeur MACCS, quelques utilisateurs impatients m'ont demandé ce que je pensais du masque de nuages fourni par l'outil SEN2COR distribué par l'ESA. Pour me faire une idée, j'ai téléchargé SEN2COR et je l'ai fait tourner sur quelques produits. SEN2COR fonctionne sur plusieurs types de plate-formes, dont Linux, et il est plutôt facile à installer et utiliser dans sa configuration nominale.

 

 

MACCS 

SEN2COR 

Comparaison des masques de nuages obtenus par MACCS et SEN2COR sur une scène complètement claire acquise sur Toulouse. Les contours des masques sont superposés aux images et tracés en vert pour les nuages, en jaune pour leurs ombres, en bleu pour l'eau, et en rose pour la neige.

Continue reading

How to automatically download Sentinel data from PEPS collaborative ground segment

=>

peps_download

This is a simple piece of code to automatically download the products provided by the French Sentinel collaborative ground segment named PEPS : https://peps.cnes.fr. PEPS is mirroring all the Sentinel data provided by ESA, and is providing a simplified access.

This code was written thanks to the precious help of one my colleagues at CNES Jérôme Gasperi who developed the "rocket" interface which is used by Peps.

This code relies on python 2.7 and on the curl utility. Because of that, I guess it only works with linux.

The tool is available on my github repository : https://github.com/olivierhagolle/peps_download

Examples

This software is still quite basic, but if you have an account at PEPS, you may download products using command lines like

  • python ./peps_download.py -c S2 -l 'Toulouse' -a peps.txt -d 2015-11-01 -f 2015-12-01 which downloads the Sentinel-2 products above Toulouse, acquired in November 2015.
  • python ./peps_download.py -c S2 --lon 1 --lat 43.5 -a peps.txt -d 2015-11-01 -f 2015-12-01 which downloads the Sentinel-2 products above --lon 1 --lat 43.5 (~Toulouse), acquired in November 2015.
  • python ./peps_download.py -c S1 --lonmin 1 --lonmax 2 --latmin 43 --latmax 44 -a peps.txt -d 2015-11-01 -f 2015-12-01 which downloads the Sentinel-1 products in latitude, longitude box around Toulouse, acquired in November 2015.

Authentification

The file peps.txt must contain your email address and your password on the same line, such as follows :your.email@address.fr top_secret

To get an account : https://peps.cnes.fr/rocket/#/register

 

Télécharger sans clics les données Sentinel depuis PEPS

=>

peps_download

C'est une petite routine pour télécharger automatiquement les données fournies par PEPS, le segment sol collaboratif Français pour les projets Sentinel: https://peps.cnes.fr. PEPS redistribue en miroir tous les produits Sentinel fournies par Scihub.

 

Ce code a été écrit grâce à l'aide d'un de mes collègues du CNES,  Jérôme Gasperi qui a développé l'interface Rocket qui permet de distribuer les données PEPS. Il est écrit en python 2.7 et se base sur l'utilitaire CURL Pour cette raison, il ne fonctionne que sous linux, je pense.


L'outil est disponible sur mon dépôt Github : https://github.com/olivierhagolle/peps_download

Exemples

La routine est assez basique, mais si vous avez un compte sur PEPS, vous pouvez télécharger des données avec des lignes de commande du genre :

  • python ./peps_download.py -c S2 -l 'Toulouse' -a peps.txt -d 2015-11-01 -f 2015-12-01qui télécharge les données Sentinel-2 acquises sur Toulouse, en Novembre 2015.
  • python ./peps_download.py -c S2 --lon 1 --lat 43.5 -a peps.txt -d 2015-11-01 -f 2015-12-01qui télécharge les données Sentinel-2 acquises aux coordonnées --lon 1 --lat 43.5 (~Toulouse), en Novembre 2015.
  • python ./peps_download.py -c S1 --lonmin 1 --lonmax 2 --latmin 43 --latmax 44 -a peps.txt -d 2015-11-01 -f 2015-12-01qui télécharge les données Sentinel-1 qui intersectent un rectangle en latitude, longitude autour de Toulouse, en November 2015.

Authentification

le fichier peps.txt doit contenir votre adresse email et votre mot de passe, comme ceci :

your.email@address.fr top_secret

Pour obtenir un compte : https://peps.cnes.fr/rocket/#/register