← ProjectsEn coursChantier 1

Observatoire du risque d'inondation — Dakar

Un classement relatif des 53 communes d'arrondissement de la région de Dakar selon leur exposition physique aux inondations, construit à partir de données satellitaires et topographiques ouvertes. Une application web le rend lisible, avec une IA générative qui explique chaque résultat et ses limites.

Unité
53 communes d'arrondissement
Données
Sentinel-1 · Copernicus DEM · OSM · CHIRPS
Application
React · deck.gl · Groq · Vercel
Niveau
II · Deep AI
Programme
Smart City Intelligence Platform
Domaines

GeospatialEarth ObservationData ScienceLLMWeb

Figure 1

Score relatif d'exposition, par commune

Les communes claires sont les plus exposées : Pikine Ouest, Malika, Bargny, Tivaouane Peulh-Niaga. Le classement complet est sous la carte.

Très élevéÉlevéMoyenFaibleTrès faible
Score relatif d'exposition aux inondations des 53 communes de la région de Dakar Sicap-Liberté · rang 53/53 · score 0Mermoz-Sacré-Cœur · rang 52/53 · score 13Biscuiterie · rang 51/53 · score 18Ouakam · rang 50/53 · score 19Dieuppeul-Derklé · rang 49/53 · score 21Sangalkam · rang 48/53 · score 22Keur Massar Sud · rang 47/53 · score 23Thiaroye-sur-Mer · rang 46/53 · score 23Gorée · rang 45/53 · score 24Parcelles Assainies · rang 44/53 · score 24Rufisque Est · rang 43/53 · score 27HLM · rang 42/53 · score 28Jaxaay - Parcelles · rang 41/53 · score 28Dakar-Plateau · rang 40/53 · score 29Sébikhotane · rang 39/53 · score 29Rufisque Nord · rang 38/53 · score 32Diamniadio · rang 37/53 · score 35Gueule Tapée-Fass-Colobane · rang 36/53 · score 37Guinaw Rail Nord · rang 35/53 · score 37Yoff · rang 34/53 · score 39Yeumbeul Sud · rang 33/53 · score 39Pikine Nord · rang 32/53 · score 41Médina · rang 31/53 · score 42Pikine Est · rang 30/53 · score 42Dalifort · rang 29/53 · score 46Sam Notaire · rang 28/53 · score 47Ngor · rang 27/53 · score 48Diamaguène-Sicap Mbao · rang 26/53 · score 49Grand Yoff · rang 25/53 · score 49Guinaw Rail Sud · rang 24/53 · score 50Rufisque Ouest · rang 23/53 · score 50Mbao · rang 22/53 · score 51Golf Sud · rang 21/53 · score 51Fann-Point E-Amitié · rang 20/53 · score 52Djidah Thiaroye Kaw · rang 19/53 · score 53Bambylor · rang 18/53 · score 53Hann Bel-Air · rang 17/53 · score 57Tivaouane Diacksao · rang 16/53 · score 60Thiaroye-Gare · rang 15/53 · score 61Keur Massar Nord · rang 14/53 · score 63Grand-Dakar · rang 13/53 · score 64Patte d'Oie · rang 12/53 · score 67Sendou · rang 11/53 · score 69Yenne · rang 10/53 · score 72Yeumbeul Nord · rang 9/53 · score 73Cambérène · rang 8/53 · score 74Ndiarème Limamoulaye · rang 7/53 · score 79Wakhinane Nimzatt · rang 6/53 · score 84Medina Gounass · rang 5/53 · score 87Tivaouane Peulh-Niaga · rang 4/53 · score 91Bargny · rang 3/53 · score 94Malika · rang 2/53 · score 95Pikine Ouest · rang 1/53 · score 100
Classement des 53 communes
RangCommuneDépartementScoreClasseRang stableEau (radar)
1Pikine OuestPikine100Très élevéOuiOui
2MalikaKeur Massar95,1Très élevéOuiOui
3BargnyRufisque94,1Très élevéNonOui
4Tivaouane Peulh-NiagaRufisque91,1Très élevéOuiOui
5Medina GounassGuédiawaye86,6Très élevéNonAucune (alerte)
6Wakhinane NimzattGuédiawaye84,1Très élevéNonOui
7Ndiarème LimamoulayeGuédiawaye79,1Très élevéNonOui
8CambérèneDakar74,2Très élevéNonOui
9Yeumbeul NordKeur Massar73,2Très élevéNonOui
10YenneRufisque72Très élevéNonOui
11SendouRufisque68,9Très élevéNonOui
12Patte d'OieDakar66,7ÉlevéNonOui
13Grand-DakarDakar63,5ÉlevéNonAucune (alerte)
14Keur Massar NordKeur Massar63ÉlevéOuiOui
15Thiaroye-GarePikine61,1ÉlevéNonOui
16Tivaouane DiacksaoPikine60,5ÉlevéNonOui
17Hann Bel-AirDakar56,8ÉlevéNonOui
18BambylorRufisque53,3ÉlevéNonOui
19Djidah Thiaroye KawPikine53,2ÉlevéNonAucune (alerte)
20Fann-Point E-AmitiéDakar51,7ÉlevéNonOui
21Golf SudGuédiawaye51,4ÉlevéNonOui
22MbaoPikine51,1MoyenNonOui
23Rufisque OuestRufisque50,1MoyenNonOui
24Guinaw Rail SudPikine49,5MoyenNonAucune (alerte)
25Grand YoffDakar49,4MoyenNonOui
26Diamaguène-Sicap MbaoPikine49,3MoyenNonOui
27NgorDakar48,2MoyenNonOui
28Sam NotaireGuédiawaye46,7MoyenNonOui
29DalifortPikine46,1MoyenNonOui
30Pikine EstPikine42,5MoyenNonAucune (alerte)
31MédinaDakar41,6MoyenNonAucune (alerte)
32Pikine NordPikine40,8MoyenNonAucune (alerte)
33Yeumbeul SudKeur Massar39FaibleNonAucune (alerte)
34YoffDakar38,7FaibleNonOui
35Guinaw Rail NordPikine37,3FaibleNonAucune (alerte)
36Gueule Tapée-Fass-ColobaneDakar36,8FaibleNonAucune (alerte)
37DiamniadioRufisque34,8FaibleNonOui
38Rufisque NordRufisque32,1FaibleNonAucune (alerte)
39SébikhotaneRufisque29FaibleNonAucune (alerte)
40Dakar-PlateauDakar28,8FaibleOuiAucune (alerte)
41Jaxaay - ParcellesKeur Massar28,3FaibleNonOui
42HLMDakar28,2FaibleOuiAucune (alerte)
43Rufisque EstRufisque26,9Très faibleOuiAucune (alerte)
44Parcelles AssainiesDakar24,5Très faibleOuiOui
45GoréeDakar23,6Très faibleNonAucune (alerte)
46Thiaroye-sur-MerPikine23,4Très faibleNonAucune (alerte)
47Keur Massar SudKeur Massar23,1Très faibleNonAucune (alerte)
48SangalkamRufisque22,5Très faibleOuiOui
49Dieuppeul-DerkléDakar21,3Très faibleOuiAucune (alerte)
50OuakamDakar18,8Très faibleOuiOui
51BiscuiterieDakar18Très faibleNonAucune (alerte)
52Mermoz-Sacré-CœurDakar13,1Très faibleOuiOui
53Sicap-LibertéDakar0Très faibleOuiAucune (alerte)

Score relatif de 0 à 100, pas une probabilité. « Rang stable » : écart d'au plus 10 rangs entre les trois variantes du score. « Aucune (alerte) » : le radar ne détecte pas d'eau, ce qui peut venir du bâti dense. Source : score_risque_communes.csv — dépôt cdjarabe07/dakar-risque-inondation (data/processed).

Sommaire
  1. Question de départ
  2. Contexte
  3. Données et sources
  4. Méthodologie
  5. Architecture et pipeline
  6. Expérimentations
  7. Résultats
  8. Limites
  9. Ce qui n’a pas fonctionné
  10. Interprétation
  11. État actuel
  12. Prochaines pistes
  13. Code, dashboard et ressources
  14. Notes associées
Techniques

Sentinel-1 SAR · Copernicus DEM · Z-scores · Test de robustesse · Gradio · React · deck.gl · Groq

Question de départ

Quelles communes de la région de Dakar sont physiquement les plus exposées aux inondations, et sur quelles données peut-on l’affirmer ? Le projet construit un indicateur comparable entre les 53 communes, et le rend consultable par des non-spécialistes, sans cacher ce que l’indicateur ne mesure pas.

Contexte

Chaque saison des pluies, une partie de l’agglomération dakaroise est inondée. Les informations existent (images satellites, modèles d’altitude, cartes collaboratives), mais elles sont brutes, techniques et dispersées.

Zones prioritaires de l’étude : Pikine, Guédiawaye, Médina, Yeumbeul et Grand Yoff. Ce projet est le premier chantier du programme Smart City Intelligence Platform (voir la roadmap).

Données et sources

SourceUsageRésolution · période
OpenStreetMap (Overpass)Contours des 53 communes, découpés sur le trait de côte—
Copernicus Sentinel-1 (radar)Eau stagnante après fortes pluies3 dates : 22/08/2024, 27/09/2024, 29/08/2025
Copernicus DEM GLO-30Altitude du sol et cuvettes30 m
CHIRPS v2.0Dater les épisodes de fortes pluies≈ 5,5 km · 2023–2026

Environ 200 Mo d’images et de données brutes sont retéléchargés par les notebooks ; seuls les résultats sont versionnés dans le dépôt. Sources : OpenStreetMap (ODbL), Copernicus (ESA / Union européenne), CHIRPS (Climate Hazards Center, UC Santa Barbara).

Méthodologie

Trois indicateurs sont calculés pour chaque commune :

  1. Altitude médiane du sol, à partir du modèle d’altitude dont les bâtiments sont retirés par un filtre morphologique (ouverture de 150 m).
  2. Part de surface en cuvette : zones au moins 1 m plus basses que leur voisinage, dans un rayon d’environ 1 km.
  3. Part de surface en eau stagnante détectée par le radar juste après de fortes pluies, comparée à une référence de saison sèche (mai). Les plans d’eau permanents sont exclus.

Le score est la moyenne, à poids égaux, des z-scores des trois indicateurs, ramenée sur une échelle de 0 à 100, puis découpée en 5 classes de taille égale.

Trois panneaux : image radar de référence en saison sèche, image radar après la pluie du 27 septembre 2024, et carte de l'eau détectée (rouge : eau stagnante, bleu : eau permanente).
Figure 2 · Vérification de la détection radar : référence sèche (mai), image après la pluie du 27/09/2024, et eau détectée (rouge : stagnante, bleu : permanente).

Architecture et pipeline

  • Analyse : Python, 4 notebooks Jupyter (00 collecte des contours, 01 pluie, 02 satellite et topographie, 03 calcul du score et robustesse), Copernicus Data Space (client sentinelhub). Les résultats (score_risque_communes.geojson / .csv) sont lus par l’application.
  • Première appli : Gradio, cartes pydeck (3D) et Plotly (2D).
  • Version web : React, TypeScript, Vite, deck.gl sur fond MapLibre, deux fonctions serveur Vercel pour l’IA.

L’IA dans l’appli

Le principe affiché par l’appli : l’IA explique le risque, elle ne le décide pas. Un bouton « Expliquer ce risque » et un chat, servis par un modèle de langage via Groq (openai/gpt-oss-120b), ne reçoivent que les données de l’observatoire. Chaque appel est coupé au bout de 5 secondes ; en cas d’échec, une réponse pré-rédigée prend le relais. Le détail des garde-fous est dans la note Une IA qui explique, mais ne décide pas.

Expérimentations

Robustesse du classement

Le rang de chaque commune est recalculé de deux autres façons : sans les données radar, puis avec l’altitude seule. Un classement est jugé stable si l’écart ne dépasse pas 10 rangs.

Seules 13 communes sur 53 gardent un rang stable.

Tests de l’application

18 scénarios sont testés sans clé d’API (délai dépassé, erreurs, carte, comparaison, niveaux de confiance), plus des appels réels avec clé (refus du hors-sujet, résistance aux tentatives de détournement, lecture correcte des rangs). Des tests de parité vérifient que la version web reproduit les calculs et les textes de l’appli Python.

Résultats

Les communes en tête et en queue du classement :

RangCommuneScoreAltitude médianeSurface en cuvetteRang stable
1Pikine Ouest1002,3 m44 %Oui
2Malika95,15,3 m35 %Oui
3Bargny94,17,7 m33 %Non
4Tivaouane Peulh-Niaga91,15,9 m24 %Oui
5Médina Gounass86,66,8 m58 %Non
…
14Keur Massar Nord635,7 m28 %Oui
…
50Ouakam18,832,1 m34 %Oui
…
52Mermoz-Sacré-Cœur13,129,5 m26 %Oui
53Sicap-Liberté032,8 m25 %Oui

Le haut du classement (Pikine Ouest, Malika, Keur Massar Nord) et le bas (Sicap, Mermoz, Ouakam) restent stables quelle que soit la combinaison d’indicateurs. Le milieu du classement dépend des choix de méthode. Dans l’appli, chaque commune porte un badge de confiance (haute, moyenne ou faible) qui reflète cette stabilité et la capacité du radar à y voir l’eau.

Application web : carte des communes à gauche, fiche de Pikine Ouest à droite avec son score de 100 sur 100, son badge de confiance haute et ses indicateurs.
Figure 3 · L'application web : carte, fiche commune avec badge de confiance, bouton « Expliquer ce risque » et chat.

Limites

  • Un classement, pas une probabilité. Le score compare les communes entre elles et n’a pas été validé sur des inondations observées.
  • L’aléa, pas la vulnérabilité. Il manque des facteurs majeurs : drainage, nappe phréatique affleurante, imperméabilisation des sols, population.
  • Peu de dates radar. Trois images, un passage tous les 12 jours : on voit l’eau qui persiste 1 à 5 jours après la pluie, pas le pic.
  • Altitude imprécise. Précision verticale d’environ 2 m : des écarts de 1 à 2 m entre communes ne sont pas significatifs.
  • Échelle de la commune. Les communes vont de 0,2 à 70 km² ; un résultat ne dit rien des différences entre quartiers. Les contours OSM ne sont pas officiels.

Ce qui n’a pas fonctionné

  • Le radar en bâti dense. L’effet de double rebond entre l’eau et les façades empêche l’eau de ressortir : Pikine, Thiaroye, Guinaw Rail et Médina ressortent à 0 %. 21 communes portent une alerte « aucune eau détectée », qui peut venir du bâti plutôt que d’une absence d’inondation.
  • La pluie par commune. CHIRPS n’a aucun pixel valide pour 13 communes sur 53, dont 11 prioritaires : la pluie sert seulement à dater les épisodes, et elle est exclue du score.
  • La pente. En zone dense, elle reflète surtout les bords des toits : elle est exclue du score.

Interprétation

Le score mesure l’aléa physique, pas la vulnérabilité des habitants. L’information fiable se trouve surtout aux extrêmes : quelles communes sont nettement plus, ou nettement moins, exposées. Pour le milieu du classement, le rang dépend des choix de méthode et doit être lu avec son badge de confiance.

État actuel

La version web est en ligne ; l’appli Gradio reste disponible pour un usage local.

  1. Analyse
    Notebooks 00 → 03Contours des communes, pluie, radar et altitude, score composite et contrôle de robustesse.
  2. Appli
    Appli GradioCarte 3D / 2D, fiche commune, badge de confiance, comparaison, explication et chat par IA avec réponses de secours.
  3. En ligne
    Version webRéécriture en React et deck.gl, mêmes données et mêmes calculs, vérifiés par des tests de parité. Carte cliquable, recherche de commune, déploiement sur Vercel.

Prochaines pistes

  1. Piste
    Vers la vulnérabilitéAjouter drainage, imperméabilisation et population, et confronter le score à des inondations observées.
  2. Piste
    Chantiers suivants de la Smart CityMobilité, qualité de l'air, énergie : voir la roadmap.

Code, dashboard et ressources

4

Notes associées

Toutes les notes [ -> ]