UCIP tells a city planner which Mumbai wards to cool first, why, and what intervention to use there, grounded in published climate and ecology literature, not arbitrary weights.
Status: prototype live. The full data pipeline, HVI computation, NBS engine, and a working Leaflet frontend (choropleth, plantability layer, green-cover-change layer, ward cards, methodology page) are built and running end-to-end on real Mumbai data.
- Heat Vulnerability Index (HVI) - grid-level (1 km) choropleth over Mumbai, rolled up to the 24 BMC wards. Weights are literature-derived (PCA per Reid et al. 2009), never arbitrary.
- Explainability - a factor-contribution breakdown of a transparent linear index per ward. No SHAP, by design (nothing black-box to explain).
- Nature-Based Solutions engine - rule-based recommendations (native trees, cool roofs, pocket parks, cooling centres, rain gardens) with an ecological plantability filter: trees only where restoration literature supports them (Bastin 2019), non-tree cooling elsewhere (Veldman 2019, Friedlingstein 2019).
- Green-cover change - per-cell NDVI delta classified gained/stable/lost across two dry-season composites.
- Methodology page - every variable, weight, dataset, assumption, and limitation, with citations, computed live from the pipeline's own output.
Demonstrated on Mumbai; the architecture is city-agnostic.
git clone https://github.com/AnayDhawan/ucip.git
cd ucip/frontend
npm install
npm run devOpens at localhost:3000. The dashboard runs entirely off the committed GeoJSON snapshots
in data/, so no Supabase or Google Earth Engine credentials are needed to browse it. See
CONTRIBUTING.md for the full pipeline setup (only needed if you're
touching the data layer).
frontend/ Next.js 16 + TypeScript + Tailwind + Leaflet (map, ward cards, methodology page)
pipeline/ Python 3 + Google Earth Engine (grid, HVI, NBS rules, sensitivity check)
supabase/ Postgres + PostGIS schema and migrations
data/ Ward boundaries + committed GeoJSON snapshots (demo-safe fallback)
docs/ Methodology, citations, screenshots
A read-only public API serves the same data, with no key and open CORS:
curl 'https://uciplatform.vercel.app/api/v1/lookup?lat=19.076&lon=72.877'Endpoints for wards, grid cells, recommendations, and a coordinate lookup that
answers "which ward am I in and what should be built here". Full reference:
docs/api.md. Spec: /api/v1/openapi.json.
- docs/methodology.md - the HVI indicators, weights, NBS rules, and
plantability filter, mirroring the in-app
/methodologypage. - docs/references.md - the citation table backing every variable and weight, with DOIs.
- docs/HVI-methodology-report.md - a standalone technical report expanding the methodology and references above into a full writeup with real pipeline output (PCA weights, sensitivity analysis results, plantability-filter numbers).
- docs/DATA-DICTIONARY.md - what every dataset column and published file means: unit, range, source, derivation, and limitations.
- pipeline/README.md - running the pipeline as one orchestrated refresh, the refresh cadence split, and the post-refresh change-diff tool.
See CONTRIBUTING.md. Please read the Code of Conduct first.
Bugs, data questions, or a ward that wants this used for real, open an issue.
Apache 2.0, see LICENSE.
