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
| Source | Usage | Ré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 pluies | 3 dates : 22/08/2024, 27/09/2024, 29/08/2025 |
| Copernicus DEM GLO-30 | Altitude du sol et cuvettes | 30 m |
| CHIRPS v2.0 | Dater 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 :
- 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).
- Part de surface en cuvette : zones au moins 1 m plus basses que leur voisinage, dans un rayon d’environ 1 km.
- 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.
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 :
| Rang | Commune | Score | Altitude médiane | Surface en cuvette | Rang stable |
|---|---|---|---|---|---|
| 1 | Pikine Ouest | 100 | 2,3 m | 44 % | Oui |
| 2 | Malika | 95,1 | 5,3 m | 35 % | Oui |
| 3 | Bargny | 94,1 | 7,7 m | 33 % | Non |
| 4 | Tivaouane Peulh-Niaga | 91,1 | 5,9 m | 24 % | Oui |
| 5 | Médina Gounass | 86,6 | 6,8 m | 58 % | Non |
| … | |||||
| 14 | Keur Massar Nord | 63 | 5,7 m | 28 % | Oui |
| … | |||||
| 50 | Ouakam | 18,8 | 32,1 m | 34 % | Oui |
| … | |||||
| 52 | Mermoz-Sacré-Cœur | 13,1 | 29,5 m | 26 % | Oui |
| 53 | Sicap-Liberté | 0 | 32,8 m | 25 % | 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.
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.
- Notebooks 00 → 03Contours des communes, pluie, radar et altitude, score composite et contrôle de robustesse.
- Appli GradioCarte 3D / 2D, fiche commune, badge de confiance, comparaison, explication et chat par IA avec réponses de secours.
- 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
- Vers la vulnérabilitéAjouter drainage, imperméabilisation et population, et confronter le score à des inondations observées.
- Chantiers suivants de la Smart CityMobilité, qualité de l'air, énergie : voir la roadmap.