Open-source urban heat island intelligence for climate adaptation Map heat risk, vulnerable communities, and cooling potential using satellite data
MIT License · Python 3.10+ · NASA Earth data
Cities are getting hotter. Urban Heat Islands raise temperatures by 2–10°C, increasing mortality and inequality.
Most cities still lack:
- High-resolution heat maps
- Neighborhood-level vulnerability data
- Tools to evaluate cooling interventions
HeatWatch makes this accessible using open satellite + census data.
- Generates Land Surface Temperature (LST) heat maps from Landsat data
- Computes vegetation cover (NDVI) to estimate cooling capacity
- Scores neighborhood-level heat vulnerability
- Tracks heat change over time
- Exports GIS-ready outputs (GeoJSON, CSV, PNG)
git clone https://github.com/your-org/heatwatch.git
cd heatwatch
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e ".[dev]"
heatwatch analyze --sample-city detroitHottest: West Pullman (42.1°C)
Coolest: Lincoln Park (31.8°C)
Risk: Englewood (high heat + low tree cover)
Saved → ./results/detroit/
- Satellite-based heat mapping (Landsat)
- Vulnerability scoring (population + heat exposure)
- Vegetation analysis (NDVI)
- Multi-year comparisons
- GIS-ready exports
- Python 3.10+
- rasterio, geopandas
- NASA Earthdata / USGS APIs
- FastAPI
- folium
- pytest
heatwatch/
├── src/
├── data/
├── tests/
├── docs/
└── ROADMAP.md
Run the entire project without installing Python or dependencies:
docker build -t heatwatch .
docker run --rm -it heatwatch heatwatch analyze --sample-city detroit- MVP: LST + NDVI + CLI
- Phase 2: Web dashboard + more cities
- Phase 3: Global dataset + ML-based prediction
Start here:
- Pick a “good first issue”
- Fork repo
- Create branch
- Submit PR
We especially need help with:
- New city data support
- Visualization improvements
- Performance optimization
- Tests and documentation
MIT — free to use, modify, and distribute.
Issues: https://github.com/your-org/heatwatch/issues Discussions: https://github.com/your-org/heatwatch/discussions
Add this as Dockerfile:
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -e ".[dev]"
ENTRYPOINT ["heatwatch"]