An AI-powered web application for analyzing urban heat islands using satellite data, land use classification, and weather measurements to identify heat hotspots and generate evidence-based recommendations for sustainable urban planning
A comprehensive tool for analyzing urban heat island effects using satellite imagery, weather station data, and land use information. Built for Berlin suburb analysis.
- 🛰️ Satellite Analysis: Landsat thermal band processing via Google Earth Engine
- 🌡️ Weather Validation: DWD weather station data integration for ground truth validation
- 🏙️ Land Use Correlation: CORINE land cover data correlation analysis
- 📊 Spatial Analysis: Advanced heat island hotspot identification and clustering
- 🌐 Web Interface: Modern Flask-based web application
- ⚡ Multiple Performance Modes: From quick preview to detailed analysis
- 📱 Interactive Maps: Real-time visualization with Leaflet maps
- Python 3.11+
- Google Earth Engine account
- uv package manager (recommended)
# Clone the repository
git clone https://github.com/your-username/HeatSense.git
cd HeatSense
# Install dependencies with uv
uv sync
# Set up Google Earth Engine authentication
uv run python -c "import ee; ee.Authenticate()"
# Copy environment configuration
cp .env.example .env
# Edit .env and add your Google Earth Engine project ID# Clone the repository
git clone https://github.com/your-username/HeatSense.git
cd HeatSense
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install package in development mode
pip install -e .
# Set up Google Earth Engine authentication
python -c "import ee; ee.Authenticate()"
# Copy environment configuration
cp .env.example .env# With uv (recommended)
uv run python run_webapp.py
# Or with pip installation
python run_webapp.pyOpen your browser to http://localhost:8000 🎉
# Quick analysis with uv
uv run python run_analysis.py --area "Friedrichshain-Kreuzberg" --start-date 2023-07-01 --end-date 2023-07-31
# Detailed analysis with output file
uv run python run_analysis.py --area "Berlin" --start-date 2023-06-01 --end-date 2023-08-31 --mode detailed --output results.json
# With verbose logging
uv run python run_analysis.py --area "Mitte" --start-date 2023-07-15 --end-date 2023-07-20 --mode preview --verbosefrom src.heatsense.webapp.analysis_backend import UHIAnalysisBackend
# Initialize backend
backend = UHIAnalysisBackend()
# Run analysis
result = backend.analyze(
area="Friedrichshain-Kreuzberg",
start_date="2023-07-01",
end_date="2023-07-31",
performance_mode="standard"
)
# Access results
print(f"Mean temperature: {result['data']['summary']['temperature_overview']['mean']}°C")
print(f"Hotspots found: {result['data']['summary']['hotspots_count']}")| Mode | Speed | Resolution | Weather Data | Use Case |
|---|---|---|---|---|
| Preview | <30s | 300m | ❌ | Quick exploration |
| Fast | 30-60s | 200m | ❌ | General analysis |
| Standard | 1-3 min | 100m | ✅ | Balanced quality |
| Detailed | 3-10 min | 50m | ✅ | Research & planning |
HeatSense/
├── run_webapp.py # 🎯 Launch web application
├── run_analysis.py # 🎯 CLI analysis tool
├── pyproject.toml # Python project configuration
├── .env.example # Environment variables template
├── src/
│ └── heatsense/ # Main package
│ ├── config/ # Configuration files
│ ├── data/ # Data processing modules
│ ├── utils/ # Utility functions
│ └── webapp/ # Web application
├── docs/ # Documentation
├── examples/ # Usage examples
└── temp/ # Temporary analysis files
- 🛰️ Satellite Data: Landsat 8 thermal imagery (Google Earth Engine)
- 🌡️ Weather Data: DWD (German Weather Service) station network
- 🏙️ Land Use Data: CORINE Land Cover (European Environment Agency)
- 🗺️ Administrative Boundaries: Berlin WFS services
Check out the examples/ directory:
# Run basic analysis example
uv run python examples/basic_analysis.pyDetailed documentation in the docs/ directory:
- UrbanHeatIslandAnalyzer.md - Core analysis engine
- DWDDataDownloader.md - Weather data integration
- CorineDataDownloader.md - Land use processing
- WFSDataDownloader.md - Boundary data access
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Earth Engine for satellite data access
- DWD (Deutscher Wetterdienst) for weather station data
- European Environment Agency for CORINE land cover data
- Berlin Senate for administrative boundary data
Found a bug or need help? Please open an issue on GitHub.