CW-RIS: Child Wind Risk Intelligence System
CW-RIS: Child Wind Risk Intelligence System
CW-RIS is a child-centered wind risk analysis app that overlays real-time ECMWF ERA5 wind forecast data with child population exposure (e.g., from WorldPop), school density, and hospital accessibility to compute and visualize risk zones. This Streamlit app enables faster, data-driven decisions for humanitarian response and preparedness.
π What This App Does
- β Downloads live 10m wind forecast data (U & V components) from ECMWF ERA5 via CDS API
- β Computes wind speed magnitude from U and V components
- β Clips and reprojects child population raster to match wind data
- β Multiplies wind Γ population to produce a child wind risk raster
- β Aggregates exposure using zonal statistics (by admin boundaries)
- β Enhances risk by factoring in school density and hospital proximity
- β Displays an interactive map with high-risk areas highlighted
π οΈ Features
- π‘ Live ERA5 Wind Data via Copernicus CDS API
- π¨ Wind Magnitude Calculation:
sqrt(U^2 + V^2)
- πΆ Child Exposure Mapping using population rasters
- π« School Density Scoring using HDX education site data
- π₯ Hospital Accessibility Scoring using proximity buffers
- πΊοΈ Zonal Risk Statistics per admin region
- π±οΈ Interactive Map with hover tooltips (Leafmap/Folium)
- π Final Composite Risk Score for decision support
π Project Structure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
cw-ris/
βββ app.py # π΅ Main Streamlit entrypoint
βββ requirements.txt # π¦ Python dependencies
βββ README.md # π Project overview
βββ config/
β βββ settings.py # βοΈ File paths and constants
βββ data/
β βββ downloader.py # π ERA5 wind downloader via CDS API
β βββ validator.py # β
File presence & CDS API checks
βββ logic/
β βββ wind_handler.py # π¨ Wind speed calculation from U/V
β βββ exposure.py # πΆ Population Γ wind risk computation
β βββ school_density.py # π« Compute school site counts per region
β βββ hospital_access.py # π₯ Compute hospital proximity score
βββ ui/
β βββ map_display.py # πΊοΈ Map rendering with risk score
β βββ sidebar.py # π Sidebar with instructions
βββ utils/
β βββ cleanup.py # π§Ή Temp file cleanup utility
βββ assets/ # ποΈ Static geospatial inputs
β βββ aoi_bangladesh.geojson # π‘ AOI polygon
β βββ adm3.geojson # π’ Admin boundaries for stats
β βββ bgd_pop_2025_CN_100m.tif # πΆ Child population raster
β βββ schools_hdx.geojson # π« Education facilities (HDX)
β βββ hospitals_hdx.geojson # π₯ Health facility locations
π Data Sources
Dataset | Source URL |
---|---|
πΆ Child Population Raster | WorldPop 2025 |
π₯ Health Facilities | HDX - Bangladesh Healthsites |
π« Education Facilities | HDX - OSM Bangladesh Education |
π’ Admin Boundaries (ADM3) | Provided by hackathon organizers |
π‘ AOI for Bangladesh | Provided by hackathon organizers |
π¦ Requirements
Install dependencies:
1
pip install -r requirements.txt
π Setup: CDS API Key
- Register at https://cds.climate.copernicus.eu
- Go to your CDS API page
- Save your credentials in a
.cdsapirc
file in your home directory:
1
2
url: https://cds.climate.copernicus.eu/api
key: your_uid:your_api_key
βΆοΈ Run the App
1
streamlit run app.py
Open in your browser at: http://localhost:8501
π How It Works
- Fetch latest wind forecast (5-day lag)
- Compute wind speed using U and V components
- Reproject child population to match wind raster
- Compute wind Γ population exposure per pixel
- Aggregate by admin regions (zonal stats)
- Adjust risk by school density and hospital proximity
- Display interactive map with composite risk scores
π Example Outputs
- Table ranking admin regions by Final Risk Score
- Interactive map:
- Color-coded composite risk zones
- Highlighted highest-risk areas
- Hover to view region risk breakdown
Notes
- All spatial layers are assumed in
EPSG:4326
- Requires valid CDS API credentials and recent Python packages
- Raster alignment done using
rasterio.reproject()
Future Plans
- Add flood and landslide hazard overlays
- Connect to CCRI-DRM dashboards via GeoTIFF
- Enable time-based risk forecasting
- Extend for regional/global scalability
This post is licensed under CC BY 4.0 by the author.