rendu_bv

Author

GUENE_Abdou_Lahat

#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 Retba
lac_rose_coords <- c(14.8417281, -17.2381393)

# Chargement de la zone d'étude depuis le fichier GeoPackage
study_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 Rose
map <- addMarkers(map, lng = lac_rose_coords[2], lat = lac_rose_coords[1], popup = "Lac Rose")

# Afficher la carte
map

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.

green<-terra::rast('./Data/20220402_B08.tif')
mir<-terra::rast('./Data/20220402_B11.tif')
terra::plot(mir)

terra::plot(green)

découpage des bandes en fonctionde la zone d’étude

study_area <- './Data/lac_retba.gpkg'
green <- terra::crop(green, study_area)
mir <- terra::crop(mir, study_area)
terra::plot(mir)

terra::plot(green)

Calcul du MNDWI

# 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 MNDWI
mndwi<-(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 > 0
terra::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_sup
terra::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èques
library(ggplot2)
library(gridExtra)

# Définir le chemin relatif ou le nom du fichier CSV
eau_csv <- "./Data/Tarbela_S2_water_chronics.csv"  # Remplacez cela par le nom réel de votre fichier

# Charger les données du fichier CSV
df_eau <- read.csv(eau_csv, sep = ';')

# Convertir la colonne de date en format Date
df_eau$date <- as.Date(df_eau$date)

# Nuage de points
scatter_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 barres
bar_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ôte
grid.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.