#Introduction Le traitement d’images nécessite de prendre des précautions sur certains paramètres susceptibles de biaiser les résultats et les analyses des images. Ainsi nous avoons avons fait un masque de nuages pour chaque scène Sentinel2 disponibles avons de poursuivreles traitements d’images. # Présenation de la zone d’étude Notre zone d’étude se trouve dans la zone inter-tropicale nord. Il s’agit du lac Retba situé dans la captale sénégalise (Dakar) à l’extrême-ouest du continent africain. Le lac Retba se localise également à une position géographique non loin de l’océan atlantique. Cette région semi-aride est caractrerisée par deux saisons dans l’année: - une saison sèche - une saison pluvieuse qui dure deux à trois mois généralement dans cette région Il est important de noter que cette zone est également caracterisée par une très forte urbanisation (population dense) dont les conditions ne sont pas favorables aumaintien de la qualité des eaux de surfaces
library(leaflet)library(sf)# Coordonnées du lac Retbalac_rose_coords <-c(14.8417281, -17.2381393)# Chargement de la zone d'étude depuis le fichier GeoPackagestudy_area <-st_read('./Data/lac_retba.gpkg')
Reading layer `lac_retba' from data source
`/Users/abdoulahatguene/Desktop/Application_sauve/Application_BV/Data/lac_retba.gpkg'
using driver `GPKG'
Simple feature collection with 1 feature and 1 field
Geometry type: POLYGON
Dimension: XY
Bounding box: xmin: 256605.2 ymin: 1638545 xmax: 265157.4 ymax: 1645151
Projected CRS: WGS 84 / UTM zone 28N
# Transformation vers le système de coordonnées WGS84 (lat/long)study84 <-st_transform(study_area, crs =4326)# Création de la carte avec un zoom légèrement réduit (par exemple, zoom = 13)map <-leaflet() %>%addTiles(urlTemplate ="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", attribution =NULL) %>%setView(lng = lac_rose_coords[2], lat = lac_rose_coords[1], zoom =13) %>%addPolygons(data = study84, color ="green", weight =5,smoothFactor =0.5, opacity =1.0, fillOpacity =0,highlightOptions =highlightOptions(color ="green", weight =2, bringToFront =TRUE))# Ajout d'un marqueur pour le lac Rosemap <-addMarkers(map, lng = lac_rose_coords[2], lat = lac_rose_coords[1], popup ="Lac Rose")# Afficher la cartemap
Problématique
Dans des condtions diverses et variées (naturelles et humaines) nous pouvons observé des variations de superficies des plans d’eau dont le cas des lacs. Dans le cas du lac Retba, il est fort probable d’observer des variations sachant la zone climatique dont il se trouve est semi-aride mais enregistre également des quatités de pluies non négligeables dans l’année.Ainsi nous allons suivre sa superficie au long terme pour estimer l’importance de la variation de sa superficie.
Import des bandes pour le calcul du MNDWI
Etant donné que nous interessons aux surfaces de l’eau, nous avons choisis de travailler avec les images de Sentine2 (niveau 2). Ainsi nous nous allons nous interesser particulièrement aux bandes 11 (MIR) et 3 (Vert) permettant de calculer l’indice de l’eau.
# on calcul reechationne d'abord la bande vert pour qu'elle ait la meme resolution que la bande mir (20m) green <- terra::resample(green, mir)#Calculons maintenant le MNDWImndwi<-(green - mir) / (green + mir)terra::plot(mndwi)
A présent, on fait le seuillage pour récupérer les pixels eau seulement
Cette opération va nous mener à un raster binaire avec 1 pixel eau et O les pixels non eau
eau <- mndwi >0terra::plot(eau)
Calcul de superficie d’un pixel eau
Cette étape permet de régler la résolution spatiale et compter le nombre de pixel eau permettant de calculer la superficie de l’eau
# on récupère la résolution spatiale de ce raster binaire et on calcule la superficie d'un pixel res <- terra::res(eau) pix_sup <- res[1] * res[2] terra::plot(pix_sup)
Nombre de pixels
Il s’agit maintenant à compter le nombre de pixel pourpouvoir calculer la superficie de l’nsemble des pixels (surface eau)
freq_eau <- terra::freq(eau)
Superficiede l’eau
Pour calculer la superficie de l’eau nous allons multiplier la surface d’un pixel calculer précédemment à partir de la résolution spatiale par le nombre de pixel obtenu sur la partie précédente
library(dplyr)pix_eau <-filter(freq_eau, value ==1)$count sup_eau <- pix_eau * pix_supterra::plot(sup_eau)
Pour la date donnée la superficie en eau est de 7.6056km2
Résultats
Les résultats obtenus après calculdu MNDWI et découpage avec la zone d’étude nous mènent à un document CSV renferment les dates et superficies correspondantes durant cette échelle temporelle
# Chargement des bibliothèqueslibrary(ggplot2)library(gridExtra)# Définir le chemin relatif ou le nom du fichier CSVeau_csv <-"./Data/Tarbela_S2_water_chronics.csv"# Remplacez cela par le nom réel de votre fichier# Charger les données du fichier CSVdf_eau <-read.csv(eau_csv, sep =';')# Convertir la colonne de date en format Datedf_eau$date <-as.Date(df_eau$date)# Nuage de pointsscatter_plot <-ggplot(data = df_eau, aes(x = date, y = sup_eau_km2)) +geom_point() +labs(x ="Date", y ="Superficie", title ="Superficie de l'eau dans le temps")# Graphique en barresbar_plot <-ggplot(data = df_eau, aes(x = date, y = sup_eau_km2)) +geom_bar(stat ="identity", fill ="blue") +labs(x ="Date", y ="Superficie", title ="Superficie de l'eau en 2022")# Afficher les deux graphiques côte à côtegrid.arrange(scatter_plot, bar_plot, ncol =2)
Boxplot (ou boîte à moustache)
Les limites des données
Il faut noter que cette zone inter-tropicale dévoile une présence fréquente de nuages. Nous pouvons observer avec les deux graphiques, trois valeurs extrêmes de superficies du lac en décembre 2022. Ces superficies anormales par rapport à la superficie du lac sont certaines causées par l’aberration des données. Il y a,également les imprécisions liées à la qualité de l’indice à repérer les pixels eau. En effet, certains pixels eau peuvent être omis ou des noms non-eau peuvent aussi être parfois considérées comme eau.