Ce tutoriel accompagne la séquence 6 de la section Cartographie de la biodiversité par imagerie satellite du module de formation COPERNICUS et biodiversité de la Copernicus Academy.

Il permet d’appliquer biodivMapR aux données de réflectance Sentinel-2 précédemment téléchargées et pré-traitées.

Séquence 6.1: Appliquer biodivMapR directement aux données de réflectance

Plusieurs modalites d’utilisation sont possibles avec biodivMapR. Ces modalités d’utilisation diffèrent dans le type de données à partir duquel son calculées les espèces spectrales:

  • composantes sélectionnées à l’issue d’une transformation spectrale (PCA, SPCA, MNF…). C’est la modalité décrite dans les publications de référence présentant la méthode. La transformation spectrale est non supervisée et peut permettre de produire des composantes moins impactees par le bruit que les bandes spectrales originales. Cependant, elle nécessite une étape de selection de composantes par l’utilisateur. De plus, étant guidée par les données, elle ne permet pas d’assurer une reproductibilité des résultats si l’emprise d’analyse est modifiée.

  • Selection d’indices spectraux jugés pertinents par l’utilisateur. Cette modalité permet de produire des indicateurs de diversité à partir d’informations potentiellement plus proches de traits de végétation pertinents (cf. Schneider et al., 2017). Potentiellement moins demandeuse en terme de temps de calcul que les autres modalités, elle permet de tester des hypothèses relatives à l’importance d’indicateurs associés à des propriétés de végétation.

  • Selection de variables biophysiques jugées pertinentes par l’utilisateur. Les méthodes d’inversion de modèles de transfert radiatif permetttent d’estimer un certain nombre de variables biophysiques de la vegetation (structure de canopee, chimie foliaire…). Il est ainsi possible d’utiliser ces variables biophysiques comme source d’information avec biodivMapR. De la même manière qu’avec les indices spectraux, la sélection des variables biophysiques pertinentes necessite de prendre en compte i) les caracteristiques spectrales du capteur (la variable biophysique est-elle accessible ?), et ii) la pertinence des variables comme source d’information relative a la cartographie de la biodiversité.

Nous allons ici illustrer les deux premieres approches, basées sur une transformation spectrale des données, et sur la sélection d’indices spectraux.

Définition des paramètres necessaires à biodivMapR

Les variables définies lors du précédent tutoriel sont rappelées ici.

library(biodivMapR)
Input_Image_File <- Refl_path 
Input_Mask_File <- cloudmasks$BinaryMask
Output_Dir <- file.path(result_path,'biodivMapR')
# Apply normalization with continuum removal
Continuum_Removal <- TRUE
# spectral transformation with standardized PCA
TypePCA <- 'SPCA'
# number of clusters (spectral species)
nbclusters <- 50
# window size: RS diversity will be computed for this window size over the raster
window_size <- 10
# computational parameters
nbCPU <- 4
MaxRAM <- 0.2

Application d’un filtre radiométrique

Cette étape permet de réaliser un filtre pour eliminer les pixels ennuagés, ombragés ou non végétalisés. C’est un filtre assez grossier car basé sur des règles de décision très simplifiées:

  • le seuillage du NDVI permet d’éliminer les pixels non végétalisés.

  • le seuillage dans le domaine visible correspondant au bleu permet d’éliminer les pixels présentant une réflectance particulièrement forte pour de la végétation, laissant supposer la présence de brumes ou de nuages non identifiés par le masque nuage produit par la méthode de correction atmosphérique.

  • le seuillage dans le domaine proche infrarouge permet d’éliminer les pixels présentant une réflectance particulièrement faible pour de la végétation, laissant supposer que le pixel est situé à l’ombre.

A l’issue de cette étape, le masque défini par Input_Mask_File est mis à jour.

# Define levels for radiometric filtering
NDVI_Thresh <- 0.8
Blue_Thresh <- 500
NIR_Thresh <- 1500
Input_Mask_File <- biodivMapR::perform_radiometric_filtering(Image_Path = Input_Image_File,
                                                             Mask_Path = Input_Mask_File,
                                                             Output_Dir = Output_Dir,
                                                             TypePCA = TypePCA,
                                                             NDVI_Thresh = NDVI_Thresh,
                                                             Blue_Thresh = Blue_Thresh,
                                                             NIR_Thresh = NIR_Thresh)

Transformation spectrale et sélection de composantes

une ACP est appliquée sur les données de réflectance normalisées: normalisation spectrale par continuum removal, puis normalisation de la réflectance entre 0 et 1 pour chaque bande spectrale.

A l’issue de cette transformation, un fichier raster est crée, et l’utilisateur doit alors sélectionner les bandes spectrales ‘pertinentes’. La pertinence de ces bandes doit s’appuyer sur une analyse des motifs presents dans les composantes, afin d’eliminer celles presentant des artefacts ou du bruit, et de selectionner uniquement celles faisant apparaitre des motifs d’interet (contrastes entre types de végétation, entre espèces…).

PCA_Output <- biodivMapR::perform_PCA(Input_Image_File = Input_Image_File,
                                      Input_Mask_File = Input_Mask_File,
                                      Output_Dir = Output_Dir,
                                      TypePCA = TypePCA,
                                      nbCPU = nbCPU,
                                      MaxRAM = MaxRAM,
                                      Continuum_Removal = Continuum_Removal)

# path for the updated mask
Input_Mask_File <- PCA_Output$MaskPath

# Select components from the PCA/SPCA/MNF raster
# Sel_PC = path of the file where selected components are stored
Sel_PC <- biodivMapR::select_PCA_components(Input_Image_File = Input_Image_File,
                                            Output_Dir = Output_Dir,
                                            PCA_Files = PCA_Output$PCA_Files,
                                            TypePCA = PCA_Output$TypePCA,
                                            File_Open = TRUE)

Definition de la carte d’especes spectrales

Une fois les composantes sélectionnées, la carte d’espèces spectrales peut être calculée. Ces espèces spectrales sont définies à l’aide d’un algorithme de k-means clustering.

Kmeans_info <- biodivMapR::map_spectral_species(Input_Image_File = Input_Image_File,
                                                Input_Mask_File = PCA_Output$MaskPath,
                                                Output_Dir = Output_Dir,
                                                SpectralSpace_Output = PCA_Output,
                                                nbclusters = nbclusters,
                                                nbCPU = nbCPU, MaxRAM = MaxRAM)

Calcul de la diversité spectrale α\alpha

Une carte de diversité α\alpha (ici correspondant à l’indice de Shannon) peut alors être calculée.

Index_Alpha <- 'Shannon'
biodivMapR::map_alpha_div(Input_Image_File = Input_Image_File,
                          Output_Dir = Output_Dir,
                          TypePCA = TypePCA,
                          window_size = window_size,
                          nbCPU = nbCPU,
                          MaxRAM = MaxRAM,
                          Index_Alpha = Index_Alpha,
                          nbclusters = nbclusters)

Calcul de la diversité spectrale β\beta

De la même manière, une carte de diversité β\beta est aussi calculée.

biodivMapR::map_beta_div(Input_Image_File = Input_Image_File,
                         Output_Dir = Output_Dir,
                         TypePCA = TypePCA,
                         window_size = window_size,
                         nbCPU = nbCPU,
                         MaxRAM = MaxRAM,
                         nbclusters = nbclusters)

Séquence 6.2: Appliquer biodivMapR à une sélection d’indices spectraux.

Un tutoriel dédié à l’application de biodivMapR sur des indices spectraux issus de données Sentinel-2 est également disponible. Ce tutoriel décrit pas à pas comment calculer ces indices spectraux, puis les utiliser avec les mêmes fonctions que précédemment, en evitant toutefois la phase de transformation spectrale et la sélection de composantes. Le travail de sélection de variables pertinentes est donc attendu en amont de la part de l’utilisateur, ou peut faire l’objet de tests et de selection d’indices si des données de terrain sont disponibles.