Monthly flood extent mapping for North Kivu, South Kivu, and Ituri provinces. March 2025 – February 2026 · 100 m resolution · Calibrated σ₀ change detection.
One row per territory per month (World Bank geoBoundaries). Includes centroid lat/lon. Best for statistical models.
Download CSVOne row per territory, flood-area columns for each month. Easy to join survey data in Excel / Stata / R.
Download CSVOne row per secteur/chefferie per month (OCHA HDX COD-AB). Finer grain for phone-survey sampling.
Download CSVOne row per secteur/chefferie, flood-area columns per month. OCHA HDX source.
Download CSV31,441 hexagons × 14 months. Join on h3_index using the h3 Python library.
One row per flood polygon per month. Centroid lat/lon + area. Minimal file for quick mapping.
Download CSVTerritory boundaries + flood data with geometry (World Bank geoBoundaries). For Python/geopandas users.
Download ParquetSecteur/chefferie boundaries + flood data with geometry (OCHA HDX). For Python/geopandas users.
Download ParquetHexagon polygons + flood data with geometry. Full spatial sampling frame.
Download Parquet# Check if a territory (admin-2) was flooded in a given month
import pandas as pd
df = pd.read_csv("admin2_flood.csv")
mask = (df["shapeName"] == "Rutshuru") & (df["month"] == "2025-09")
print(df[mask][["shapeName", "month", "flood_area_km2", "quality"]])
# Check flood at secteur level (admin-3)
df3 = pd.read_csv("admin3_flood.csv")
peak = df3.groupby("admin3Name")["flood_area_km2"].max().sort_values(ascending=False).head(10)
print(peak)
# Load the spatial sampling frame and check a GPS point
import geopandas as gpd
from shapely.geometry import Point
admin2 = gpd.read_parquet("admin2.parquet") # territory level
admin3 = gpd.read_parquet("admin3.parquet") # secteur level
pt = Point(29.23, -1.68) # lon, lat
print(admin2[admin2.geometry.contains(pt)][["shapeName", "month", "flood_area_km2"]])
print(admin3[admin3.geometry.contains(pt)][["admin3Name", "month", "flood_area_km2"]])
# Join admin-2 flood data to a phone survey dataset
survey = pd.read_csv("my_survey.csv") # must have 'territory' column
wide = pd.read_csv("admin2_flood_wide.csv") # one row per territory
merged = survey.merge(wide, left_on="territory", right_on="shapeName", how="left")
Add this URL to Claude.ai → Settings → Integrations → Add MCP server. No API key required — the server is public read-only.
REST API docs: api-flood.trevormonroe.com/docs
| Month | Status | Flood area (km²) | Notes |
|---|---|---|---|
| 2025-01 | excluded | — | Uncalibrated amplitude data |
| 2025-02 | excluded | — | Uncalibrated amplitude data |
| 2025-03 | valid | — | Calibrated σ₀ dB |
| 2025-04 – 2025-08 | valid | — | Calibrated σ₀ dB |
| 2025-09 | valid | 3,428 | Peak flood — short rains season South Kivu |
| 2025-10 – 2026-02 | valid | — | Calibrated σ₀ dB |
| 2026-03 | gap | — | Insufficient S1 coverage (<5 MB source) |
| 2026-04 | gap | — | Insufficient S1 coverage (<5 MB source) |
Flood extents are derived from Sentinel-1 SAR (C-band, 100 m resolution) using a −3 dB backscatter change detection threshold relative to a dry-season baseline. Quality masks are applied to exclude areas of known geometric distortion (layover, shadow). Administrative boundaries are sourced from the World Bank geoBoundaries project (ADM2 · COD). Hexagonal grid uses Uber H3 resolution 7 (~5 km²/cell). Source code and notebooks: github.com/trevmon28/Floodmaps.