Plans d’eau

Mots-clés : données utilisées ; plans d’eau

Aperçu

Le service de surveillance des plans d’eau continentaux de Digital Earth Africa identifie plus de 700 000 plans d’eau à partir de plus de trois décennies d’observations par satellite. Ce service cartographie les plans d’eau persistants et saisonniers et l’évolution de leur surface d’eau au fil du temps. Les plans d’eau cartographiés peuvent inclure, sans s’y limiter, des lacs, des étangs, des réservoirs artificiels, des zones humides et des segments de certains systèmes fluviaux.

À l’échelle locale, régionale et continentale, ce service contribue à améliorer notre compréhension de la dynamique des eaux de surface et de la disponibilité de l’eau et peut être utilisé pour surveiller les plans d’eau tels que les zones humides, les lacs et les barrages dans des endroits éloignés et/ou inaccessibles.

Le service propose deux produits :

  • Étendue historique des plans d’eau de l’Afrique de l’Est

  • Évolution de la surface des plans d’eau en Afrique de l’Est

Le produit DE Africa Waterbodies Historical Extent est une vue statique basée sur des polygones du produit DE Africa Water Observations from Space All-Time Summary. L’étendue historique représente les endroits où l’eau est apparue dans au moins 5 % des observations claires depuis 1984. Il ne s’agit pas d’une capture de l’étendue réelle d’une masse d’eau au cours d’une année donnée, mais d’un enregistrement des endroits où l’eau est apparue depuis 1984. Pour être capturés dans l’ensemble de données, les polygones doivent avoir une superficie d’au moins 4 500 mètres carrés (5 pixels Landsat). Les polygones d’étendue historique ont été dérivés du produit Observations de l’eau en Afrique depuis l’espace Résumé de tous les temps <https://docs.digitalearthafrica.org/en/latest/data_specs/Landsat_WOfS_specs.html#WOfS-All-Time-Summary>`__, qui fournit des observations historiques des eaux de surface sur l’ensemble du continent africain.

Pour chaque plan d’eau, le produit de changement de surface fournit le pourcentage de l’étendue historique qui a été classée comme humide, sèche ou non valide, pour chaque scène DE Africa Water Observation from Space Feature Layer qui a capturé le plan d’eau. Cela peut être utilisé pour identifier quand les plans d’eau augmentent ou diminuent en surface humide.

Avertissement : DE Africa Waterbodies Surface Area Change mesure la surface humide des plans d’eau telle qu’estimée à partir des satellites. Ce produit ne mesure pas la profondeur, le volume, la fonction du plan d’eau, ni la source de l’eau.

Applications

  • Identifier et analyser les masses d’eau persistantes et saisonnières

  • Gestion des ressources en eau

  • Obtenez des informations sur la gravité et la répartition spatiale de la sécheresse

Description

Ce bloc-notes montrera comment charger des étendues historiques et des séries chronologiques de surfaces humides à partir du service « DE Africa Waterbodies » <https://docs.digitalearthafrica.org/en/latest/data_specs/Waterbodies_specs.html>.

Les sujets abordés comprennent :

  1. Obtenir une liste des polygones disponibles dans une zone donnée

  2. Sélectionnez et tracez un seul polygone

  3. Tracé de la surface du polygone au fil du temps


Commencer

Pour exécuter cette analyse, exécutez toutes les cellules du bloc-notes, en commençant par la cellule « Charger les packages ».

Charger des paquets

Importez les packages Python utilisés pour l’analyse.

[1]:
import matplotlib.pyplot as plt

from deafrica_tools.plotting import display_map
from deafrica_tools.waterbodies import (
    get_geohashes,
    get_waterbodies,
    get_waterbody,
    get_time_series,
    display_time_series,
    plot_last_valid_obs
)

Paramètres d’analyse

Cette section définit les paramètres d’analyse, notamment :

  • lat, lon, buffer : latitude/longitude centrales et taille de la fenêtre d’analyse pour la zone d’intérêt (en degrés)

La zone par défaut est un plan d’eau en Mauritanie.

[2]:
# Set the central latitude and longitude
lat = 16.158
lon = -12.57

# Set the buffer to load around the central coordinates
buffer = 0.15

# Compute the bounding box coordinates
xlim = (lon-buffer, lon+buffer)
ylim =  (lat+buffer, lat-buffer)

# Preview area on a map
display_map(xlim, ylim)
[2]:
Make this Notebook Trusted to load map: File -> Trust Notebook

Obtenir des données

Le module « deafrica_waterbodies » vous permet d’interroger les plans d’eau par localisation ou géohash.

Répertorier les polygones de plans d’eau dans une zone

Nous pouvons obtenir une liste de polygones de plans d’eau à l’intérieur d’une boîte englobante de coordonnées en utilisant « get_waterbodies ».

[3]:
# Create a bounding box from study area coordinates
bbox = (xlim[0], ylim[1], xlim[1], ylim[0])

# Select all water bodies located within the bounding box
polygons = get_waterbodies(bbox, crs="EPSG:4326")
[4]:
# Return GeoDataFrame with selected water bodies
polygons.head()
[4]:
id wb_id area_m2 length_m uid perim_m last_obs_date last_valid_obs_date last_valid_obs last_attrs_update_date geometry
0 DEAfrica_Waterbodies.edz5cm96jh 54637 1.865133e+08 28031.685226 edz5cm96jh 252960.0 2024-10-25 2024-09-23 92.453085 2024-10-30 POLYGON ((-12.62570 16.25460, -12.62540 16.254...
1 DEAfrica_Waterbodies.edzhjk71kk 54753 1.170000e+04 250.688707 edzhjk71kk 780.0 2024-10-25 2024-10-10 0.000000 2024-10-30 POLYGON ((-12.42240 16.19610, -12.42240 16.195...
2 DEAfrica_Waterbodies.edzhmj7e48 54756 7.020000e+04 763.987160 edzhmj7e48 2160.0 2024-10-25 2024-10-09 41.025641 2024-10-30 POLYGON ((-12.43200 16.24800, -12.43140 16.248...
3 DEAfrica_Waterbodies.edz51hfxcu 54632 9.900000e+03 251.530511 edz51hfxcu 660.0 2024-10-25 2024-10-09 100.000000 2024-10-30 POLYGON ((-12.60930 16.02440, -12.60930 16.023...
4 DEAfrica_Waterbodies.edz51ng7q1 54633 2.160000e+04 405.960400 edz51ng7q1 1200.0 2024-10-25 2024-10-09 54.166667 2024-10-30 POLYGON ((-12.60800 16.03520, -12.60740 16.035...

Le geodataframe renvoyé inclut tous les plans d’eau qui se trouvent dans la zone de délimitation. Ce jeu de données contient des métadonnées pour chaque plan d’eau du jeu de données, y compris l’identifiant unique/geohash (uid), wb_id, la surface (area_m2), le périmètre (perim_m), la longueur du côté le plus long (length_m), la dernière observation valide (last_valid_obs), la date de la dernière observation valide (last_valid_obs_date), la date de la dernière observation (last_obs) et la date de mise à jour de la dernière observation valide (last_attrs_update_date). Consultez la documentation sur l’étendue historique des plans d’eau <https://docs.digitalearthafrica.org/en/latest/data_specs/Waterbodies_specs.html#Waterbodies-Historical-Extent>`__ pour obtenir une description de chaque attribut.

Affichage des polygones

Une fois les polygones du plan d’eau en mémoire, vous pouvez les tracer directement ou les explorer dans une fenêtre interactive.

[5]:
# Plot the waterbody polygons located within the bounding box
polygons.plot();
../../../_images/sandbox_notebooks_Datasets_Waterbodies_14_0.png
[6]:
# Explore the waterbody polygons located within the bounding box
polygons.explore()
[6]:
Make this Notebook Trusted to load map: File -> Trust Notebook
[7]:
# Color the waterbody polygons by their last valid observation attribute
plot_last_valid_obs(polygons)
../../../_images/sandbox_notebooks_Datasets_Waterbodies_16_0.png

Géohachages

Chaque plan d’eau dans DE Africa Water Bodies possède un identifiant unique (UID) appelé geohash. Le geohash d’un plan d’eau est dérivé de sa position, et ce processus peut être inversé pour obtenir l’emplacement à partir du geohash. Le geohash d’un plan d’eau est contenu sous l’attribut UID et peut être obtenu via DE Africa Maps en cliquant sur un plan d’eau.

Remarque : Vous remarquerez peut-être que ces polygones ont une plage de préfixes de géohachage similaires (« edyg » ou « edz »). Si deux géohachages ont un préfixe similaire, cela signifie qu’ils sont proches l’un de l’autre.

Obtenir des données pour un plan d’eau spécifique

Nous pouvons utiliser la fonction « .explore() » ci-dessus pour explorer de manière interactive le sous-ensemble de plans d’eau situés dans la zone de délimitation. Le survol d’un plan d’eau affichera ses attributs, y compris le géohash du plan d’eau (UID). Après avoir noté le géohash de la fonction « .explore() », nous pouvons l’utiliser pour extraire uniquement ce plan d’eau via la fonction « get_waterbody() ».

Par défaut, essayez le geohash « edz5cm96jh ».

[8]:
selected_waterbody_geohash = "edz5cm96jh"

selected_waterbody = get_waterbody(selected_waterbody_geohash)
selected_waterbody
[8]:
id wb_id area_m2 length_m uid perim_m last_obs_date last_valid_obs_date last_valid_obs last_attrs_update_date geometry
0 DEAfrica_Waterbodies.edz5cm96jh 54637 1.865133e+08 28031.685226 edz5cm96jh 252960 2024-10-25 2024-09-23 92.453085 2024-10-30 POLYGON ((-12.62570 16.25460, -12.62540 16.254...

Tracer le plan d’eau sélectionné

[9]:
selected_waterbody.plot();
../../../_images/sandbox_notebooks_Datasets_Waterbodies_22_0.png

Obtenir la série chronologique de la surface mouillée pour le plan d’eau sélectionné

Pour tout géohachage ou polygone donné, nous pouvons également utiliser la fonction get_time_series() pour obtenir diverses mesures de la surface de la masse d’eau au fil du temps. Consultez la documentation Waterbodies Historical Extent pour obtenir une description des différentes mesures de surface.

La fonction calcule également une médiane mobile du pourcentage de surface mouillée de la masse d’eau. Elle permet de visualiser la tendance générale du pourcentage de surface mouillée. La médiane mobile utilise les trois dernières observations pour déterminer la médiane à une date donnée.

[10]:
# Get time series for the selected water body
selected_waterbody_timeseries = get_time_series(waterbody=selected_waterbody)

selected_waterbody_timeseries.head()
[10]:
area_wet_m2 percent_wet area_dry_m2 percent_dry area_invalid_m2 percent_invalid area_observed_m2 percent_observed percent_wet_rolling_median
date
1984-05-28 39674700.0 21.27 146836800.0 78.73 1800.0 0.00 186513300.0 100.0 NaN
1984-07-15 99504900.0 53.35 87005700.0 46.65 2700.0 0.00 186513300.0 100.0 NaN
1984-08-25 115645500.0 62.00 70864200.0 37.99 3600.0 0.00 186513300.0 100.0 53.35
1984-09-17 123178500.0 66.04 62281800.0 33.39 1053000.0 0.56 186513300.0 100.0 62.00
1984-10-19 132593400.0 71.09 53912700.0 28.91 7200.0 0.00 186513300.0 100.0 66.04

Afficher la série chronologique de la surface mouillée pour le plan d’eau sélectionné

Après avoir chargé la série chronologique du plan d’eau, nous pouvons utiliser la fonction « display_time_series() » pour créer une visualisation interactive de la série chronologique.

La visualisation montre le pourcentage invalide et le pourcentage humide. Le pourcentage invalide indique la proportion de la masse d’eau qui n’a pas pu être clairement observée. Pour fournir les mesures les plus représentatives de la surface de la masse d’eau, la série chronologique ne contient que des valeurs où le pourcentage invalide est inférieur à 10 %.

Il y a quelques mises en garde à prendre en compte :

  • Pour apparaître dans la série chronologique, une observation doit enregistrer des observations claires d’au moins 90 % de la surface de la masse d’eau. Si 10 % ou plus de la surface est recouverte par des nuages ou une ombre de nuage, l’observation sera exclue. Cela peut entraîner de grandes lacunes dans la série chronologique.

  • Si le pourcentage invalide est élevé, il est probable que le pourcentage humide soit une sous-estimation de la véritable surface humide.

  • Les tendances annuelles et saisonnières ne doivent être déduites que pendant les périodes où les observations sont suffisantes. Il convient de faire preuve de prudence lors de l’inférence de l’évolution des eaux de surface au fil du temps lorsque les observations sont peu nombreuses.

  • La série chronologique est basée sur le produit Water Observations from Space, qui présente des limites connues. Pour plus d’informations, consultez la documentation du service DE Africa Waterbodies <https://docs.digitalearthafrica.org/en/latest/data_specs/Waterbodies_specs.html>.

[11]:
display_time_series(selected_waterbody_timeseries)