Plans d’eau
Produits utilisés : DE Africa Waterbodies
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 :
Obtenir une liste des polygones disponibles dans une zone donnée
Sélectionnez et tracez un seul polygone
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]:
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();

[6]:
# Explore the waterbody polygons located within the bounding box
polygons.explore()
[6]:
[7]:
# Color the waterbody polygons by their last valid observation attribute
plot_last_valid_obs(polygons)

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();

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)